添加到购物车时将特定商品添加到购物车(cs-cart)

时间:2015-07-06 19:14:22

标签: php cs-cart

我是cs-cart的新手。不是很熟悉它。我的最新项目涉及与Cs-Cart合作。我已经能够找出如何输出产品和使用类别。

现在已经试了好几个星期了。一直在几个网站和stackoverflow问题。什么都不像我想要的。 The only S.O. question that came close has no answer.

当特定商品添加到购物车时,我想稍微弹出一下。在弹出式div或框中,我想建议其他项目。如果可能的话,每个建议旁边都有一个添加到购物车按钮。 我到处搜索但不多。我不介意为此创建我自己的插件,但我不知道如何听取那些添加到购物车事件和在cs-cart中创建弹出窗口。

感谢任何帮助..

2 个答案:

答案 0 :(得分:0)

如果您在CS-Cart中将产品添加到购物车,则会有一个弹出框。默认情况下,添加到购物车功能是通过AJAX请求完成的。 如果您想修改此通知的内容,则必须检查/design/themes/YOUR_THEME_NAME/views/checkout/components/product_notification.tpl模板文件。 (替换YOUR_THEME_NAME)

但是我建议你,不要直接写入核心文件(php和tpl文件)。您可以找到official developer documentation here

如果您想为添加到购物车功能创建控制器扩展,您可以创建一个控制器,例如。 /app/addons/my_changes/controllers/frontend/checkout.post.php。将此代码写入此文件:

<?php

if ($mode == "add") {
    //Do something here
}

如果我的更改附加组件处于活动状态,则此代码将在产品添加到购物车后但在显示tpl文件之前运行。

答案 1 :(得分:0)

您可以使用以下内容创建 app / addons / my_changes / controllers / frontend / checkout.post.php 文件:

<?php

use Tygh\Registry;

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
   if ($mode == 'add') {
      $added_products = Registry::get('view')->getTemplateVars('added_products');
      if (!empty($added_products)) {
        foreach ($added_products as $data) {
          if (!empty($data['product_id']) && $data['product_id'] == THE_ID_OF_REQUIRED_PRODUCT) {
             $msg = Registry::get('view')->fetch('addons/my_changes/custom_product_notification.tpl');
             fn_set_notification('I', __('custom_product_notification_title'), $msg, 'I');
          }
        }
      }
   }
  return;
}

然后

  • 在管理上创建“custom_product_notification_title”语言变量 - &gt;语言 - &gt;管理翻译页面
  • 使用所需内容创建“design / themes / YOUR_THEME / templates / addons / my_changes / custom_product_notification.tpl”模板
  • 激活“我的更改”附加组件
  • 通过将“?cc&amp; ctpl”添加到管理面板中的网址来清除缓存