Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Suporte geral sobre problemas técnicos para OpenCart v2.x.
#71323
Na 2.3
Abra catalog/model/catalog/product.php

Substitua
Código: Selecionar todos
$sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";
por
Código: Selecionar todos
$sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND p.quantity > 0";
#72187
Obrigado Valdeir por sua cooperação.
Este código é completo, porém não me atende. Eu preciso ocultar apenas os itens esgotados do modulo "Produtos Novos" que está na Home e esse código oculta os itens esgotados da loja inteira, inclusive das categorias. Para mim não é interessante ocultar das categorias porque os clientes deixam sua opinião no produto esgotado após terem comprado.
Mas, mesmo assim agradeço muito.
#72196
A MS escreveu:Obrigado Valdeir por sua cooperação.
Este código é completo, porém não me atende. Eu preciso ocultar apenas os itens esgotados do modulo "Produtos Novos" que está na Home e esse código oculta os itens esgotados da loja inteira, inclusive das categorias. Para mim não é interessante ocultar das categorias porque os clientes deixam sua opinião no produto esgotado após terem comprado.
Mas, mesmo assim agradeço muito.
Acesse o arquivo catalog/controller/extension/module/latest.php e faça as modificações abaixo, todo produto com quantidade abaixo de 1 será ocultado

Localize
Código: Selecionar todos
				$data['products'][] = array(
					'product_id'  => $result['product_id'],
					'thumb'       => $image,
					'name'        => $result['name'],
					'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..',
					'price'       => $price,
					'special'     => $special,
					'tax'         => $tax,
					'rating'      => $rating,
					'href'        => $this->url->link('product/product', 'product_id=' . $result['product_id'])
				);
Substitua por:
Código: Selecionar todos
				if($result['quantity'] >= 1){
					$data['products'][] = array(
						'product_id'  => $result['quantity'],
						'thumb'       => $image,
						'name'        => $result['name'],
						'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..',
						'price'       => $price,
						'special'     => $special,
						'tax'         => $tax,
						'rating'      => $rating,
						'href'        => $this->url->link('product/product', 'product_id=' . $result['product_id'])
					);
				}
#72565
Acesse o arquivo catalog/controller/extension/module/latest.php e faça as modificações abaixo, todo produto com quantidade abaixo de 1 será ocultado
Ariel, eu não encontrei esse caminho.

No meu OC não tem a pasta "extension".

Minha versão é a 2.2.0.0.
Será que a pasta é diferente?
#72662
Legal, o código realmente funcionou. Mas, percebi que ele apenas oculta o item, mas não o substitui e onde deveria ter outro item, simplesmente fica com o espaço em branco.
Como eu utilizo um código que deixa o modulo latest aleatório, então essa parte em branco vai para o final da fila conforme o print que tirei abaixo.
Bom o importante é que não está mais mostrando os itens esgotados.

Imagem

Valeu, obrigado!
#72714
Caso você desejar exibir uns 08 produtos penso em fazer assim, acesse o arquivo latest.php mencionado

Localizar o trecho:
Código: Selecionar todos
'limit' => $setting['limit']
Substitua para:
Código: Selecionar todos
'limit' => 50
Agora substitua o trecho de código que informei na mensagem acima por esse abaixo;
Código: Selecionar todos
            $i = 1;
			if($result['quantity'] >= 1 and $i <= 8){
               $data['products'][] = array(
                  'product_id'  => $result['quantity'],
                  'thumb'       => $image,
                  'name'        => $result['name'],
                  'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..',
                  'price'       => $price,
                  'special'     => $special,
                  'tax'         => $tax,
                  'rating'      => $rating,
                  'href'        => $this->url->link('product/product', 'product_id=' . $result['product_id'])
               );
			   $i++;
            }
Limitei a exibição de 08 produtos com esse código "$i <= 8" caso desejar mais produtos só modificar o númeral

Gente preciso de ajuda urgente. Na migraç&a[…]

Caro @reds , muito obrigado pela resposta.

PHP 8+ incompatibilidade

Toda tradução para a versão 3[…]

Ola @alex3257 Se você precisa apenas ver […]