Giá được đặt ở cấp sản phẩm đơn giản trong Magento 2 (và các sản phẩm có thể định cấu hình sẽ kế thừa giá đặc biệt từ các sản phẩm đơn giản bên dưới nó).
Cách nhanh nhất để làm điều đó một cách chính xác là sử dụng API REST trong tập lệnh. Đây là cách tốt nhất nếu bạn là người mới bắt đầu - Magento đã tạo ra giao diện này như một giao diện để tích hợp bên ngoài, nên được sử dụng bất cứ khi nào có thể.
http://devdocs.magento.com/swagger/index_20.html#!/catalogSản phẩmRep repositoryV1
Điểm cuối chính xác là danh mục PUT / V1 / sản phẩm / {sku} của cửa hàng
Lưu ý rằng bạn cần đặt mã số lượt xem vào URL gọi như được mô tả ở đây.
http://devdocs.magento.com/guides/v2.0/rest/rest_endpoint.html
Đây là một bài viết hay về việc sử dụng tập lệnh với API REST
NHẬN hoặc THIẾT LẬP giá sản phẩm đặc biệt bằng API REST
Một tùy chọn khác là nhập CSV nhiều cửa hàng bằng chức năng nhập Magento 2 - điều này là tốt nhất nếu bạn không quen với việc phát triển Magento / PHP:
Đây là một bài viết về nó:
https://www.alexcorradi.org/blog/a-guide-on-how-to-import-export-products-in-magento-2
Mặt khác, nếu bạn có môi trường thử nghiệm và tự tin hơn với mã hóa, bạn có thể tạo tập lệnh của riêng mình để cập nhật:
Bên trong một lớp học bạn có:
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);
}
sau đó để chạy nó sử dụng như sau;
$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);
chạy cho từng cửa hàng.
Xin lỗi cho bất kỳ sai lầm, tôi chỉ gõ bằng bộ nhớ. Hãy chạy trên một môi trường thử nghiệm đầu tiên!