回答:
価格はMagento 2のシンプルな製品レベルで設定されます(構成可能な製品は、その下のシンプルな製品から特別価格を継承します)。
これを正しく行う最も簡単な方法は、スクリプト内でREST APIを使用することです。これは、初心者の場合に最適な方法です。Magentoは、可能な限り使用する必要がある外部統合用のインターフェースとしてこれを作成しました。
http://devdocs.magento.com/swagger/index_20.html#!/catalogProductRepositoryV1
正しいエンドポイントは、catalogProductRepositoryのPUT / V1 / products / {sku}です-
ここで説明するように、storeviewコードを呼び出しURLに配置する必要があることに注意してください。
http://devdocs.magento.com/guides/v2.0/rest/rest_endpoints.html
REST APIでのスクリプトの使用に関する良い投稿は次のとおりです
REST APIを使用して製品の特別価格を取得または設定する
もう1つのオプションは、Magento 2インポート機能を使用してマルチストアCSVをインポートすることです。これは、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);
各店舗に実行します。
間違いをお詫びします。私はただメモリでタイプしています。まずテスト環境で実行してください!
Try1:更新の販売価格にプラグインの承認を使用できます。
Try2:デフォルトの属性セットからsell_priceを削除するか、この属性を無効にすることができます。
カタログ価格ルールを使用します。マーケティング>カタログ価格ルール
この方法では、すべてのストアまたは選択したストアごとにセール価格を設定でき、一括で更新および有効化または無効化を簡単に行うことができます。
あらゆる種類の組み合わせに一致するように条件を設定できます:カテゴリー/メーカー/サイズ/色/ sku / mpn
カタログ価格ルールに使用できる属性をバックエンドに作成することもできます。例えば。「シーズン」という属性があり、2017-4年のようなドロップダウンオプションがあり、冬の商品です。
そこで、メーカー=ビラボン、カテゴリ=シャツ、シーズン= 2017-4のカタログ価格ルールを作成し、それらの基準に一致する製品に20%オフを適用します。また、ルールを適用するWebサイトと、ルールを実行する日付を設定できます。
ルールで色やサイズを使用することもできます。これは、製品の名前が数年間変更されておらず、古いカラーウェイを取り除く必要がある場合に非常に有利になります。残りの1つのカラーとサイズの組み合わせのみを販売するように設定できます。構成可能な製品は通常の価格のままです。