我通过$ order-> getShippingAddress()
获得了订单的送货地址$order = Mage::getModel('Mage_Sales_Model_Order');
$order->loadByIncrementId($ext_order_id);
$address = $order->getShippingAddress();
我按
加载DefaultBillingAddress$address_default_billing = Mage::getSingleton('customer/session')->getCustomer()
->getDefaultBillingAddress();
现在我想比较它们,但是有问题。如果我在他们两个上做了getId()
,他们就有不同的身份证,即使我在结账时选择了结算地址,所以他们必须是相同的但身份不同..这怎么会出现?有没有办法在结账时获取当前送货地址的客户地址ID?
示例:$address->getId()
返回44,$address_default_billing->getId()
返回6
6是模型中客户地址的正确ID,但order-shipping-id错误..
由于
答案 0 :(得分:3)
您可以在customer_address_id
表
sales_flat_order_address
字段获取客户地址
这里是代码:
$order = Mage::getModel('sales/order');
$order->loadByIncrementId($ext_order_id);
$address = $order->getShippingAddress();
$address->getData('customer_address_id');
答案 1 :(得分:0)
地址id
永远不会相同,因为在下订单后,地址信息“永远不会”客户搬家时更改客户地址,或更改送货地址。
订单地址存储在sales_flat_order_address
客户地址存储在customer_address_entity*
比较您想要比较各个元素的地址
$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;
}
}