Почему второй продукт, динамически добавляемый в корзину, теряет свои возможности в Magento2 - PullRequest
0 голосов
/ 11 июня 2018

Я динамически добавляю товары в корзину в Magento2 с некоторыми пользовательскими настройками.Каждый продукт имеет один и тот же базовый идентификатор продукта с различными параметрами.Represent Product был корректно переопределен, поэтому все товары, добавленные в корзину, являются отдельными.Однако с этим кодом второй добавленный продукт потеряет свои пользовательские параметры:

$magento_product = $this->productRepository->get('simple-product-1');
$params = array(
    'product' => $magento_product->getId(),
    'qty'     => intval(5),
    'options' => array(
        'cr_price' => 12.0,
        'Product' => "Test P",
        'cr_XML' => '<root></root>'
    ),
);
$this->cart->addProduct($magento_product, $params);
$params = array(
    'product' => $magento_product->getId(),
    'qty'     => intval(10),
    'options' => array(
        'cr_price' => 14.0,
        'Product' => "Test P2",
        'cr_XML' => '<root></root>'
    ),
);
$this->cart->addProduct($magento_product, $params);
$this->cart->save();

Запись в таблице quote_item_option имеется только у первого продукта.

Есть мысли о том, почему и какбыло бы желательно исправить.

1 Ответ

0 голосов
/ 15 июня 2018

Принудительная перезагрузка продукта между каждым добавлением устраняет эту проблему.

$this->productRepository->get('simple-product-1', false, null, true);

Последний параметр true равен forceReload.

...