Ціна встановлюється на рівні простого продукту в Magento 2 (і настроювані продукти успадкують спеціальну ціну від простих продуктів під ним).
Найшвидший спосіб зробити це правильно було б використовувати API REST всередині сценарію. Це найкращий спосіб, якщо ви новачок - 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
Ось хороший пост про використання сценарію з API REST
Отримати або встановити спеціальну ціну продукту за допомогою 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);
запустити для кожного магазину.
Вибачте за будь-які помилки, я просто набираю пам’ять. Спершу запустіть тестове середовище!