- 09 Dez 2011, 14:13
#12831
Olá este forum me ajudou bastante e em retribuição gostaria de postar algo que desenvolvi.
A empresa a onde trabalho irá começar a revender produtos de uma outra loja de eletronicos eu e mais um rapaz estavamos perdendo pelo menos 10 minutos entre copiar e colar as informações do produto, copiando do site original baixar as imagens do produto colocar no servidor, via filezilla, pois consideramos assim mais facil de criar e organizar as pastas com as imagens.
Estudei o banco do opencart e desenvolvi esse arquivo que o usuário tem que configurar o nome do banco, nome do usuario, senha de acesso e o ip do servidor do banco, caso esteja em uma maquina diferente da onde esteja o arquivo.
Feito isso é só acessar e cadastrar.
Preenchendo os campos:
Nome do Produto
Modelo do Produto : Sendo retirado alguns caracteres \, ", ', *, troco \ por -, colocando todas as letras em minusculas e ja corto em 64 caracteres(tamanho maximo admitido pelo opencart). Esse modelo tambem adiciono como keyword, description
Preço do Produto
Fabricante : Ele vai pesquisar no banco os fabricantes apresentando um select para a escolha.
Diretório : Ele vai mostrar todas as pastas dentro de "/image/data" na pasta que for escolhida será criada uma pasta com o nome do modelo do produto e dentro desta pasta sera guardado as imagens, a pasta terá permição 777.
Imagens : São oito campos de texto para se colocar a URL da imagem (Como eu tinha um site para "retirar as imagens", era muito chato baixa-las e coloca-las no servidor) o php vai usar um comando "wget" para baixar a imagem e ja vai salva-la na pasta correta e inserir essa informação no banco, a primeira imagem será inserida como a principal e os outros serão imagens adicionais, assim coloque as URL's na ordem que desejar que elas apareção
Categorias : Selecione todas as categorias que quiser.
Descricao
Peso
Largura
Altura
Comprimento
E finalmente envie.
Reduzi o tempo de cadastro dos produtos para 3min (quando tava com preguiça rsrs).
Espero ter ajudado
Abraços a Todos
A empresa a onde trabalho irá começar a revender produtos de uma outra loja de eletronicos eu e mais um rapaz estavamos perdendo pelo menos 10 minutos entre copiar e colar as informações do produto, copiando do site original baixar as imagens do produto colocar no servidor, via filezilla, pois consideramos assim mais facil de criar e organizar as pastas com as imagens.
Estudei o banco do opencart e desenvolvi esse arquivo que o usuário tem que configurar o nome do banco, nome do usuario, senha de acesso e o ip do servidor do banco, caso esteja em uma maquina diferente da onde esteja o arquivo.
Feito isso é só acessar e cadastrar.
Preenchendo os campos:
Nome do Produto
Modelo do Produto : Sendo retirado alguns caracteres \, ", ', *, troco \ por -, colocando todas as letras em minusculas e ja corto em 64 caracteres(tamanho maximo admitido pelo opencart). Esse modelo tambem adiciono como keyword, description
Preço do Produto
Fabricante : Ele vai pesquisar no banco os fabricantes apresentando um select para a escolha.
Diretório : Ele vai mostrar todas as pastas dentro de "/image/data" na pasta que for escolhida será criada uma pasta com o nome do modelo do produto e dentro desta pasta sera guardado as imagens, a pasta terá permição 777.
Imagens : São oito campos de texto para se colocar a URL da imagem (Como eu tinha um site para "retirar as imagens", era muito chato baixa-las e coloca-las no servidor) o php vai usar um comando "wget" para baixar a imagem e ja vai salva-la na pasta correta e inserir essa informação no banco, a primeira imagem será inserida como a principal e os outros serão imagens adicionais, assim coloque as URL's na ordem que desejar que elas apareção
Categorias : Selecione todas as categorias que quiser.
Descricao
Peso
Largura
Altura
Comprimento
E finalmente envie.
Reduzi o tempo de cadastro dos produtos para 3min (quando tava com preguiça rsrs).
Espero ter ajudado
Abraços a Todos
Código: Selecionar todos
<?php
function consulta($query){
$nome_banco = 'nome do banco';
$senha_banco = 'senhado banco';
$usuario_banco = 'usuario';
$local_banco = '127.0.0.1';
$conexao = mysql_pconnect($local_banco, $usuario_banco, $senha_banco);
if(!$conexao){die('Não foi possível conectar: '.mysql_error());}
$banco = mysql_select_db ($nome_banco, $conexao);
if(!$banco){die('Não foi possível conectar no banco: '.mysql_error());}
$resultado = mysql_query($query, $conexao);
if(!$resultado){die('<br />Não foi possível fazer a consulta: '.mysql_error().'<br />'.$query);}
if (strpos($query, 'SELECT') !== false) {
$i=0;
while($result = mysql_fetch_assoc($resultado)) {
foreach ($result as $key=>$valor){$var[$i][$key] = $valor;}
$i++;
}
return $var;
}
}
if ($_REQUEST['nome'] != "") {
$_REQUEST['modelo'] = substr(strtolower(str_replace("/", "-", str_replace("\\", "", str_replace('"', '', str_replace("*", "", str_replace("'", "", $_REQUEST['modelo'])))))), 0, 63);
consulta("INSERT INTO product (model, quantity, stock_status_id, image, manufacturer_id, shipping, price, points, tax_class_id, date_available, weight, weight_class_id, length, width, height, length_class_id, subtract, minimum, sort_order, status, date_added, date_modified, viewed) VALUES ('".$_REQUEST['modelo']."', 1000, 7, '', '".$_REQUEST['fabricante']."', 1, '".$_REQUEST['preco']."', 0, 0, DATE(NOW()), '".$_REQUEST['peso']."', 1, '".$_REQUEST['largura']."', '".$_REQUEST['comprimento']."', '".$_REQUEST['altura']."', 1, 0, 1, 1, 1, NOW(), NOW(), 0)");
$produto = consulta("SELECT `product`.`product_id` FROM `product` WHERE `product`.`model` = '".$_REQUEST['modelo']."' && price LIKE '".$_REQUEST['preco']."%' LIMIT 1");
$id = $produto[0]['product_id'];
consulta("INSERT INTO product_to_store (product_id, store_id) VALUES ($id, 0)");
consulta("INSERT INTO product_description (product_id, language_id, name, description, meta_description, meta_keyword) VALUES ($id, 2, '".$_REQUEST['nome']."', '".$_REQUEST['descricao']."', '".$_REQUEST['modelo']."', '".$_REQUEST['modelo']."')");
foreach($_REQUEST['categorias'] as $categoria) {
consulta("INSERT INTO product_to_category (product_id, category_id) VALUES ($id, $categoria)");
}
$pasta = getcwd()."/data/".$_REQUEST['pastas']."/".$_REQUEST['modelo'];
mkdir($pasta, 0777);
$img = 0;
foreach($_REQUEST['imagens'] as $imagem) {
if($imagem != "") {
$nome = end(explode("/", $imagem));
shell_exec("wget -O \"$pasta/$nome\" \"$imagem\" ");
if ($img == 0) {
consulta("UPDATE `product` SET image = 'data/".$_REQUEST['pastas']."/".$_REQUEST['modelo']."/$nome' WHERE product_id = '$id'");
$img++;
} else {
consulta("INSERT INTO product_image (image, product_id) VALUES ('data/".$_REQUEST['pastas']."/".$_REQUEST['modelo']."/$nome', $id)");
}
}
}
}
$diretorio = getcwd()."/data";
function lerpastas($pasta) {
$ponteiro = opendir($pasta);
while ($itens = readdir($ponteiro)) {
if ($itens!="." && $itens!=".."){
if (!strpos($itens, ".") && !strpos($itens, " ")) {
$pastas[] = $pasta."/".$itens;
$pastas[] = lerpastas($pasta."/".$itens);
}
}
}
return $pastas;
}
function escreverpastas($pastas) {
foreach ($pastas as $pasta) {
if(is_array($pasta)) {
$result .= escreverpastas($pasta);
} else {
if($pasta != "") {
$pasta = str_replace(getcwd()."/data/", "", $pasta);
$result .= "<option value=\"$pasta\">$pasta</option>";
}
}
}
return $result;
}
$pastas = lerpastas($diretorio);
$selectpastas = "<select name=\"pastas\">";
if(is_array($pastas)) {
$selectpastas .= escreverpastas($pastas);
}
$selectpastas .= "</select>";
$fabricantes = consulta("SELECT * FROM manufacturer");
$fabri = "<select name=\"fabricante\">";
foreach($fabricantes as $fabricante) {
$fabri .= "<option value=\"".$fabricante['manufacturer_id']."\">".$fabricante['name']."</option>";
}
$fabri .= "</select>";
$categorias = consulta("SELECT *, (SELECT name FROM category_description WHERE `category_description`.`category_id` = `category`.`parent_id`) as categoriapai FROM category, category_description WHERE `category_description`.`category_id` = `category`.`category_id` ORDER BY (SELECT name FROM category_description WHERE `category_description`.`category_id` = `category`.`parent_id`) ASC");
foreach ($categorias as $key => $row) {
if($row['categoriapai'] == "") {
$nome[$key] = $row['name'];
} else {
$nome[$key] = $row['categoriapai']."/".$row['name'];
}
}
array_multisort($nome, SORT_ASC, $categorias);
foreach($categorias as $categoria) {
$cate .= "<div style=\"width:25%; float:left;\"><input type=\"checkbox\" name=\"categorias[]\" value=\"".$categoria['category_id']."\">";
if($categoria['categoriapai'] != "") {$cate .= $categoria['categoriapai']."/";}
$cate .= $categoria['name']."</div>";
}
?>
<form method="post">
<table border="1">
<tr>
<td colspan="2">
Nome do Produto
<input type="text" size="70" name="nome" value="" />
</td>
<td>
Modelo do Produto
<input type="text" size="70" name="modelo" value="" />
</td>
<td>
Preço do Produto
<input type="text" name="preco" value="" />
</td>
</tr>
<tr>
<td colspan="2">
Fabricante
<?php echo $fabri; ?>
</td>
<td colspan="2">
Diretório
<?php echo $selectpastas; ?>
</td>
</tr>
<tr>
<td colspan="4">
Imagens
</td>
</tr>
<tr>
<?php
for($i = 0; $i < 8; $i++) {
if ($i == 4) {echo "</tr><tr>";}
echo "<td><input type=\"text\" name=\"imagens[$i]\" /></td>";
}
?>
</tr>
<tr>
<td colspan="4">
Categorias
</td>
</tr>
<tr>
<td colspan="4">
<?php echo $cate; ?>
</td>
</tr>
<tr>
<td colspan="4">
Descrição<br>
<textarea name="descricao" rows="20" cols="140"></textarea>
</td>
</tr>
<tr>
<td>
Peso do Produto
<input type="text" name="peso" value="" />
</td>
<td>
Largura do Produto
<input type="text" name="largura" value="" />
</td>
<td>
Altura do Produto
<input type="text" name="altura" value="" />
</td>
<td>
Comprimento do Produto
<input type="text" name="comprimento" value="" />
</td>
</tr>
<tr>
<td colspan="4">
<input type="submit" value="Enviar" />
</td>
</tr>
</table>
</form>





