Цена устанавливается на уровне простого продукта в Magento 2 (и конфигурируемые продукты будут наследовать специальную цену от простых продуктов под ней).
Самый быстрый способ сделать это правильно - использовать REST API внутри скрипта. Это лучший способ, если вы новичок - Magento создал его как интерфейс для внешней интеграции, который следует использовать везде, где это возможно.
http://devdocs.magento.com/swagger/index_20.html#!/catalogProductRepositoryV1
Правильная конечная точка - это каталог PUT / V1 / products / {sku} каталога продукта.
Обратите внимание, что вам нужно поместить код магазина в URL-адрес вызова, как описано здесь.
http://devdocs.magento.com/guides/v2.0/rest/rest_endpoints.html
Вот хороший пост об использовании скрипта с REST API
ПОЛУЧИТЬ или УСТАНОВИТЬ Продукт по специальной цене, используя REST API
Другой вариант - импортировать мультисервисный CSV с использованием функции импорта Magento 2 - это лучше всего, если вы не знакомы с разработкой Magento / PHP:
Вот статья об этом:
https://www.alexcorradi.org/blog/a-guide-on-how-to-import-export-products-in-magento-2
В противном случае, если у вас есть тестовая среда и вы более уверены в кодировании, вы можете создать свой собственный скрипт для обновления:
Внутри класса у вас будет:
protected $action;
public function __construct(\Magento\Catalog\Model\Product\Action $productAction) {
$this->action = $productAction;
}
public function updatePrice($productIds, $data, $storeId) {
$this->action->updateAttributes($productIds, $data, $storeId);
}
затем для запуска используйте следующее;
$specialPrice = null; // OR '' can't remember off the top of my head which clears it - perhaps either.
$data = ['special_price' => $specialPrice];
$storeId = 1; //whatever store id you like
$productIds = [1,2,3,4,5,6,7]; //whatever product ids you wish to change.
$this->updatePrice($productIds, $data, $storeId);
запустить для каждого магазина.
Извиняюсь за любые ошибки, я просто печатаю по памяти. Пожалуйста, сначала запустите тестовую среду!