Возможно, вам лучше будет использовать модель событий , чтобы ловить, когда элемент добавляется в цитату.
Есть событие для 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
}
}