【问题标题】:Magento (PHP): Add Product invisble to CartMagento (PHP):将产品不可见添加到购物车
【发布时间】:2010-12-07 07:30:43
【问题描述】:

我正在寻找一种将产品添加到购物车而不显示它的方法。

例子:

新客户订单 -> 购物车中有欢迎信,但客户没有看到。

添加的产品成本始终为 0 欧元,因此它从未改变购物车总数。

解决方案应该尽可能少地改变。

有什么想法吗?

谢谢!

(对不起,我的英语很糟糕......)

【问题讨论】:

    标签: php events magento observer-pattern shopping-cart


    【解决方案1】:

    我会说稍微更改一下公式,然后在保存订单之前将其添加到订单中。在将报价转换为订单时(sales_model_service_quote_submit_before 是这里的一个好事件,但还有其他事件),将产品添加到订单中。

    这样一来,您就不必四处尝试隐藏购物车中的物品了,效果是一样的。

    【讨论】:

    • 我同意这是去这里的方式。在将其发送到 ERP 系统并将其添加到那里之前进行逻辑检查。
    【解决方案2】:

    两个选项:

    1. 在 Magento 中定义一个扩展虚拟产品类型的新产品类型,然后为结帐和购物车使用不输出任何 html 的自定义项目渲染器。这是该过程的有用tutorial

    2. 定义一个名为“cart_visibility”或类似名称的新布尔产品属性,在您自己的主题中覆盖DOCROOT\app\design\frontend\base\default\template\checkout\cart\item\default.phtml,并在输出项目属性之前测试该值,例如第 28 行:

      <?php if($_item->getCartVisibility(){ ?>

    不要忘记关闭文件末尾的大括号。

    【讨论】:

    • 再考虑到这一点,他是不是也必须修改“购物车中没有商品”的逻辑?还有“购物车中的 X 项”全局块?原来的想法越想越糟。
    • @Joseph,你是对的,结账完成时的观察者是最好的选择。在此之前将其放入购物车没有任何价值,只有复杂性。
    【解决方案3】:

    如果它是 0 那么为什么将它添加到购物车只需将其作为消息添加到购物车页面,方法是将其添加到购物车模板或将您自己的块注入此模板

    【讨论】:

    • 因为添加的产品必须发送给 erp,而客户不应该知道他获得了额外的“产品”。
    猜你喜欢
    • 2014-12-17
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    相关资源
    最近更新 更多