从命令行更新Prestashop中的产品数量

时间:2020-07-20 09:23:49

标签: prestashop prestashop-1.7

我已经在Prestashop 1.7.6中创建了一个模块,该模块通过两种方式更新产品库存:

  • 在后台(模块的设置)中,它运行完美

  • 每天晚上从服务器的cron中使用这种命令行调用的声明服务:

    php / var / www / MyPrestashopSite / bin / console mymodule:update updateProducts --no-debug

对于我创建的许多其他服务,我可以完美地使用它,但是对于这一服务,我使用Prestashop中的“新”库存管理,并且当我使用\ StockAvailable方法时,它总是调用Context并触发StockManagementRepository行130出现错误:“确定活动语言需要上下文员工实例。” 此错误使我的模块无法根据上下文更新产品库存。

在我的代码中,我尝试使用以下方法,以最干净的方式获取和修改库存:

\StockAvailable::getQuantityAvailableByProduct(...)
\StockAvailable::setQuantity(...)
\StockAvailable::updateQuantity(...)

请注意,我将$ shopId强制为1,以避免尽可能多地获取Context。

您是否知道如何通过cron(无上下文且无员工连接)以干净的方式在Prestashop中更新库存(而不仅仅是修改库存,产品属性和产品表),而无需调用Prestashop Web服务?

谢谢。

0 个答案:

没有答案