2012-03-29 4 views
1

Я ищу способ добавить значение к цене конфигурируемого продукта после выбраны все необходимые параметры. Мне нужно соответствовать полному SKU выбранного простого продукта, так что цены на опцион не подходятИзменение цены настраиваемого продукта

Я построил JSON с ценами на SKU и теперь ищу JS-событие, чтобы выполнить задачу чисто, а также сохранить новую цена во время добавить в корзину и проверки этапов

заранее спасибо за любые идеи

ответ

4

Вы можете использовать класс наблюдателя слушать checkout_cart_product_add_after и использовать «Super Mode» продукт, чтобы установить пользовательские цены на котировки пункта.

В вашем /app/code/local/{namespace}/{yourmodule}/etc/config.xml:

<config> 
    ... 
    <frontend> 
     ... 
     <events> 
      <checkout_cart_product_add_after> 
       <observers> 
        <unique_event_name> 
         <class>{{modulename}}/observer</class> 
         <method>modifyPrice</method> 
        </unique_event_name> 
       </observers> 
      </checkout_cart_product_add_after> 
     </events> 
     ... 
    </frontend> 
    ... 
</config> 

, а затем создать класс наблюдателя в/приложения/код/​​местные/{имен }/{} yourmodule /Model/Observer.php

class <namespace>_<modulename>_Model_Observer 
{ 
    public function modifyPrice(Varien_Event_Observer $obs) 
    { 
     // Get the quote item 
     $item = $obs->getQuoteItem(); 
     // Ensure we have the parent item, if it has one 
     $item = ($item->getParentItem() ? $item->getParentItem() : $item); 
     // Load the custom price 
     $price = $this->_getPriceByItem($item); 
     // Set the custom price 
     $item->setCustomPrice($price); 
     $item->setOriginalCustomPrice($price); 
     // Enable super mode on the product. 
     $item->getProduct()->setIsSuperMode(true); 
    } 

    protected function _getPriceByItem(Mage_Sales_Model_Quote_Item $item) 
    { 
     $price; 

     //use $item and maybe your json object to determine the correct price 

     return $price; 
    } 

} 

Это будет обрабатывать изменения цен от внутреннего интерфейса. Что касается javascript, извините, но я не уверен!

+0

Принял ваш ответ, поскольку мне удалось реализовать часть JS :) Остается одна проблема - обновление пользовательской цены, когда анонимный клиент добавляет товар в корзину и затем подключается к магазину, чтобы цена была пересчитана, есть ли у вас какие-либо идеи по этому поводу? – Zifius

+0

Как вы делали JS? Мне интересно посмотреть, что это за решение. Что касается проблемы входа в систему, является ли цена сбрасывается, когда клиент входит в систему? Возможно, есть лучшее событие для прослушивания, или, может быть, вы можете наблюдать за событием входа и повторять каждый элемент. –

+0

Я решил проблему ценообразования в мероприятии 'sales_quote_merge_after', где анонимная корзина для клиентов преобразована в зарегистрированный клиент. Что касается JS, то я построил полный JSON идентификаторов параметров для пар admin value, собрал полный простой SKU и добавленную стоимость до конечной цены (опять же от JSON) – Zifius

Смежные вопросы