「イベントサブスクライバー」コントローラーを実装して、製品バリエーションの在庫値を変更しました。在庫は商品バリエーションの分野です。
注文アイテムの数量に応じて、Drupal 8イベント注文$events['commerce_order.place.post_transition']
に登録することで在庫の値を減らしています。同様に、彼がイベントを使用して注文をキャンセルした場合、在庫値を増やしました$events['commerce_order.cancel.post_transition']
。
その時点で誰かがバックオフィスから注文数量を変更した場合、それに応じて在庫を増減する必要があります。どのようにしてそれを達成できますか?注文アイテムが編集されるイベントはありますか?現在、注文時に在庫を減らしています...誰かがバックエンドから注文を手動で編集するときに、どのように減少/増加できますか?
オーダーアイテム編集時のイベントはありますか?
hook_ENTITY_TYPE_update を使用できます
/*
* Implements hook_ENTITY_TYPE_update()
*/
function mymodule_order_update(\Drupal\commerce_order\Entity\OrderInterface $order) {
// your code goes here
}
フックを使用したくない場合は、 Hook Event Dispatcher モジュールの使用を検討してください。
このモジュールは、いくつかのDrupalコアフックのイベントをディスパッチします。これにより、古いフックシステムの代わりにD8イベントサブスクライバーシステムを使用して、特定のイベントに反応することができます。このモジュールには、ほとんどのイベントが含まれています一般的なフック。