마 젠토 2-제품 속성을 사용하는 카테고리 페이지의 제품 정렬 문제


11

제품 속성을 만들어 속성 ​​세트에 할당하여 관리 제품 세부 정보 페이지에 표시되도록합니다. 이 제품 속성을 기준으로 카테고리 페이지에서 제품 모음을 정렬합니다.

문제는로 설정 Catalog Input Type for Store Owner했습니다 Text field. 이 속성을 기반으로 제품 콜렉션을 정렬하려면 각 제품에 대해 숫자 값을 설정해야합니다. 1-9에서 잘 작동하지만 10, 11 등과 같이 9 이상으로 카운트를 늘리면 정렬이 파괴됩니다. 필드 유형이 숫자 유형이 아니기 때문일 수 있습니다.

도움, 경험 및 지식 공유에 감사드립니다.

답변:


3

사용자 정의 플러그인을 사용하여 다음과 같이 시도하십시오. 아래와 같이 사용자 정의 확장에 플러그인 코드를 추가하십시오

/ 공급 업체 / 모듈 /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>

/ 공급 업체 / 모듈 / 플러그인 / 카탈로그 / 블록 / 제품 / 제품 목록 /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];
    }
}

문제가 발생하면 알려주세요.


형제 나도 같은 정렬을 사용합니다. 1-9내 맞춤 제품 속성에 값을 입력하면 값이 9, 10, 11과 같이 9를 올리면 제대로 작동합니다. 내 질문에서 말한 정렬을 파괴합니다. 어쨌든 대답 해 주셔서 감사합니다. 노력하십시오. +1
Muhammad Hasham

그래서 int로 데이터베이스 속성 유형에 변화 시도
아아 심 Goriya

관리자에서 제품 속성을 생성하는 동안 제품 속성 유형을 int? Catalog Input Type for Store Owner 숫자 나 그와 유사한 것은 없습니다
Muhammad Hasham
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.