在頁首加入購物車資訊

edited 十一月 -1 in Magento
開發環境: MagentoCommerce 1.8.0.0 Alpha

為了要在頁首加入一個購物車資訊,所以找了一下相關資訊

# 先將 app/design/frontend/base/default/template/page/html/header.phtml 複製一份到自己的樣板目錄,例如 app/design/frontend/default/olctw/template/page/html/header.phtml
# 下面程式碼片段可以取得一些購物車的資訊
$cart = Mage::getSingleton('checkout/cart');
$cartQuote = $cart->getQuote();
$cartCount = $cartQuote->getItemsCount(); //購物車裡品項數量
if (empty($cartCount)) {
$cartCount = '0';
}
if ($cartCount > 0) {
foreach ($cart->getItems() AS $item) {
echo $item->getProductUrl(); //產品網址
echo $item->getName(); //產品名稱
echo $item->getPrice(); //產品單價
echo $item->getQty(); //產品數量
}
echo $cartQuote->getGrandTotal(); //購物車金額總計
echo $this->getUrl('checkout/cart'); //結帳網址
} else {
echo '等待您的選購!';
}

# 當然,比較正式的作法是寫一個 extension ,在裡面繼承與覆蓋 app/code/core/Mage/Page/Block/Html/Header.php ,然後把大部分的程式邏輯移動到這個 Block

網路上找的資訊新舊混雜,所以碰了一些釘子

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=7424

評論

  • edited 八月 2013
    我建議可以看一下他的layout
    app/design/frontend/base/default/layout/page.xml
    他default header是在這訂

    在寫法及應用上非常強大
  • edited 八月 2013
    大概知道 layout 可以有很多開關的選項,但是好像沒有 cheat sheet 可以知道所有選項,只能一個一個打開來看 & 猜 XD
  • edited 八月 2013
    他layout裡面可以把其他block組進來
    比如你寫一個新的cart extends checkout的cart
    把這block定給layout中header底下
    這樣就可以直接用getChildHtml呼叫,不用在block header中放cart的東西
  • edited 八月 2013
    嗯,目前為了求快,都還是直接在樣板檔案裡面加程式碼,後面再找時間整理了 XD
  • edited 八月 2013
    嗯 這就讓我想起以前開發的case
    我們是先開發後台
    那時時間很夠,大家就乖乖的從layout寫起
    等到前台版型出來
    時間反而不夠了
    大家都直接上 Mage::getxxxx 了
Sign In or Register to comment.