2013-07-11 2 views
2

Я хотел бы иметь продукт, который в основном является калькулятором, который я буду строить в Javascript. Я хочу, чтобы процесс добавления в корзину, чтобы захватить сгенерированную цену со страницы и отправить ее в корзину - это насколько я добрался.Magento: динамическое изменение цены продукта на добавление в корзину

Я создал наблюдателя, чтобы подключиться к событию checkout_cart_product_add_after и обновить цену позиции котировки на основе значения поля в представленной форме, которая работает.

Проблема заключается в том, что если вы добавляете вторую или несколько версий товара по разным ценам, он обновляет все другие версии в корзине по одной и той же цене, поэтому вы никогда не сможете иметь кратность одного и того же элемента в корзине с разными ценами.

У кого-нибудь есть идеи? Вот код в моем наблюдателе:

public function modifyPrice(Varien_Event_Observer $observer) { 
    $customprice = $_POST["customprice"];  
    $item = $observer->getQuoteItem(); 
    $item = ($item->getParentItem() ? $item->getParentItem() : $item); 
    if ($customprice > 0) { 
     $item->setCustomPrice($customprice); 
     $item->setOriginalCustomPrice($customprice); 
     $item->getProduct()->setIsSuperMode(true); 
    } 
} 
+0

Я предлагаю программно добавлять различные дополнительные параметры к продукту, который вы добавляете в корзину. Затем Magento будет рассматривать их как разные позиции цитаты, а не добавлять их вместе. Затем вы можете использовать JS для удаления этих параметров из DOM тележки, чтобы они не были видны. – McNab

+0

Это определенно идея, я дам ей завихрение и вернусь к вам. Спасибо – user2565123

+0

Проверьте приведенную ниже ссылку, это может вам помочь. http://stackoverflow.com/questions/9721583/changing-the-price-in-quote-while-adding-product-to-cart-magento –

ответ

0

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

0

Благодарим вас за McNab. Я следил за тем, как добавить каждый товар, добавленный в корзину, для того, чтобы преодолеть проблему с переписыванием цены, которая отлично работала.

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

Magento - Quote/order product item attribute based on user input

Это делает расчет цены намного безопаснее, выбранные параметры затем показаны в корзине и детали заказа, и нет проблемы с перепиской цены!

Мой первый вопрос о переполнении стека и это ад сообщества, спасибо всем.

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