Página 1 de 1

[Resolvido] Produtos SEM ESTOQUE direto para o Final da Listagem

Enviado: 30 Set 2015, 17:29
por leandromello
No category.tpl alterei o código abaixo para fazer com os produtos sem estoque irem direto para o final da listagem.
Funcionou, mas aconteceu outro problema, agora os produtos não seguem mais as ordens cadastradas no admin.
Código: Selecionar todos
		if (isset($this->request->get['sort'])) {
			$sort = $this->request->get['sort'];
		} else {
			$sort = 'p.quantity';
		}

		if (isset($this->request->get['order'])) {
			$order = $this->request->get['order'];
		} else {
			$order = 'DESC';
		}
Qual seria a solução para este problema?
ou qual seria a maneira mais eficaz para deixar os produtos sem estoque no final da listagem?

Re: Produtos SEM ESTOQUE direto para o Final da Listagem

Enviado: 05 Out 2015, 10:20
por Marcio Soares
Leandro tudo bem?

Tenta colocar o sort pelo ID do produto e depois pela quantidade.

Re: Produtos SEM ESTOQUE direto para o Final da Listagem

Enviado: 07 Out 2015, 16:29
por leandromello
Márcio, mas como exatamente listo pelo ID, testei de algumas maneiras aqui e não deu certo.
o Valdeir PSR, me disse para usar o ARRAY multisort, mas também não consegui.

Re: Produtos SEM ESTOQUE direto para o Final da Listagem

Enviado: 22 Mai 2017, 16:16
por parrudinho
Pessoal tive esse mesmo problema usando a versão 2.2.0.0 e conseguir resolver da seguinte forma

Indo ate catalog\model\catalog\product.php
Código: Selecionar todos
if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
   if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
             $sql .= " ORDER BY LCASE(" . $data['sort'] . ")  ";
        } elseif ($data['sort'] == 'p.price') {
                 $sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
          } else {
               $sql .= " ORDER BY " . $data['sort'];
        }
} else {
        $sql .= " ORDER BY p.sort_order";
}
E colocando p.quantity<1, depois de "ORDER BY"
Código: Selecionar todos
if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
   if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
          $sql .= " ORDER BY      p.quantity<1,               LCASE(" . $data['sort'] . ")  ";
    } elseif ($data['sort'] == 'p.price') {
         $sql .= " ORDER BY       p.quantity<1,               (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
 } else {
           $sql .= " ORDER BY       p.quantity<1,               " . $data['sort'];
        }
} else {
      $sql .= " ORDER BY         p.quantity<1,            p.sort_order";
}
Espero ajudar que esta com o mesmo problema.

Post original
https://stackoverflow.com/questions/371 ... st#tab-top

Re: Produtos SEM ESTOQUE direto para o Final da Listagem

Enviado: 01 Jun 2018, 11:01
por bolhadigital
Perfeito! Obrigada por deixar aqui sua ajuda, deu certinho !!! Meu Opencart é 3.0.2 :D

Re: [Resolvido] Produtos SEM ESTOQUE direto para o Final da Listagem

Enviado: 20 Ago 2018, 10:27
por Viva mangue
OC 2.3.0.2 deu certinho

Re: [Resolvido] Produtos SEM ESTOQUE direto para o Final da Listagem

Enviado: 13 Set 2019, 17:42
por eugeniots
Usando aqui a Versão 3.0.3.2 (Brasil 1.4.3) e tudo perfeito, funcionou certinho! Tks!

Re: Produtos SEM ESTOQUE direto para o Final da Listagem

Enviado: 17 Set 2021, 02:19
por Simone
parrudinho escreveu: 22 Mai 2017, 16:16 Pessoal tive esse mesmo problema usando a versão 2.2.0.0 e conseguir resolver da seguinte forma... Indo ate catalog\model\catalog\product.php
Versão 3.0.3.3 (Brasil 1.4.15) rodando perfeito! Gratidão.