Prestashop массовое изменение цены (расширенное)

28 февраля 2018

Для массового изменения цен в Prestashop 1.6 есть встроенный инструмент, но он слишком примитивный, почти без настроек и для дела мало кому пригодится. Есть еще штук 5 платных плагинов, стоят они в среднем 50 евро. Среди них парочка действительно хороших, остальные очень заморочливые в управлении. Если хотите свои кровные приберечь для других покупок и не боитесь вносить изменения в базу данных - вот вам универсальное бесплатное решение, как в Prestashop изменить конкретную цену в конкретной категории

ПЕРЕД НАЧАЛОМ ОБЯЗАТЕЛЬНО СДЕЛАЙТЕ РЕЗЕРВНУЮ КОПИЮ БАЗЫ ДАННЫХ!!!

Заходим в phpMyAdmin, выбираем свою базу данных, там жмем вкладку SQL.

Там все предельно просто, в поле вставлять запрос, потом нажимать внизу кнопку "Вперед"

В случае успешного выполнения запроса появится радостное окошко, мол все пучком, запрос выполнен, затронуто хз сколько строк

Если что-то пойдет не так, то вы увидите унылое окошко с указанием на косяк, который запорол весь запрос

В Prestashop для цены есть 2 таблицы - ps_product и ps_product_shop. В принципе для изменения цены в магазине достаточно менять данные только в ps_product_shop, но на всякий случай давайте менять и в ps_product

Важный момент, кавычки в запросе ставить обратные ` (там где буква Ё на клавиатуре)

Варианты запросов

Увеличить все цены во всем магазине на 15%

UPDATE `ps_product` SET `price` = `price` * 1.15
UPDATE `ps_product_shop` SET `price` = `price` * 1.15

Тут для увеличения цены на 15% умножаем ее на 1,15. Соответственно, чтобы уменьшить цену на 15% нужно умножить ее на 0,85 и тогда запросы будут

UPDATE `ps_product` SET `price` = `price` * 0.85
UPDATE `ps_product_shop` SET `price` = `price` * 0.85

Можно поменять цены не в процентах, а на определенное число. Вот таким запросом все цены магазина меняются на 999

UPDATE `ps_product` SET `price` = 999
UPDATE `ps_product_shop` SET `price` = 999

Это скорее теория, т.к. на практике никакому магазину нафиг не надо ставить одинаковые цены на весь товар. переходим к практике. Я буду везде использовать увеличение на 15% или цену 999, а вы по аналогии подставляйте нужные вам значения

Замена цены для категории id=3 товаров на 15%

UPDATE `ps_product` SET `price` = `price`*1.15 WHERE `id_category_default` = 3
UPDATE `ps_product_shop` SET `price` = `price`*1.15 WHERE `id_category_default` = 3

Замена цены для категории id = 3 товаров на другую цену (999)

UPDATE `ps_product` SET `price` = 999 WHERE `id_category_default` = 3
UPDATE `ps_product_shop` SET `price` = 999 WHERE `id_category_default` = 3

Если вам во всем магазине нужно поменять цену товарам, которые стоят допустим 300 на допустим 999, то писать так

UPDATE `ps_product` SET `price` = 999 WHERE `price` = 300
UPDATE `ps_product_shop` SET `price` = 999 WHERE `price` = 300

А теперь самое полезное. Нужно в определенной категории (допустим id=3) товарам, которые стоят 300 поднять цену на 15%. Писать так

UPDATE `ps_product` SET `price` = `price`*1.15 WHERE `id_category_default` = 3  AND `price` = 300
UPDATE `ps_product_shop` SET `price` = `price`*1.15 WHERE `id_category_default` = 3  AND `price` = 300

несложно догадаться, что для того, чтобы этим товарам вместо 300 дать цену 999, писать так

UPDATE `ps_product` SET `price` = 999 WHERE `id_category_default` = 3  AND `price` = 300
UPDATE `ps_product_shop` SET `price` = 999 WHERE `id_category_default` = 3  AND `price` = 300

Как-то так...