add item to cart with addition option console error Unable to unserialize value
-
01-03-2021 - |
Domanda
i am trying to add product to cart with addition option but i ended up with message: "Unable to unserialize value."
this error on console resoponse on section refresh.
I am using checkout_cart_product_add_after
event and observer code like below.
$item = $observer->getQuoteItem();
$additionalOptions = array();
if ($additionalOption = $item->getOptionByCode('additional_options')) {
$additionalOptions = (array) unserialize($additionalOption->getValue());
}
$additionalOptions[] = [
'label' => 'Additional Options Label',
'value' => 'Additional Options Value',
];
if (count($additionalOptions) > 0) {
$item->addOption(array(
'product_id' => $item->getProductId(),
'code' => 'additional_options',
'value' => serialize($additionalOptions),
));
}
Soluzione
Use json_encode
instead serialize
public function execute(EventObserver $observer) {
$additionalOptions = array();
if ($additionalOption = $item->getOptionByCode('additional_options')) {
$additionalOptions = (array) unserialize($additionalOption->getValue());
}
$additionalOptions[] = [
'label' => 'helllo',
'value' => 'vaddfsd',
];
if (count($additionalOptions) > 0) {
$item->addOption(array(
'code' => 'additional_options',
'value' => json_encode($additionalOptions),
));
}
}
Altri suggerimenti
A lot of previously serlialised stuff in m2 is now json encoded. Try json decode instead?
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange