Мне нужно добавить довольно сложную опцию сортировки в коллекцию продуктов в Magento, и я просто не очень хорошо разбираюсь в фреймворке Zend или таблицах EAV, чтобы выяснить, что мне нужно сделать, чтобы сделать эту работу.Я хотел бы иметь возможность сортировать коллекцию продуктов по валовой марже с учетом стоимости доставки.cost
- это атрибут Magento, хранящийся в таблице catalog_product_entity_decimal
.Стоимость доставки хранится как actual_shipping_cost
в таблице catalog_product_entity_varchar
.Каким-то образом мне нужно добавить столбец в оператор выбора SQL, по которому я могу сортировать.Этот столбец должен содержать cost
из c_p_e_decimal
минус actual_shipping_cost
из c_p_e_varchar
.
У меня есть свои собственные классы, которые расширяются Mage_Catalog_Block_Product_List
, Mage_Catalog_Block_Product_List_Toolbar
иMage_Catalog_Model_Config
.Они работают вместе, чтобы добавить необходимую опцию сортировки в доступный массив сортировки.Внутри моего пользовательского класса List
я проверяю getCurrentOrder()
на экземпляре панели инструментов.Если это margin Мне нужно добавить столбец с необходимыми значениями и применить сортировку.
Итак, я дошел до этого, но он создает правильный Zend_Db_Expr
, который имеетменя смутило.Я не эксперт в объединениях, союзах и во всем, что касается SQL, и я не очень хорошо разбираюсь в Zend Framework, поэтому, пожалуйста, прости мое невежество.Я читал о Zend Framework и теперь я в основном понимаю, на что смотрю, когда нахожу примеры, но создание собственного с нуля все еще немного за пределами меня.Так что любое руководство будет ДЕЙСТВИТЕЛЬНО полезным!
Спасибо!