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?