Я настраиваю расширение POS в рамках подготовки к продаже на выездном мероприятии.
Раньше мы просто взимали продажи вручную и возвращались к добавлению заказов вручную постфактум. Это расширение POS позволит нам использовать наш действующий сайт для продажи товаров, а затем продажи будут правильно зарегистрированы (и существующие способы оплаты будут работать).
Теперь я пытаюсь применить специальные цены к товарам по мере их добавления в корзину. Код расширения делает это, чтобы добавить товары в корзину:
$product_model = Mage::getModel('catalog/product')->setStoreId(Mage::app()->getStore()->getId());
$session = Mage::getSingleton('checkout/session');
$cart = Mage::getSingleton('checkout/cart');
$product_model = Mage::getModel('catalog/product')
->setStoreId(Mage::app()->getStore()->getId())
->load($pr_id);
if(!$product_model)
throw new Exception("Product id {$pr_id} not found");
$cart->addProduct($product_model, array('qty' => $qty));
$cart->save();
$session->setLastAddedProductId($last_pr_id);
$this->getPos()->getQuote()->collectTotals()->save();
Все, что я нашел о применении ценообразования, делается для $item
, а не на уровне корзины. В другом коде я пробовал $product_model->setCustomPrice($price);
и setPrice()
и setOriginalPrice()
, но они не работают. Я чувствую, что очень близок к решению.
Может ли кто-нибудь с опытом помочь мне разобраться с элементом или найти способ применить скидку в указанном выше сегменте кода?
Спасибо!