2015-07-12 70 views
0

我希望有人能幫我勾住這個。該場景非常簡單:magento確定用戶是否輸入了送貨信息

用戶已購買產品並「查看他們的購物車」。該URL看起來是這樣的:

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

這說明沒有運輸和下面的小計部分處理(儘管它確實表明它在細節部分上面是煩人)。

現在,用戶「開始結帳」並輸入結算和運送信息。我已經測試過了,一旦他們輸入了運輸信息(第一步結帳),如果他們返回查看購物車,將顯示運費和稅務信息。

我的問題是,是否有任何方式類似於..->isLoggedIn()來確定報價是否有送貨地址呢?是這樣的:

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

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

顯然這些都不是正確的,但類似的東西。謝謝!

回答

0

試試這個:

$shippingAddress = Mage::getModel('checkout/session')->getQuote()->getShippingAddress(); 

if(empty($shippingAddress)) { 
//do your thing 
} 
+0

不幸的是,這是行不通的。我已經在啓動電子商務流程時檢查了'sales_flat_quote_address',事實上,在用戶開始結賬之前,運送地址記錄是存在的 - 只有值爲空,但對象不是空的。 –

+0

所以你可以檢查對象的值。如果它們爲空意味着送貨地址不存在。如果它們不爲零意味着送貨地址存在。 –

+1

Reena是正確的。每個需要它的報價都會添加結算地址和送貨地址。當用戶填寫帳單和送貨地址並繼續下一步時,則保存報價地址。 – 2015-07-13 15:08:55

2

我想你應該嘗試的默認送貨地址that.Try這樣的:

獲取客戶違約發貨信息

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

希望這有助於。