Magento 2: Добавьте товар в корзину программно с пользовательской ценой
Я хочу добавить товар с пользовательской ценой только в корзину/при оформлении заказа, но на первоначальную цену товара это не должно повлиять.
До сих пор я добивался этого.Я добавляю продукт программно на основе некоторого условия. Не используя никакого наблюдателя или что-то в этом роде, я просто передаю идентификатор продукта своему пользовательскому контроллеру и добавляю этот продукт в корзину.
public function execute(){
....
$productObj->setData('_edit_mode', true);
$productObj->setPrice(8000);
$productObj->setFinalPrice(8000);
$productObj->save();
$this->cart->addProduct($productObj, $product);
....
$this->cart->save();
}
Используя вышеуказанную функцию, изменяется только первоначальная цена товара, но не в корзине, так что можно сделать, чтобы сделать итак?
2
Author: Kaushal Suthar, 2017-03-16
1 answers
Я решил, следуя
public function execute(){
....
$finalPrice = $totalQty * $product->getKrat() * $price;
$item->setCustomPrice($product->getKrat() * $price);
$item->setOriginalCustomPrice($finalPrice);
$item->getProduct()->setIsSuperMode(true);
$item->setQty(0);
$item->save();
}
0
Author: Kaushal Suthar, 2017-06-22 11:42:12