Magento根据订单获取地址信息

20170406149146130740929.png

根据orderid获取address信息

代码实现:

$orderModel = Mage::getModel('sales/order')->loadByIncrementId($orderId);
$address = $orderModel->getShippingAddress();
$street = $address->getStreet();
$address_data = array(
    'name' => $address->getData('lastname').$address->getData('firstname'),//姓名
    'phone' => $address->getData('telephone'),//手机号
    'province' => $address->getData('region'),//省
    'city' => $address->getData('city'),//市
    'district' => $street[0],//区
    'street' => $street[1],//街道
);

原理:

public function getShippingAddress()
{
foreach ($this->getAddressesCollection() as $address) {
    if ($address->getAddressType()=='shipping' && !$address->isDeleted()) {
        return $address;
    }
}
return false;
}

 public function getAddressesCollection()
{
    if (is_null($this->_addresses)) {
        $this->_addresses = Mage::getResourceModel('sales/order_address_collection')
            ->setOrderFilter($this);

        if ($this->getId()) {
            foreach ($this->_addresses as $address) {
                $address->setOrder($this);
            }
        }
    }

    return $this->_addresses;
}
/**
 * get address street
 *
 * @param   int $line address line index
 * @return  string
 */
public function getStreet($line=0)
{
    $street = parent::getData('street');
    if (-1 === $line) {
        return $street;
    } else {
        $arr = is_array($street) ? $street : explode("\n", $street);
        if (0 === $line || $line === null) {
            return $arr;
        } elseif (isset($arr[$line-1])) {
            return $arr[$line-1];
        } else {
            return '';
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,958评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,404评论 25 708
  • 2017/3/14 RDBMS:关系型数据库管理系统 关系模型独立于语言 SQL有几种不同类型的语言:数据定义语言...
    ancherl阅读 1,658评论 0 6
  • 你极尽华丽的渲染, 终究不过是昙花一现。
    莫嵇雪阅读 238评论 0 1
  • 夕阳说, 慢下来, 看看沿途美丽的花朵。 慢下来, 把静静的云朵, 灼烧成天边的焰火。 朝阳说, 我喜欢, 追在身...
    洋阳qd阅读 330评论 0 0