我正在编写一个自定义运费模块,我似乎无法弄清楚如何获得估计运输邮政编码...我知道如何在订单创建后获取邮政编码,但不是估计运费部分结帐流程
非常感谢任何输入!
杰夫
答案 0 :(得分:6)
有关客户购物车的所有信息都保存在Mage_Sales_Model_Quote
模型中,直到下订单为止。因此,您可以从报价中获取送货地址模型。从Shipping Address模型中,您可以获得邮政编码,在那里称为“邮政编码”。因此,您最初需要的只是为客户提供报价。
引用可以通过不同方式获得:
最常见的方法是通过从DB加载来获取Quote - 这可以在所有Magento工作流程和区域(API,前端,后端等)中完成。
但是对于你的情况,最简单的方法是从Checkout Cart模型中获取Quote,因为你不需要知道它的引用ID - 在前端Magento自动加载Cart并提供适当的客户数据。
/** @var $cart Mage_Checkout_Model_Cart */
$cart = Mage::getSingleton('checkout/cart');
$quote = $cart->getQuote();
$shippingAddress = $quote->getShippingAddress();
$zip = $shippingAddress->getPostcode();
为了更加了解,为什么在此方法中使用Checkout Cart:Checkout模块管理前端的整个结帐过程。它处理组合购物车,查看它,完成结帐步骤和下订单。结账模块还将客户的报价模型存储在购物车模型中。虽然Quote存储了整个信息并且可以在任何地方用来操纵客户的购物车,但是Cart模型只是一个临时服务模型,可以帮助Checkout模块履行其职责,并且可以在前端用于当前客户。
答案 1 :(得分:1)
你可以这样做:
Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->getPostcode();
//or
Mage::getSingleton('checkout/session')->getQuote()->getBillingAddress()->getPostcode();