PrestaShop:创建特定价格后如何刷新购物车

PrestaShop: How to refresh cart after creating specifc price

我有一个小问题 ;) 我使用 PrestaShop 1.7.6.9(在共享主机上手动安装)和 1.7.7.1 (docker image from PrestaShop) 我创建了一个模块,其中价格通过代码计算并通过 SpecificPrice class 保存在数据库中。保存工作非常好,但我还有其他问题。当我去购物车时,产品价格没有改变。但是当我等待一段时间并刷新购物车页面时,产品价格已更改为特定价格。

我的具体价格代码

$specific_price = new SpecificPrice();
$specific_price->id_product = 10;
$specific_price->id_product_attribute = 43; 
$specific_price->id_cart = 3;
$specific_price->from_quantity = 10;
$specific_price->price = 78.000000;
$specific_price->reduction_type = 'amount';
$specific_price->reduction_tax = 1;
$specific_price->reduction = 0;
$specific_price->from = date("Y-m-d H:i:s");
$specific_price->to = date("Y-m-d H:i:s", strtotime('+1 year'));
$specific_price->id_shop = 1;
$specific_price->id_currency  = 1;
$specific_price->id_country = 0;
$specific_price->id_group = 0;
$specific_price->id_customer = 0;
$specific_price->add();

我在 prestashop 论坛 topics 中发现了同样的问题,但没有答案

我试试:

Cache::clear();
$specific_price->flushCache();
Tools::generateIndex();
DB::getInstance()->execute('RESET QUERY CACHE;');
DB::getInstance()->execute('FLUSH QUERY CACHE;');
$cart->resetStaticCache();
$cart->update();

然后我尝试通过更新方法更新购物车。

有没有人遇到过类似的问题?

在下午与@KrystianPodemski 交谈后,他建议将日期从特定价格更改为 0000-00-00 00:00:00 并且...有效 :) 现在新特定价格的代码是:

$specific_price = new SpecificPrice();
$specific_price->id_product = 10;
$specific_price->id_product_attribute = 43; 
$specific_price->id_cart = 3;
$specific_price->from_quantity = 10;
$specific_price->price = 78.000000;
$specific_price->reduction_type = 'amount';
$specific_price->reduction_tax = 1;
$specific_price->reduction = 0;
$specific_price->from = date("0000-00-00 00:00:00");
$specific_price->to = date("Y-m-d H:i:s", strtotime('+1 year'));
$specific_price->id_shop = 1;
$specific_price->id_currency  = 1;
$specific_price->id_country = 0;
$specific_price->id_group = 0;
$specific_price->id_customer = 0;
$specific_price->add();