Prestashop实际数量与物理量不同

时间:2017-07-17 15:49:46

标签: php mysql prestashop prestashop-1.6

在我的Prestdashop 1.6.1.9中我建立了POS和电子商务,以便在我们的商店和网上销售。

在过去的几天里,我在商店里看到了一个错误:

  • 实际数量低于物理
  • 某些产品的物理负面
  • 如果有人购买0产品,有时可能会处于负面状态

我已经尝试了prestashop论坛的所有解决方案,并且我已经阻止任何位置的负面销售但是没有成功。

有机会通过数据库或代码重置一些数量,以防止prestashop进入否定状态吗?

非常感谢你!

3 个答案:

答案 0 :(得分:0)

我认为你可以在股票更新/插入时创建一个mysql触发器

示例:

CREATE TRIGGER ins_transaction BEFORE INSERT ON account
       FOR EACH ROW PRECEDES ins_sum
       SET
       @deposits = @deposits + IF(NEW.amount>0,NEW.amount,0),
       @withdrawals = @withdrawals + IF(NEW.amount<0,-NEW.amount,0);

您可以添加一些相似内容,如果数量小于0,则更新该行。

https://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html

- 编辑 -

您也可以尝试更改StockAvailable类中的函数updateQuantity() and setQuantity()

尝试添加一些像:

 if($delta_quantity<0)
    $delta_quantity=0;

希望对你有所帮助

答案 1 :(得分:0)

从问题我认为问题是负数量。

prestashop的后台有两处可以设置此行为:

  • 所有产品的常规:首选项 - &gt;产品(“产品库存”部分)
  • 产品特定:目录 - &gt;产品(选择产品)(“数量”部分)

除了在常规设置中设置正确的选项外,您还应检查每个产品的特定设置,看它是否已覆盖常规设置。

答案 2 :(得分:0)

还有另一种方法可以获得完美的。

我从订单状态栏和取消订单中收到此错误。

当你取消订购时,这个产品里面还有产品。您必须从订单中删除所有产品然后取消它。

订单状态的另一种方式:

您需要将其签名为已装运并验证!

希望这可以提供帮助:D