Добавить продукт в корзину по моей индивидуальной цене, основываясь на полях страницы сведений о продукте, введенных клиентом в Magento 2 - PullRequest
0 голосов
/ 22 марта 2019

Я хочу получить 3 поля от пользователя, которые будут заполнены нестандартным размером, и после этого на основе этого размера необходимо сгенерировать цену за него. Эту цену я могу показать на странице, но при добавлении в корзину это первоначальная цена продукта Я использовал этот код с методом Observer Это Наблюдатель

class CustomPrice implements ObserverInterface
{
    public function execute(\Magento\Framework\Event\Observer $observer) {

        $item=$observer->getEvent()->getData('quote_item');
        $product=$observer->getEvent()->getData('product');
        // here i am using item's product final price
        $price = 1000; // 10 is custom price. It will increase in product price.
        // Set the custom price
        $item->setCustomPrice($price);
        $item->setOriginalCustomPrice($price);
        // Enable super mode on the product.
        $item->getProduct()->setIsSuperMode(true);
        return $this;
    }

}

Это файл Evets.xml

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="checkout_cart_update_items_after">
    <observer name="customprice" instance="MGS\CartPrice\Observer\CustomPrice" />
</event>

Я принял код от https://webkul.com/blog/magento2-set-custom-price-of-product/

...