客户输入的送货/账单地址不同。
如果我们需要在admin中编辑订单,它将创建一个新订单,在新订单中,送货地址默认为“与帐单相同”,并且原始送货地址丢失了!
- 任何人都可以确认其安装是否也一样。
- 有没有人有办法解决吗。
客户输入的送货/账单地址不同。
如果我们需要在admin中编辑订单,它将创建一个新订单,在新订单中,送货地址默认为“与帐单相同”,并且原始送货地址丢失了!
Answers:
我有这个问题。我的问题是,这same_as_billing_address
是通过前端设置的运送地址,因此后端认为没有第二个地址,因此跳过了渲染。
检查您的前端,是否提交正确的数据。
same_as_billing_address
设置正确。
我无法在Magento 1.9上重现它。
发行说明中没有针对此的错误修正,但是我在1.8.0.0发行说明中发现了以下内容:
行政命令和贷项通知单修复
- 使用管理面板创建订单并指定默认的帐单邮寄地址和默认的送货地址时,将正确使用这些地址。
可能这是相关的,并且还修复了该错误。发行说明并不总是完整的。
我在最新的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()方法也会返回true。
由于原来的收货地址丢失,这对通过管理面板编辑的所有订单都具有严重影响。
这是一个错误还是我错过了什么?
Magento 1.7遇到了相同的问题,并通过以下更改进行了纠正:app / code / core / Mage / Adminhtml / Model / Sales / Order / Create.php
您需要以一种干净的方式覆盖该类:)
使用以下代码更改方法:_initShippingAddressFromOrder:
protected function _initShippingAddressFromOrder(Mage_Sales_Model_Order $order)
{
$this->getQuote()->getShippingAddress()->setCustomerAddressId('');
Mage::helper('core')->copyFieldset(
'sales_copy_order_shipping_address',
'to_order',
$order->getShippingAddress(),
$this->getQuote()->getShippingAddress()
);
$this->getQuote()->getShippingAddress()->setSameAsBilling(false);
if($order->getShippingAddress()->getCustomerAddressId() && $order->getShippingAddress()->getCustomerAddressId() == $order->getBillingAddress()->getCustomerAddressId()) {
$this->getQuote()->getShippingAddress()->setSameAsBilling(true);
}
}