ฉันได้พบปัญหาเดียวกันใน Magento 1.9.2.4 และ 2.0.5 ล่าสุด
สถานการณ์:
- แขกสั่งซื้อ
- คำสั่งซื้อมีการเรียกเก็บเงินและที่อยู่จัดส่งที่แตกต่างกัน
- ผู้ดูแลระบบแก้ไขคำสั่งซื้อในแผงการดูแลระบบ
ผลลัพธ์:
ที่อยู่สำหรับจัดส่งสูญหายและแสดงที่อยู่สำหรับเรียกเก็บเงินแทน
เหตุผล: _isSameAsBilling ()วิธีการเสมอกลับจริงถ้าสั่งซื้อโดยบุคคลทั่วไป มันเป็นพฤติกรรมที่ไม่เหมาะสม
วิธีการในคำถาม:
Magento 2.0.5: /app/code/Magento/Quote/Model/Quote/Address.php
protected function _isSameAsBilling()
{
return $this->getAddressType() == \Magento\Quote\Model\Quote\Address::TYPE_SHIPPING &&
($this->_isNotRegisteredCustomer() ||
$this->_isDefaultShippingNullOrSameAsBillingAddress());
}
Magento 1.9.2.4: /app/code/core/Mage/Sales/Model/Quote/Address.php
protected function _isSameAsBilling()
{
return ($this->getAddressType() == Mage_Sales_Model_Quote_Address::TYPE_SHIPPING
&& ($this->_isNotRegisteredCustomer() || $this->_isDefaultShippingNullOrSameAsBillingAddress()));
}
ดังที่คุณเห็นว่าลูกค้าไม่ได้ลงทะเบียนเมธอด _isSameAsBilling ()จะคืนค่าจริงแม้ว่าที่อยู่การเรียกเก็บเงินและการจัดส่งจะแตกต่างกัน
มันมีผลกระทบอย่างร้ายแรงต่อคำสั่งซื้อทั้งหมดที่แก้ไขผ่านแผงการดูแลระบบเนื่องจากที่อยู่จัดส่งดั้งเดิมหายไป
นี่เป็นข้อบกพร่องหรือฉันขาดอะไรไปหรือเปล่า?