Magento 2 - catálogo de produtos da lista widget produto ordem
8
A página inicial do meu site magento está mostrando uma lista de produtos . Esta lista de produtos foi criada com o catalog product list widgetconfigurado para mostrar os produtos que estão na categoria da página inicial . Os produtos desta categoria têm um número de posição. Os produtos são exibidos no que parece ser a lista de pedidos de preços. Como faço para que o widget exiba a lista de pedidos da posição?
Essa ordem é sempre pela posição da categoria raiz. Se você deseja fazer o pedido por uma categoria específica, deve criar um novo widget personalizado para isso.
Esta resposta me ajudou, obrigado. Eu usei $ result-> setOrder ('created_at', 'DESC'); em vez de.
9139 paul paul
1
Certo, pergunta tão antiga, mas relevante para mim. Infelizmente, não havia uma resposta, então eu tive que corrigi-lo pessoalmente e acho que vou responder à pergunta enquanto estou nisso.
Primeiramente, eu procurei no módulo catalogwidget no Magento e encontrei \Magento\CatalogWidget\Block\Product\ProductsList::createCollection. O que confirma que não há funcionalidade de classificação disponível. Então, vem um plug-in:
classAfterCreateCollection{publicfunction aftercreateCollection($subject, $result){/**
* @var \Magento\Catalog\Model\ResourceModel\Product\Collection $result
* @var \Magento\CatalogWidget\Block\Product\ProductsList $subject
*/// if there's a sort_by attribute defined, add a sort to the collectionif($subject->hasData('sort_by')){// if there's a direction given, check and use that otherwise use the default
$direction = strtoupper($subject->getData('sort_direction'));if(!in_array($direction,[Select::SQL_DESC,Select::SQL_ASC])){
$direction =Select::SQL_DESC;}
$result->setOrder($subject->getData('sort_by'), $direction);}return $result;}}
Este é um bom começo, mas o administrador não permite adicionar atributos manualmente a uma definição de widget com muita facilidade. Então, adicionamos uma definição para isso também.
Em etc/widget.xmlnós fazemos:
<?xml version="1.0" encoding="UTF-8"?><widgetsxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Widget:etc/widget.xsd"><widgetid="products_list"><parameters><parametername="sort_by"xsi:type="text"required="false"visible="true"><labeltranslate="true">Attribute to sort the products by</label></parameter><parametername="sort_direction"xsi:type="select"visible="true"required="false"source_model="Elastomatic\SortCatalogWidget\Model\Config\Source\Direction"><labeltranslate="true">Sort direction</label></parameter></parameters></widget></widgets>
Aaand voila! A classificação para o widget de catálogo agora é possível. Eu posso adicionar um menu suspenso para o campo de atributo do produto em vez da entrada de digitação livre no módulo em algum momento, mas isso serve ao meu propósito no momento.
Como o widget de produtos da lista de catálogos Magento não suporta Classificar por posição, instalei o módulo acima mencionado, mas ainda assim, os produtos não estão listados por ordem de posição. Por favor, me guie como você fez isso funcionar.
Siva
Ainda assim, os produtos exibidos dependem do valor da ID do produto em vez da posição.
Siva
1
Aqui está uma solução se a resposta de Rian não funcionar para você:
Certo, pergunta tão antiga, mas relevante para mim. Infelizmente, não havia uma resposta, então eu tive que corrigi-lo pessoalmente e acho que vou responder à pergunta enquanto estou nisso.
Documentarei o trabalho aqui, mas o módulo inteiro está disponível em https://github.com/rianorie/magento2-sortcatalogwidget .
Primeiramente, eu procurei no módulo catalogwidget no Magento e encontrei
\Magento\CatalogWidget\Block\Product\ProductsList::createCollection
. O que confirma que não há funcionalidade de classificação disponível. Então, vem um plug-in:Este é um bom começo, mas o administrador não permite adicionar atributos manualmente a uma definição de widget com muita facilidade. Então, adicionamos uma definição para isso também.
Em
etc/widget.xml
nós fazemos:Aaand voila! A classificação para o widget de catálogo agora é possível. Eu posso adicionar um menu suspenso para o campo de atributo do produto em vez da entrada de digitação livre no módulo em algum momento, mas isso serve ao meu propósito no momento.
fonte
Aqui está uma solução se a resposta de Rian não funcionar para você:
Substitua a linha
com
e o módulo deve funcionar conforme o esperado.
O módulo Magento 2 atualizado está disponível aqui: https://github.com/Bitpolar-Tech/module-sort-catalog-widget
fonte