Magento 2 - Ürün özelliğini kullanarak kategori sayfasında ürün sıralama sorunu


11

Ürün niteliğini oluşturdum ve yönetici ürün ayrıntıları sayfasında görünmesi için özellik kümesine atadım. Bu ürün özelliğine dayanarak, ürün koleksiyonunu kategori sayfasında sıralarım.

Sorun set olduğunu Catalog Input Type for Store Owneriçin Text field. Ürün koleksiyonunu bu özelliğe göre sıralamak için her bir ürüne karşı sayısal değeri ayarlamam gerekecek. 1-9 arası iyi çalışıyor ancak sayıyı 10, 11 vb.'den fazla arttırdığımda sıralamayı yok ediyor. Alan türü sayı türü olmadığından olabilir

Herhangi bir yardım, deneyim ve bilgi paylaşımı takdir edilecektir.

Yanıtlar:


3

Lütfen özel eklentiyi kullanarak aşağıdaki yolu deneyin, bu nedenle lütfen özel uzantınıza aşağıdaki gibi eklenti kodu ekleyin

/Vendor/Module/etc/frontend/di.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Catalog\Block\Product\ProductList\Toolbar">
        <plugin name="vendormodule_catalog_block_product_listproduct_toolbar" type="Vendor\Module\Plugin\Catalog\Block\Product\ProductList\Toolbar"/>
    </type>
</config>

/Vendor/Module/Plugin/Catalog/Block/Product/ProductList/Toolbar.php

<?php

namespace Vendor\Module\Plugin\Catalog\Block\Product\ProductList;

class Toolbar
{
    /**
     * @var \Magento\Framework\Registry
     */
    protected $_coreRegistry;

    public function __construct(\Magento\Framework\Registry $coreRegistry)
    {
        $this->_coreRegistry = $coreRegistry;
    }

    /**
     * @param \Magento\Catalog\Block\Product\ProductList\Toolbar $toolbar
     * @param \Magento\Framework\Data\Collection $collection
     * @return array
     */
    public function beforeSetCollection(
        \Magento\Catalog\Block\Product\ProductList\Toolbar $toolbar,
        $collection
    ){
        $collection->getSelect()->group('e.entity_id')->order('{YOUR CUSTOM ATTRIBUTE CODE} ASC');
        $collection->getSize();

        return [$collection];
    }
}

Lütfen herhangi bir sorun yaşarsanız bana bildirin.


Abi aynısını sıralama için kullanıyorum. 1-9Özel ürün özelliğimdeki değeri girdiğimde iyi çalışıyor, ancak değeri 10, 11 gibi 9'dan artırdığımda, sorumu söylediğim gibi sıralamayı yok edecek. Neyse cevap verdiğiniz için teşekkürler. Çabalarınız için. +1
Muhammad Hasham

Yani veritabanı öznitelik türünde int değişiklik deneyin
Aasim Goriya

Yönetici'den ürün özelliği oluşturma işlemi sırasında ürün özellik türünü şu şekilde ayarlamak için yine de var intmı? Catalog Input Type for Store Owner Sayı veya benzeri bir şey yok
Muhammed Hasham
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.