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