Cena jest ustalana na poziomie prostego produktu w Magento 2 (a produkty konfigurowalne odziedziczą specjalną cenę z prostych produktów poniżej).
Najszybszym sposobem, aby to zrobić poprawnie, byłoby użycie interfejsu API REST w skrypcie. Jest to najlepszy sposób dla początkujących - Magento stworzyło go jako interfejs do integracji zewnętrznej, z którego należy korzystać w miarę możliwości.
http://devdocs.magento.com/swagger/index_20.html#!/catalogProductRepositoryV1
Prawidłowy punkt końcowy to PUT / V1 / products / {sku} catalogProductRepository -
Pamiętaj, że musisz wstawić kod sklepu do wywołującego adresu URL, jak opisano tutaj.
http://devdocs.magento.com/guides/v2.0/rest/rest_endpoints.html
Oto dobry post na temat używania skryptu z interfejsem API REST
POBIERZ lub ZESTAW Specjalna cena produktu za pomocą REST API
Inną opcją jest import CSV do wielu sklepów przy użyciu funkcji importu Magento 2 - najlepiej, jeśli nie znasz programowania Magento / PHP:
Oto artykuł na ten temat:
https://www.alexcorradi.org/blog/a-guide-on-how-to-import-export-products-in-magento-2
W przeciwnym razie, jeśli masz środowisko testowe i jesteś bardziej pewny kodowania, możesz utworzyć własny skrypt do aktualizacji:
W klasie miałbyś:
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);
}
następnie, aby go uruchomić, użyj następującego;
$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);
uruchomić dla każdego sklepu.
Przepraszam za błędy, piszę tylko po pamięci. Najpierw uruchom środowisko testowe!