Рейтинг:-1

Установите количество на продукт, равное значению на входе

флаг us

я использую Коммерция 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']));

Ни один из них не дал ожидаемого результата.

Есть ли у вас какие-либо идеи?

Рейтинг:-1
флаг us

Как я и думал, я создал патч для этой функции.

Напоминание, это не хотфикс, это специально для моего веб-сайта.

diff --git a/modules/cart/src/CartManager.php b/modules/cart/src/CartManager.php
индекс 3b27ae77..b81db592 100644
--- a/modules/cart/src/CartManager.php
+++ б/модули/корзина/src/CartManager.php
@@ -108,7 +108,8 @@ класс CartManager реализует CartManagerInterface {
       $matching_order_item = $this->orderItemMatcher->match($order_item, $cart->getItems());
     }
     если ($matching_order_item) {
- $new_quantity = Calculator::add($matching_order_item->getQuantity(), $quantity);
+ //$new_quantity = Calculator::add($matching_order_item->getQuantity(), $quantity);
+ $new_quantity = $количество; //TODO: хотите узнать меню вечеринки ?
       $matching_order_item->setQuantity($new_quantity);
       $matching_order_item->сохранить();
       $saved_order_item = $matching_order_item;

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.