Массовое редактирование цен в Drupal Commerce через SQL-запрос в phpMyAdmin

Главные вкладки

Аватар пользователя Jara Jara 23 апреля 2014 в 21:14

Есть магазин на Drupal Commerce Kikstart 2, нужно изменить все цены. Решение с помощью Views и Editable Fields не подходит - в базе много тысяч товаров, ручками это делать неэффективно.

Есть ли возможность сделать запрос в phpMyAdmin чтобы выбрать значения всех цен и заменить их по шаблону? Например, добавить 20%, или поделить на 10?

Комментарии

Аватар пользователя igor701 igor701 23 апреля 2014 в 21:41

На мой взгляд лучше скрипт написать с нужными параметрами.
Работы на 30 минут.
Я обычно так всегда делаю для 100+ записей, понадежнее чем сложный SQL и при желании можно существенно поменять алгоритм.
Но это надо хотя бы на среднем уровне знать SQL и PHP.

Естественно, предварительно сбэкапить базу (иногда приходится откат делать, если ошибка какая).

Аватар пользователя Moel Moel 13 октября 2014 в 19:46

"igor701" wrote:
На мой взгляд лучше скрипт написать с нужными параметрами.

Скрипту времени может не хватить.
Правильно наверное queue использовать.
Получить все ноды которые нужно полчить sql запросом. // Но я хз как там комерс с сущностями работает
Написать функцию которая формирует новую цену и дальше как-то вроде этого:
$entity = entity_metadata_wrapper('node', $nid]);
$old_price = $entity->old_price->value(); //old_price - поле вашей старой цены
$new_price = функция_для_получения_новой_цены($old_price);
$entity->old_price = $new_price;
$entity->save();

function функция_для_получения_новой_цены($old_price){
$new_price = $old_price + 200;
return $new_price;
}
И я хз насчет коммерс. Ни разу не работал если там все теже ноды то получится.