я использую Коммерция Ajax Добавить в корзину Модуль для добавления товара в корзину с помощью AJAX. Я думаю, мне придется сделать это, создав патч.
Он работает нормально, но я хотел бы изменить способ добавления товара в корзину. Например, пользователи добавляют 4 раза один и тот же товар в корзину. Я уже внес некоторые изменения, поэтому по умолчанию количество товаров в моей корзине равно четырем. На данный момент, если пользователи нажимают *Добавить в корзину, количество будет добавлено в корзину.
Вместо того, чтобы добавлять количество в корзину, я хотел бы обновить количество. Если пользователи нажимают на Добавить в корзину и количество равно пяти, вместо добавления пяти к количеству количество продукта равно пяти вместо девяти.
После копания я нашел в commerce/modules/cart/src/Form/AddToCartForm.php представить форму()
, в котором используется следующий код.
$this->entity = $this->cartManager->addOrderItem($cart, $order_item, $form_state->get(['settings', 'combine']));
Я попытался удалить элемент заказа перед добавлением элемента (чтобы «имитировать» количество 0) с помощью этого кода.
$this->cartManager->removeOrderItem($cart, $order_item);
Я также попытался обновить корзину товаров заказа.
$this->entity = $this->cartManager->updateOrderItem($cart, $order_item, $form_state->get(['settings', 'combine']));
Ни один из них не дал ожидаемого результата.
Есть ли у вас какие-либо идеи?