Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento-获取订单发货地址的客户地址id_Magento_Checkout_Addressbook_Shipping_Billing - Fatal编程技术网

Magento-获取订单发货地址的客户地址id

Magento-获取订单发货地址的客户地址id,magento,checkout,addressbook,shipping,billing,Magento,Checkout,Addressbook,Shipping,Billing,我通过$order->getShippingAddress()获得订单的发货地址 然后我加载默认的BillingAddress $address_default_billing = Mage::getSingleton('customer/session')->getCustomer() ->getDefaultBillingAddress(); 现在我想比较一下,但有个问题。如果我对它们都执行getId(),

我通过$order->getShippingAddress()获得订单的发货地址

然后我加载默认的BillingAddress

$address_default_billing = Mage::getSingleton('customer/session')->getCustomer()
                                    ->getDefaultBillingAddress();
现在我想比较一下,但有个问题。如果我对它们都执行
getId()
,即使我选择了收银台发货的账单地址,它们的id也不同,因此它们必须相同,但id不同。。怎么会这样?有没有办法在结帐时获取当前shippingaddress的客户地址id

例如:
$address->getId()
返回44,而
$address\u default\u billing->getId()
返回6

6是模型中客户地址的正确id,但订单发货id错误


谢谢

地址
id
将永远不会相同,因为下单后,地址信息将“永远不会”更改,而客户地址将随着客户的移动或发货地址的更改而更改

订单地址存储在
sales\u flat\u Order\u address

客户地址存储在
客户地址\u实体*

要比较要比较的地址,请比较各个元素

$address_data = $address->getData()
$address_default_billing_data = $address_default_billing->getData()

$compare = array('firstname', ..., 'city');

foreach($compare as $c){
   if($address_data[$c] != $address_default_billing_data[$c]){
     //not equal
     break;
   }

}

您可以通过
sales\u flat\u order\u address
表中的
customer\u address\u id
字段获取客户地址

代码如下:

$order = Mage::getModel('sales/order');
$order->loadByIncrementId($ext_order_id);
$address = $order->getShippingAddress();
$address->getData('customer_address_id');

谢谢你。帮助很大,而且工作起来没有任何问题。
$order = Mage::getModel('sales/order');
$order->loadByIncrementId($ext_order_id);
$address = $order->getShippingAddress();
$address->getData('customer_address_id');