Magento - добавлен источник товара? - PullRequest
0 голосов
/ 07 февраля 2012

Я хочу иметь возможность применять определенные правила к продуктам, добавленным в корзину, в зависимости от того, откуда они были добавлены (страница продукта, страница категории, список пожеланий). Есть ли какие-либо атрибуты или методы, которые я могу вызвать, чтобы узнать, откуда они добавляются? Может быть, в Mage_Sales_Model_Quote_Item или Mage_Sales_Model_Quote_Item_Option?

Спасибо

1 Ответ

2 голосов
/ 07 февраля 2012

Возможно, вам лучше будет использовать модель событий , чтобы ловить, когда элемент добавляется в цитату. Есть событие для sales_quote_add_item

Затем вы можете написать наблюдателя, который проверяет реферера и применяет правила. Вот очень простой код, который должен дать вам отправную точку

config.xml

<global>
    <events>
        <sales_quote_add_item>
            <observers>
                <apply_price_rules>
                    <type>singleton</type>
                    <class>Your_Module_Model_Observer</class>
                    <method>applySpecialPriceRules</method>
                </apply_price_rules>
            </observers>
        </sales_quote_add_item>
    </events>
</global>

Observer.php

public function applySpecialPriceRules($observer) {
    $referer = Mage::app()->getFrontController()->getRequest()->getServer('HTTP_REFERER');
    $quoteItem = $observer->getEvent()->getItem();

    if(strpos($referer,'wishlist') !== false) {
        // apply rule 1
    }
    elseif(strpos($referer,'category') !== false) {
        // apply rule 2
    }
    else {
        // apply rule 3
    }
}
...