Saya telah mengalami masalah yang sama di Magento 1.9.2.4 dan 2.0.5 terbaru.
Skenario:
- Tamu memesan
- Pesanan memiliki alamat Penagihan dan Pengiriman yang berbeda
- Admin mengedit pesanan di Panel Admin
Hasil:
Alamat pengiriman hilang dan alamat penagihan ditampilkan sebagai gantinya.
Alasan:
Metode _isSameAsBilling () selalu mengembalikan true jika pesanan ditempatkan oleh Tamu. Itu bukan perilaku yang pantas.
Metode yang dimaksud:
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()));
}
Seperti yang Anda lihat jika Pelanggan tidak terdaftar metode _isSameAsBilling () mengembalikan true bahkan jika alamat Penagihan dan Pengiriman berbeda.
Ini memiliki implikasi serius pada semua pesanan yang diedit melalui Panel Admin karena Alamat Pengiriman asli hilang.
Apakah ini bug atau saya melewatkan sesuatu?