Điểm:-1

Đặt số lượng trên mỗi sản phẩm bằng với giá trị trong đầu vào

lá cờ us

tôi đang sử dụng Thương mại Ajax Thêm vào giỏ hàng mô-đun để thêm sản phẩm vào giỏ hàng của tôi bằng AJAX. Tôi đoán tôi sẽ phải làm điều đó bằng cách tạo một bản vá.

Nó hoạt động tốt, nhưng tôi muốn thay đổi cách thêm sản phẩm vào giỏ hàng. Ví dụ: người dùng thêm 4 lần cùng một sản phẩm vào giỏ hàng. Tôi đã thực hiện một số thay đổi để theo mặc định, số lượng trong giỏ hàng của tôi là bốn. Hiện tại, nếu người dùng nhấp vào *Thêm vào giỏ hàng thì số lượng sẽ được thêm vào giỏ hàng.

Thay vì thêm số lượng vào giỏ hàng, tôi muốn cập nhật số lượng. Nếu người dùng nhấp vào Thêm vào giỏ hàng và số lượng là năm, thay vì thêm năm vào số lượng, số lượng cho sản phẩm là năm thay vì chín.

Sau khi đào, tôi đã tìm thấy trên Commerce/modules/cart/src/Form/AddToCartForm.php gửiForm(), sử dụng đoạn mã sau.

$this->entity = $this->cartManager->addOrderItem($cart, $order_item, $form_state->get(['settings', 'combine']));

Tôi đã cố xóa mục đặt hàng trước khi thêm mục (để "mô phỏng" số lượng bằng 0) bằng mã này.

$this->cartManager->removeOrderItem($cart, $order_item);

Tôi cũng đã thử bằng cách cập nhật giỏ hàng của đơn hàng.

$this->entity = $this->cartManager->updateOrderItem($cart, $order_item, $form_state->get(['settings', 'combine']));

Không ai trong số họ đưa ra kết quả mong đợi.

Bạn còn ý kiến ​​nào không?

Điểm:-1
lá cờ us

Đúng như tôi nghĩ, cuối cùng tôi đã tạo một bản vá cho tính năng này.

Lời nhắc nhở, đây không phải là một hotfix, nó dành riêng cho trang web của tôi.

diff --git a/modules/cart/src/CartManager.php b/modules/cart/src/CartManager.php
chỉ mục 3b27ae77..b81db592 100644
--- a/modules/cart/src/CartManager.php
+++ b/modules/cart/src/CartManager.php
@@ -108,7 +108,8 @@ lớp CartManager thực hiện CartManagerInterface {
       $matching_order_item = $this->orderItemMatcher->match($order_item, $cart->getItems());
     }
     nếu ($matching_order_item) {
- $new_quantity = Máy tính::add($matching_order_item->getQuantity(), $quantity);
+ //$new_quantity = Máy tính::add($matching_order_item->getQuantity(), $quantity);
+ $new_quantity = $quantity; // TODO: voir si Impact sur la partie menu?
       $matching_order_item->setQuantity($new_quantity);
       $matching_order_item->save();
       $saved_order_item = $matching_order_item;

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.