ฉันกำลังใช้ Commerce 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']));
ทั้งสองไม่ได้ให้ผลลัพธ์ที่คาดหวัง
คุณมีความคิดใด ๆ ?