【问题标题】:Magento - Multiple Stores, get the store the product was added to the cart fromMagento - 多家商店,获取将产品添加到购物车的商店
【发布时间】:2024-06-29 18:00:01
【问题描述】:

我安装了一个多站点 Magento,其中包含一个网站和四个商店,并且希望在每个产品旁边的购物车中显示将产品添加到购物车中的商店(类似于 Gap.com 的做法)。这样客户就知道每件商品来自哪家商店。

任何想法我将如何去做?

干杯,

戴夫

【问题讨论】:

  • 听起来您也希望按商店分组的所有项目,而不仅仅是每个商店的渲染输出。对吗?

标签: magento customization shopping-cart


【解决方案1】:

一种可能的方法是,使用$_item->getStoreId()template/checkout/cart/render/default.phtml 的模板中区分每个项目的商店。

在标准 Magento default.phtml 模板中,$_item 被分配了当前要渲染的项目(在模板代码的最顶部)。

<?php $_item = $this->getItem() ?>

此后,您可以轻松地将商品正确的商店名称分配给变量,如下所示:

<?php
$aStore = array(
    '1' => 'Red Store',
    '2' => 'Green Store',
    '3' => 'Blue Store',
    '4' => 'Yummy Store'
);
$sStore = $aStore[$_item->getStoreId()];
?>

这使您可以使用&lt;?php echo $sStore; ?&gt; 在任意位置输出名称。

另一种可能性是覆盖 Mage_Sales_Model_Quote_Item 并创建一个公共 getter 方法,返回给定项目的商店名称。

但那是另一回事了,也许就像用大锤敲碎坚果^^

【讨论】:

  • 数组字面量太不灵活,改用Mage::app()-&gt;getStore($_item-&gt;getStoreId())-&gt;getName()
  • 我有意使用该数组,因为我们不知道 OP 究竟想在产品旁边显示什么(可能是徽标或其他)。不过我同意,如果他只想显示与后端定义相同的商店名称,那么 +1。
  • 感谢您的意见,我会尽快试用代码并告诉您运行情况! :-)
  • 工作到位!谢谢@Jürgen Thelen