【问题标题】:magento determine if user has entered shipping informationmagento 判断用户是否输入了发货信息
【发布时间】:2015-09-30 22:08:33
【问题描述】:

我希望有人能帮我解决这个问题。场景非常简单:

用户购买了产品并“查看了他们的购物车”。网址如下所示:

http://shop-local.mysite.com/mystore/checkout/cart/

这在下面的小计部分中显示没有运输和处理(尽管它确实在上面的详细信息部分中显示,这很烦人)。

现在,用户“进行结帐”并输入帐单和送货信息。我已经测试过了,一旦他们输入了运输信息(单页结账的第二步),如果他们返回查看他们的购物车,就会显示运输和税务信息。

我的问题是,有没有类似于..->isLoggedIn() 的方法来确定报价是否有送货地址?类似:

Mage::helper('quote/shipping')->getShipping()

或

Mage::helper('checkout')->quoteHasShipping()

显然那些是不正确的,但类似的东西。谢谢!

【问题讨论】:

    标签: magento checkout cart


    【解决方案1】:

    我认为您应该尝试使用默认送货地址。试试这样:

    获取客户默认发货信息

    $customerAddressId = Mage::getSingleton(‘customer/session’)->getCustomer()->getDefaultShipping();
    if ($customerAddressId){
    $address = Mage::getModel(‘customer/address’)->load($customerAddressId);
    $address->getData();
    }
    

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      试试这个:

      $shippingAddress = Mage::getModel('checkout/session')->getQuote()->getShippingAddress();
      
      if(empty($shippingAddress)) {
      //do your thing
      }
      

      【讨论】:

      • 不幸的是,这不起作用。我在启动电子商务流程时检查了sales_flat_quote_address,实际上送货地址记录是存在的,甚至在用户结帐之前 - 只是值为空,但对象不为空。
      • 这样您就可以检查对象的值。如果它们为空,则表示送货地址不存在。如果它们不为空,则表示存在送货地址。
      • Reena 是正确的。为需要它的每个报价添加帐单和送货地址。当用户填写账单和送货地址并继续下一步时,报价地址将被保存。
      • 谢谢大卫,您可以投票以表示您的支持 :) @OliverWilliams - 如果有帮助,请投票并接受答案
      猜你喜欢
      • 1970-01-01
      • 2014-09-27
      • 2013-12-27
      • 2020-05-24
      • 1970-01-01
      • 2014-09-25
      • 2013-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多