0

クライアントは、チェックアウト プロセスが各ステップ (ログイン/登録、請求、発送など) ごとに個別のページのように見えることを望んでいるので、テンプレートをそのように変更すると、すべてが正常に機能します。ただし、今ではすべてのステップでカートの内容を表示したいと考えています。

ショッピング カートのサイドバー モジュールを使用できると思いますが、正しく表示されません。

部分的には、Magento が使用するモジュール/ブロック構成の一部を理解していないためだと思われます。私はそれを読んでみましたが、すべての Magento と同様に、非常に不明確です。

では、custom/template/checkout/onepage/billing.phtml のテンプレートにカートの内容を挿入するにはどうすればよいでしょうか? これを行うには複数の方法があると確信しており、最も簡単な方法を探しています。

4

2 に答える 2

5

これは、請求フェーズだけでなく、どこでも機能するはずです。

$quote = Mage::helper('checkout')->getQuote();
foreach ($quote->getItemsCollection() as $item) {
    // output details of an item.
    echo $item->getName();
}

それぞれ$itemがですMage_Sales_Model_Quote_Item

PS。
1ページのチェックアウトが導入される前に存在していた古いマルチシッピングチェックアウトを再現しようとしているようです。これは、 [システム]>[構成]>[チェックアウト]>[チェックアウトオプション]の最初の設定で再度アクティブにできます。

于 2011-04-11T11:35:00.233 に答える
2

clockworkgeek はその答えからここに着手しましたが、製品の数量、価格、そしてカートの合計価格も表示する必要がありました。Magento のドキュメントはせいぜい密度が高いため、検索した結果、Magento でカートの内容をフォーマット用のテーブル HTML とともに表示するための答えを以下に示します。

<?php $quote = Mage::helper('checkout')->getQuote(); //gets the cart contents ?>
<table>
<thead>    
<th>Product</th>
<th>Quantity</th>
<th>Price/ea.</th>
<th>Total</th>
</thead>

<?php foreach ($quote->getItemsCollection() as $item) { ?>
<tr><td><?php echo $item->getName(); ?></td>
<td><?php echo $item->getQty(); ?></td> 
<td><?php echo $this->helper('checkout')->formatPrice($item->getPrice(), 2); ?></td>
<td><?php $floatQty = floatval($item->getQty());
$total = $floatQty * $item->getPrice();
echo $this->helper('checkout')->formatPrice($total, 2); //multiply the quantity by the price and convert/format ?></td>
</tr>       
<?php  } ?>

<tfoot>
<td></td>
<td></td>
<td></td>
<td><?php echo $this->helper('checkout')->formatPrice($quote->getGrandTotal()); ?></td>
</tfoot>
</table>

これは、$item ごとの合計を見つける大まかな方法​​を含め、非常に醜いコードかもしれませんが、機能します。$item の合計を取得するためのより良い方法があると確信していますが (calcRowTotal は機能していないようです)、それで仕事は完了します。

そして、私を正しい道に導いてくれた clockworkgeek に感謝します。

于 2011-04-14T06:57:57.847 に答える