Magento Tìm kiếm nhanh để xem xét các thuộc tính tùy chỉnh với các điều kiện?


8

Tôi có một yêu cầu trong đó nếu có bất kỳ số nguyên nào trong chuỗi tìm kiếm nhanh Magento, thì hãy tìm kiếm SKU sản phẩm và các thuộc tính tùy chỉnh. Nhưng nếu không có số nguyên trong chuỗi tìm kiếm, thì hãy tìm kiếm trong Tên và Mô tả sản phẩm.

Giả sử chuỗi truy vấn có 12345trong đó, sau đó tôi muốn thực hiện tìm kiếm THÍCH trong SKU thuộc tính sản phẩm và một vài thuộc tính tùy chỉnh khác. Nhưng nếu không có số nguyên trong chuỗi truy vấn, thì tôi chỉ muốn thực hiện tìm kiếm FULLTEXT trong Tên và Mô tả sản phẩm. Có ý nghĩa?

Tôi đã xem xét CatalogSearch/Model/Resource/Fulltext.php -> prepareResult()nhưng không thể tìm ra cách lọc kết quả dựa trên chuỗi truy vấn. Ngoài ra, tìm kiếm nhanh đang sử dụng catalogsearch/resultmô hình để tìm kiếm, trong khi ở đây chúng ta có thể cần xem xét catalog/product?

Tôi bị mất, bất kỳ trợ giúp sẽ được đánh giá rất cao!

Câu trả lời:


3

Hãy thử tạo một mô-đun mới

Trong cấu hình của bạn

...
<adminhtml>
    <global_search>
        <magepal_custom_attributes>
            <class>MagePal_GlobalAttributesSearch_Model_Search_Customattributes</class>
            <acl>magepal_globalattributessearch</acl>
        </magepal_custom_attributes>
    </global_search>
</adminhtml> 
    ...

trong ứng dụng / mã / cục bộ / MagePal / GlobalAttributSearch / Model / Search / Customattribut.php

<?php
class MagePal_GlobalAttributesSearch_Model_Search_Customattributes extends Varien_Object
{
    /**
     * Load search results
     *
     */
    public function load() {
        $arr = array();
        $searchText = $this->getQuery();


        // move code above to your if statement and do your db lookup accordingly 
        $collection = Mage::getModel('module/name')->getCollection()

         if(is_int($searchText)){
           /* search for int in product sku and custom */
            $collection->addFieldToFilter(
                array('field_name'),
                array(
                    array('like'=>'%'.$searchText.'%'), 
                    )
                );
         }
         else{
            /* search product name and description  */
            $collection->addFieldToFilter(
                array('field_name','field_name'),
                array(
                    array('like'=>'%'.$searchText.'%'),
                    array('like'=>'%'.$searchText.'%'), 
                    )
                );
         }

        $collection->load();

        foreach ($collection as $model) {
            $arr[] = array(
                'id'            => 'path/1/'.$model->getId(),
                'type'          => Mage::helper('adminhtml')->__('Custom Attributes'),
                'name'          => $model->getId(),
                'description'   => Mage::helper('core/string')->truncate('desc', 35),
                'url' => Mage::helper('adminhtml')->getUrl('*/path/edit', array('id'=>$model->getId())),
            );
        }

        $this->setResults($arr);
        return $this;
    }
}

Xem http://blog.mattstephens.co.uk/post/27326981315/adding-custom-module-to-magentos-admin-global-search

Bạn cũng có thể viết lại khối tìm kiếm sản phẩm toàn cầu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.