InsideDarkWeb.com

Add option to product in the cart progrmatically in magento 2

<?php
namespace NeologixBopisObserver;

use MagentoFrameworkEventObserverInterface;
use MagentoFrameworkAppRequestInterface;
use MagentoCheckoutModelSession as CheckoutSession;

class SetAdditionalOptions implements ObserverInterface
{

    protected $_request;

    public function __construct(
        RequestInterface $request,CheckoutSession  $checkoutSession
    ) {
        $this->_request = $request;
        $this->checkoutSession = $checkoutSession;
    }
    public function execute(MagentoFrameworkEventObserver $observer)
    {
        $infoDataObject = $observer->getEvent()->getInfo()->toArray();
        $cart = $observer->getEvent()->getCart();

        foreach ($infoDataObject as $itemId => $itemInfo) {

           $item = $cart->getQuote()->getItemById($itemId);
           $product = $item->getProduct();
           **// able to load product but after this code is not working for adding options to the product**
           $additionalOptions = array(
                array(
                    'code'  => 'my_code',
                    'label' => 'This text is displayed through additional options2',
                    'value' => 'ID is '
                )
            );
             $product->addOption(
                array(
                     'code'  => 'additional_options',
                     'value' => serialize($additionalOptions),
                )
            );
        }
    }
}
?>

Magento Asked by anantchopra2007 on September 12, 2020

2 Answers

2 Answers

Try his code. It will work

       $additionalOptions[] = [
                'label' => 'This text is displayed through additional options2',
                'value' => 'ID is '
            ];

        if(count($additionalOptions) > 0){
            $item->addOption(array(
                'code' => 'additional_options',
                'value' => serialize($additionalOptions)
            ));
        }

Answered by Gurdit Singh on September 12, 2020

try below event for your task

checkout_cart_update_items_before

because right now when you adding product option but quote is already updated so if you are setting up the custom option they are not getting saved

So use before event instead of after

you can see more info in this class

https://github.com/magento/magento2/blob/2.0.13/app/code/Magento/Checkout/Model/Cart.php

Answered by Murtuza Zabuawala on September 12, 2020

Add your own answers!

Related Questions

WYSIWYG media directory contents removed

1  Asked on November 12, 2020 by tyler-v

       

Magento 2 hacked with script in hacked

4  Asked on October 25, 2020 by casey

 

Magento 2 How to check Price Type?

1  Asked on October 21, 2020 by jackson

   

Magento 2 : How to insert Price inclusive Tax?

3  Asked on October 11, 2020 by anastasia-di-paulo

   

How to create and use REST API for mobile app?

1  Asked on September 23, 2020 by gowri-shankar

   

Add option to product in the cart progrmatically in magento 2

2  Asked on September 12, 2020 by anantchopra2007

 

Magento 2 Access-Control-Allow-Origin

2  Asked on September 9, 2020 by borche-glafche

   

Magento 2: what is the catalog_attributes.xml file?

2  Asked on September 7, 2020 by raphael-at-digital-pianism

       

magento 2 – modify db_schema.xml field length

1  Asked on September 4, 2020 by sairaj-gadekar

 

Magento 2.3.2 Upgrade to 2.4

2  Asked on September 4, 2020 by hatim

 

Ask a Question

Get help from others!

© 2021 InsideDarkWeb.com. All rights reserved.