首页 > 解决方案 > PrestaShop:创建特定价格后如何刷新购物车

问题描述

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

我的具体价格代码

$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 论坛的主题中发现了同样的问题,但没有答案

我尝试:

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

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

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

标签: phpprestashopprestashop-1.7

解决方案


在下午与@KrystianPodemski 交谈后,他建议将日期从 0000-00-00 00: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();

推荐阅读