如何获得Magento中的估计发货zipcode?

如何获得Magento中的估计发货zipcode?,magento,magento-1.7,Magento,Magento 1.7,我正在编写一个自定义运费模块,但我似乎不知道如何获取估计运费zipcode…我知道在创建订单后如何获取zipcode,但不知道如何获取结帐过程中的估计运费部分 非常感谢您的任何意见 杰夫你可以做如下事情: Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->getPostcode(); //or Mage::getSingleton('checkout/session')->g

我正在编写一个自定义运费模块,但我似乎不知道如何获取估计运费zipcode…我知道在创建订单后如何获取zipcode,但不知道如何获取结帐过程中的估计运费部分

非常感谢您的任何意见


杰夫

你可以做如下事情:

Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->getPostcode();
//or
Mage::getSingleton('checkout/session')->getQuote()->getBillingAddress()->getPostcode(); 

在下订单之前,有关客户购物车的所有信息都保存在
Mage\u Sales\u Model\u Quote
Model中。因此,您可以从报价中获取配送地址模型。从送货地址模型中,你可以得到邮政编码,在那里称为“邮政编码”。因此,您最初唯一需要的就是为客户获取报价

报价可以通过不同的方式获得:

  • 通过其id或任何其他属性从DB加载
  • 从签出会话中收到
  • 从收银台购物车模型接收
最常用的方法是从DB加载Quote,这可以在所有Magento工作流和区域(API、前端、后端等)中完成

但对于您的情况,最直接的方法是从收银台购物车模型中获取报价,因为您不需要知道它的报价id-在前端,Magento会自动将适当的客户数据加载购物车

/** @var $cart Mage_Checkout_Model_Cart */
$cart = Mage::getSingleton('checkout/cart');
$quote = $cart->getQuote();
$shippingAddress = $quote->getShippingAddress();
$zip = $shippingAddress->getPostcode();
为了进一步了解,为什么在这种方法中使用签出购物车:签出模块在前端管理整个签出过程。它处理组成购物车、查看购物车、完成结账步骤和下订单。结帐模块还将客户的报价模型存储在其购物车模型中。虽然Quote存储了全部信息,可以在任何地方使用它来操作客户的购物车,但购物车模型只是一种临时服务模型,用于帮助结账模块履行其职责,并且它可以在前端当前客户使用