最近我在产品颜色和尺寸上添加了属性。 (可配置产品) 当我们添加到购物车,然后去查看购物车时,我们会看到具有属性颜色和大小的产品。
我在 app / design / frontend / smartwave / porto / layout / iwd_opc.xml
中的单页结帐中添加了购物车块<reference name="content">
<block type="checkout/cart" name="checkout.cart" template="checkout/cart.phtml">
<block type="checkout/cart_coupon" name="checkout.cart.coupon" as="coupon" template="checkout/cart/coupon.phtml"/>
<block type="checkout/cart_totals" name="checkout.cart.totals" as="totals" template="checkout/cart/totals.phtml"/>
<block type="checkout/cart_sidebar" name="checkout.cart.sidebar" as="sidebar" template="checkout/cart/sidebar.phtml"/>
</block>
</reference>
将购物车布局添加到单页购物车后,我得到以下页面
现在我被困在这里,我应该如何获得属性名称? 我已将属性设置为从后端在前端可见。
显示购物车中产品的代码位于 app / design / frontend / smartwave / porto / template / checkout / cart.phtml
<?php foreach($this->getItems() as $_item): ?>
<?php echo $this->getItemHtml($_item) ?>
<?php endforeach ?>
代码的逻辑写在这里: app / code / core / Mage / Checkout / Block
public function getItems()
{
if ($this->getCustomItems()) {
return $this->getCustomItems();
}
return parent::getItems();
}
将产品展示到购物车的另一种方法是:但我不想使用此代码在购物车中显示列表:
$cart = Mage::getModel('checkout/cart')->getQuote();
foreach ($cart->getAllItems() as $item) {
$productName = $item->getProduct()->getName();
$productPrice = $item->getProduct()->getPrice();
echo "Name: ".$productName." Price: ".$productPrice;
}
我还尝试在xml文件中添加属性 应用/代码/核心/法师/销售的/ etc / config.xml中
<item>
<product_attributes>
<color/>
<size/>
<condition/>
<sku/>
<type_id/>
<name/>
<status/>
<visibility/>
<price/>
<weight/>
<url_path/>
<url_key/>
<thumbnail/>
<small_image/>
<tax_class_id/>
<special_from_date/>
<special_to_date/>
<special_price/>
<cost/>
<is_recurring/>
<recurring_profile/>
<gift_message_available/>
<msrp_enabled/>
<msrp/>
<msrp_display_actual_price_type/>
</product_attributes>
</item>
所以我刚刚将该块复制到onepage结帐页面,但我无法理解为什么onepage结帐页面没有显示产品的尺寸和颜色(&#34; / onepage /&#34;)奇怪的是,在结帐页面上可以看到颜色和尺寸(&#34;结帐/购物车/&#34;) 提前致谢
答案 0 :(得分:1)
我相信你没有在你的布局中添加itemrendere。基本上使用checkout / cart / item / default.phtml列出购物车项目。
我建议查看checkout.xml布局文件并将整个布局 for(k=0; k<10; k++)
节点复制到您的iwd中,然后开始删除不需要的模板包含。
另一种方法是使用布局更新,将iwd布局扩展到checkout_cart。哪个会做同样的事情。您需要使用<reference name="content">
标记从您的iwd句柄中删除额外的购物车包含。
答案 1 :(得分:0)
最后,我在 Blastfreak 的帮助下找到了解决方案 在 app / design / frontend / smartwave / porto / layout / iwd_opc.xml
中包含以下行<reference name="content">
<block type="checkout/cart" name="checkout.cart" template="checkout/cart.phtml">
<block type="checkout/cart_coupon" name="checkout.cart.coupon" as="coupon" template="checkout/cart/coupon.phtml"/>
<block type="checkout/cart_totals" name="checkout.cart.totals" as="totals" template="checkout/cart/totals.phtml"/>
<block type="checkout/cart_sidebar" name="checkout.cart.sidebar" as="sidebar" template="checkout/cart/sidebar.phtml"/>
<action method="addItemRender"><type>simple</type><block>checkout/cart_item_renderer</block><template>checkout/cart/item/default.phtml</template></action>
<action method="addItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/cart/item/default.phtml</template></action>
<action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/cart/item/default.phtml</template></action>
</block>
</reference>
输出页面: