【问题标题】:Prestashop: Add option in Catalog Price Rules to select product in stock OR out of stockPrestashop:在目录价格规则中添加选项以选择有货或无货的产品
【发布时间】:2026-01-20 19:10:01
【问题描述】:

我有 Prestashop 1.6.1.4,店里的大部分产品都是零库存,但可以订购。

在这种情况下,我希望订购零库存产品(预购)的客户能够获得特定百分比的折扣。

如何在目录价格规则中添加这样的过滤器?

【问题讨论】:

    标签: php prestashop-1.6


    【解决方案1】:

    抱歉,Prestashop 无法实现。

    问候

    【讨论】:

      【解决方案2】:

      据我们所知,通过目录价格规则菜单添加条件是不可行的,但您可以调整代码来实现这一点。

      为此,您需要创建一个根据您的需要提供折扣的优惠券,然后您可以检查购物车状态并将生成的优惠券应用到当前购物车。

      您可以使用以下代码检查购物车库存状态:

      $stock = false;
      $check = 0;
      $products = $this->context->cart->getProducts();
      foreach ($products as $pro)
      {
      if ($pro->out_of_stock)
      {
      $check++;
      }
      }
      if ($check == count($products))
      {
      $stock = true;
      }
      

      如果最后 $stock 的值是 true,那么您购物车中的所有产品都缺货。然后您可以使用以下代码将购物车规则应用于当前购物车:

      $cart_rule_id = CartRule::getIdByCode(COUPON_CODE);
      $this->context->cart->addCartRule(cart_rule_id);
      

      【讨论】:

      • 虽然这个选项不是很方便,但我们寻求将测试它。我不确定在哪里插入代码。
      • 您可以将此代码添加到前端的订单控制器中,以便每当客户导航到结帐页面时,此代码都会执行