MR.EC Apps Support Center

3 カート変更時に付与予定ポイントを更新する場合(開発者向け)

カートを更新した際に付与予定ポイントを更新するには、以下のカスタムイベントを設定することで、カートの変更を反映させることが可能です。

※高度な設定で、エラーが発生するとカートページが適切に動作しなくなる可能性がございます。もし実施される場合は、Javascriptに知見のある開発者に依頼されることをお勧めします。

【パターンA:カートのデータを取得済みの場合】

document.dispatchEvent(new CustomEvent(“mrpoint:update-award-point”, {

  detail: {

    cartItems: event?.cartData?.items

  }

}));

【パターンB:カートのデータが存在しない場合】

document.dispatchEvent(new CustomEvent(“mrpoint:update-award-point”));

※上記のどちらのパターンでも動作しますが、Bの場合カートデータを取得する処理が走るため、パフォーマンス的にはAをお勧めしています。

以下がDawn(ver13.0.0)の場合の追加例です。

対象ファイル:assets/cart.js

【パターンA】

class CartItems extends HTMLElement {

~~ 省略 ~~

  connectedCallback() {

    this.cartUpdateUnsubscriber = subscribe(PUB_SUB_EVENTS.cartUpdate, (event) => {

      document.dispatchEvent(new CustomEvent(“mrpoint:update-award-point”, {

        detail: {

          cartItems: event?.cartData?.items

        }

      }));

      if (event.source === ‘cart-items’) {

        return;

      }

      this.onCartUpdate();

    });

  }

~~ 省略 ~~

}

【パターンB】

class CartItems extends HTMLElement {

~~ 省略 ~~

  connectedCallback() {

    this.cartUpdateUnsubscriber = subscribe(PUB_SUB_EVENTS.cartUpdate, (event) => {

      document.dispatchEvent(new CustomEvent(“mrpoint:update-award-point”));

      if (event.source === ‘cart-items’) {

        return;

      }

      this.onCartUpdate();

    });

  }

~~ 省略 ~~

}

SHARE