- 11 Dez 2012, 17:29
#32207
Olá!
Acho meio estranho um site colocar em sua home, uma listagem de produtos, seja os destaques, mais vendidos e ou ofertas, e os mesmos estarem sem estoque para venda.
Tentei de algumas formas e procurei em vários sites mas não achei uma solução.
Preciso esconder os produtos sem estoque (igual a 0) em alguns modulos, veja o que fiz e não deu certo:
Irei comentar sobre o modulo produtos em oferta (special), pois através desse posso mudar os outros.
Via vqmode inseri o codigo do site gringo para deixar aleatório a ordem dos produtos:
Notei que quando ele procura na tabelas ele realmente pega o que quero com estoque e sob encomenda, mas quando chega no produto estoque 0 e status diferente de Sob encomenda ele para o loop e não pega o próximo produto, fica um buraco em branco.
OBS: além dos produtos que estão com estoque, também vai vender produtos com o estoque zero mas com o status Sob encomenda.
Espero achar alguém aqui no forum que ajude com isso.
Acho meio estranho um site colocar em sua home, uma listagem de produtos, seja os destaques, mais vendidos e ou ofertas, e os mesmos estarem sem estoque para venda.
Tentei de algumas formas e procurei em vários sites mas não achei uma solução.
Preciso esconder os produtos sem estoque (igual a 0) em alguns modulos, veja o que fiz e não deu certo:
Irei comentar sobre o modulo produtos em oferta (special), pois através desse posso mudar os outros.
Via vqmode inseri o codigo do site gringo para deixar aleatório a ordem dos produtos:
Código: Selecionar todos
No arquivo special.php (catalog/controller/module/special.php), logo abaixo de "$this->data['products'][] = array(" inseri "stock" e "stock_status", ficando assim:
<modification>
<id>Ordem Aleatoria produtos em promocao (Specials)</id>
<version>1.0.0</version>
<vqmver>1.0.3</vqmver>
<author>qphoria</author>
<file name="catalog/controller/module/special.php">
<operation error="skip"><!-- v1.5.x -->
<search position="replace"><![CDATA[
'limit' => $setting['limit']
]]></search>
<add><![CDATA[
'limit' => ($setting['limit'] * 10)
]]></add>
</operation>
<operation error="skip"><!-- v1.5.x -->
<search position="after"><![CDATA[
$results = $this->model_catalog_product->getProductSpecials($data);
]]></search>
<add><![CDATA[
srand((float)microtime() * 1000000);
shuffle($results);
$results = array_slice($results, 0, $setting['limit']);
]]></add>
</operation>
</file>
</modification>
Código: Selecionar todos
No arquivo special.tpl (/catalog/view/theme/NOMEDOMEUTEMA/template/module/special.tpl), logo abaixo de "<?php foreach ($products as $product) { ?>" inseri um IF e OR, ficando assim:
$this->data['products'][] = array(
'stock' => $product_info['quantity'],
'stock_status' => $product_info['stock_status'],
'product_id' => $result['product_id'],
'thumb' => $image,
'name' => $result['name'],
'price' => $price,
'special' => $special,
'rating' => $rating,
'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
'href' => $this->url->link('product/product', 'product_id=' . $result['product_id']),
);
Código: Selecionar todos
O que fiz, em parte funciona, mas acontece o seguinte, deixei o modulo Special listando apenas 10 produtos na home, no site tenho 15 produtos em oferta, para teste deixei apenas 1 produto com estoque 0 e status padrão Esgotado e 1 produto com estoque 0 e status criado Sob encomenda.<div class="box">
<div class="box-heading"><?php echo $heading_title; ?></div>
<div class="box-content">
<div class="box-product">
<?php foreach ($products as $product) { ?>
<!--IF - OR : Pegar produtos com estoque maior que zero ou com Status de Sob encomenda -->
<?php if ($product['stock'] > 0 or $product['stock_status'] == "Sob encomenda") { ?>
<!--Fim IF - OR -->
<div>
<?php if ($product['thumb']) { ?>
<div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" /></a></div>
<?php } ?>
<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>
<?php if ($product['price']) { ?>
<div class="price">
<?php if (!$product['special']) { ?>
<?php echo $product['price']; ?>
<?php } else { ?>
<span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
<?php } ?>
</div>
<?php } ?>
<?php if ($product['rating']) { ?>
<div class="rating"><img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /></div>
<?php } ?>
<div class="cart"><input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" /></div>
</div>
<!-- Fechar IF - OR -->
<?php } ?>
<!--Fim Fechar -->
<?php } ?>
</div>
</div>
</div>
Notei que quando ele procura na tabelas ele realmente pega o que quero com estoque e sob encomenda, mas quando chega no produto estoque 0 e status diferente de Sob encomenda ele para o loop e não pega o próximo produto, fica um buraco em branco.
OBS: além dos produtos que estão com estoque, também vai vender produtos com o estoque zero mas com o status Sob encomenda.
Espero achar alguém aqui no forum que ajude com isso.
Mauro G. Jr