1

C# を使用して MVC で構築したサイトで、Snipcart バージョン v3.3.0 をショッピング カートとして使用しています。ショッピング カートは正常に機能し、トランザクションを完了することができます。

私が抱えている問題は、ユーザーがトランザクションを完了したら、サイトの自分のサンキュー ページに移動したいということです。現在、Snipcart を使用してチェックアウトを完了すると、デフォルトではサイド カートのチェックアウト モーダルにサンキュー ページが表示されるだけです。

私が望むことを達成する方法についていくつかの投稿を読みましたが、どれもうまくいきませんでした。Uncaught TypeError: Snipcart.subscribe is not a functionというブラウザー コンソール エラーが表示され続けます。

<script>
document.addEventListener('snipcart.ready', function () {
    Snipcart.subscribe('order.completed', function (order) {
        var url = '/thankyou?order=' + order.token;
        window.location.href = url;
    });
});

投稿の1つが示唆するように、.executeメソッドを使用してみましたが、それもうまくいきませんでした。キャッチされていない TypeError: Snipcart.execute は関数ではありません

<script>
document.addEventListener('snipcart.ready', function () {
    Snipcart.execute('order.completed', function (order) {
        var url = '/thankyou?order=' + order.token;
        window.location.href = url;
    });
});

私の推測では、snipcart.js への参照または何かが欠落していたと思われます。しかし、何度も再確認した後、snipcart.js 参照がまったく欠落していないという結論に達しました。実際には、上記の 2 つのスニペットを呼び出す前に呼び出しています。また、カートは snipcart.js を参照しているため機能しているため、その参照が欠落していないことは事実です。

もう 1 つの考えは、私はバージョン 3.0.0 を使用しているため、このバージョンでこの実装が機能するには JavaScript の一部が異なる可能性があるということです。情報があるサイトのドキュメントページは空です。ここをクリック

バージョン 2.x のドキュメントには、私が試したコードが示されています。ここをクリック

誰でもこれを案内できますか?ここで、ユーザーをカスタムのサンキュー ページにリダイレクトする方法に関する情報を入手しました。一番下までスクロールして、ユーザーを独自のサンキュー ページに誘導することについて話しているところまでスクロールする必要があります。

これは、私が試したがうまくいかなかったコードのスニペットも示しています

4

2 に答える 2

1

v3 を使用しているようですが、リッスンしているイベントは v2 用です。v3 については、このイベントhttps://docs.snipcart.com/v3/sdk/events#cartconfirmedをリッスンする必要があります。

cart.confirmed イベントをリッスンし、ネイティブ ブラウザー API (location.href) を使用して顧客を選択したページにリダイレクトできます。

于 2022-01-13T19:20:27.560 に答える