Ich habe das gleiche Problem in den neuesten Magento 1.9.2.4 und 2.0.5 festgestellt.
Szenario:
- Gast gibt eine Bestellung auf
- Die Bestellung hat unterschiedliche Rechnungs- und Lieferadressen
- Der Administrator bearbeitet die Reihenfolge im Admin-Bereich
Ergebnis:
Die Lieferadresse geht verloren und stattdessen wird die Rechnungsadresse angezeigt.
Grund:
Die Methode _isSameAsBilling () gibt immer true zurück , wenn die Bestellung von einem Gast aufgegeben wurde. Es ist kein richtiges Verhalten.
Die fragliche Methode:
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()));
}
Wie Sie sehen können, wenn der Kunde nicht registriert ist, gibt die Methode _isSameAsBilling () true zurück , auch wenn die Rechnungs- und Versandadressen unterschiedlich sind.
Dies hat schwerwiegende Auswirkungen auf alle Bestellungen, die über das Admin-Panel bearbeitet werden, da die ursprüngliche Lieferadresse verloren geht.
Ist das ein Fehler oder fehlt mir etwas?