在prestashop中更新产品后更改phmyadmin中的默认类别

laik7k3q  于 2021-06-19  发布在  Mysql
关注(0)|答案(3)|浏览(349)

我有个简单的问题。对于一个真正的程序员来说,这应该是微不足道的。。
当产品受特定价格规则影响时,我想更改产品的类别。
这就是我所拥有的,但是什么都没有发生。。。

UPDATE psc5_product AND psc5_product_shop SET id_category_default=771 WHERE id_product IN (SELECT id_product FROM psc5_specific_price WHERE id_specific_price>0);

提前谢谢!

7cwmlq89

7cwmlq891#

好吧,这和我想的有点复杂。
当预设的特定价格规则开始时(从-到-日期),表psc5\u product中不会发生更新。所以扳机不会启动他的工作。
所以我需要一个mysql脚本,它从开始日期一直工作到结束日期,当结束日期结束时,更改需要返回。
例子:
规则1:id\产品1 id\类别\默认值1价格规则从2018年9月9日00:00:00到2018年9月10日23:59:59--->需要更改为id\类别\默认值2
规则2:2018年9月11日00:00:00 id\产品不再受价格规则的影响,id\类别\默认值需要再次获得1。
现在我不知道怎么开始。。。对我来说,最困难的部分是规则2中的分类id(在升级结束后)是可变的(我有771个分类…)在规则1中这是固定的,没有那么难。。。

gcxthw6b

gcxthw6b2#

试试这个:

//Deleting old products in this category
Db::getInstance()->executes('DELETE FROM '._DB_PREFIX_.'category_product WHERE id_category = 771');

//Recovery of products with a reduction
$req = Db::getInstance()->executes('SELECT id_product FROM '._DB_PREFIX_.'specific_price');

//Product update with the correct default category + Product attribution in the category
foreach ($req as $resu) {
    $prod = new Product($resu['id_product']);
    $prod->id_category_default = 771;
    $prod->save();
    $product->addToCategories(array(0 => 771));
}
ltqd579y

ltqd579y3#

试试这个:

UPDATE `psc5_product`
SET `id_category_default` = 771
WHERE `id_product` IN (SELECT `id_product` FROM `psc5_specific_price` GROUP BY `id_product`);

UPDATE `psc5_product_shop`
SET `id_category_default` = 771
WHERE `id_product` IN (SELECT `id_product` FROM `psc5_specific_price` GROUP BY `id_product`);

相关问题