ราคาถูกกำหนดไว้ที่ระดับผลิตภัณฑ์อย่างง่ายใน Magento 2 (และผลิตภัณฑ์ที่กำหนดค่าได้จะได้รับราคาพิเศษจากผลิตภัณฑ์แบบง่าย ๆ ที่อยู่ด้านล่าง)
วิธีที่เร็วที่สุดในการทำอย่างถูกต้องคือการใช้ REST API ภายในสคริปต์ นี่เป็นวิธีที่ดีที่สุดหากคุณเป็นผู้เริ่มต้น - Magento ได้สร้างสิ่งนี้เป็นอินเทอร์เฟซสำหรับการรวมภายนอกซึ่งควรใช้ทุกที่ที่เป็นไปได้
http://devdocs.magento.com/swagger/index_20.html#!/catalogProductRepositoryV1
ปลายทางที่ถูกต้องคือ PUT / V1 / products / {sku} ของ catalogProductRepository -
โปรดทราบว่าคุณต้องใส่รหัส storeview ลงใน URL การโทรตามที่อธิบายไว้ที่นี่
http://devdocs.magento.com/guides/v2.0/rest/rest_endpoints.html
นี่คือโพสต์ที่ดีเกี่ยวกับการใช้สคริปต์กับ REST API
GET หรือ SET สินค้าราคาพิเศษโดยใช้ 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);
วิ่งสำหรับแต่ละร้าน
ขออภัยในความผิดพลาดใด ๆ ฉันแค่พิมพ์โดยหน่วยความจำ โปรดรันบนสภาพแวดล้อมการทดสอบก่อน!