2017-09-03 16 views
1

Shopifyストアのカスタムチェックアウトページを作成して、ストライプと独自のAPIを使用してカスタム統合を処理しています。 Shopify cart.js APIからクエリパラメータを使用してカスタムチェックアウトにデータを送信することはできますが、この文字列はかなり醜いものです。これが問題を引き起こすかどうか、あるいはよりよい方法があるかどうかにはいくつかの懸念があります。Shopify API外部サイトからカートを取得

参考として、クエリ文字列にエンコードされたデフォルトのカートjsonを次に示します。 Yowza!

/?cart=%7B%22token%22%3A%22f57b4a11a31e5daaa3fae1c4cfcb0676%22%2C%22note%22%3Anull%2C%22attributes%22%3A%7B%7D%2C%22original_total_price%22%3A119495%2C%22total_price%22%3A119495%2C%22total_discount%22%3A0%2C%22total_weight%22%3A9072%2C%22item_count%22%3A3%2C%22items%22%3A%5B%7B%22id%22%3A22480473539%2C%22properties%22%3Anull%2C%22quantity%22%3A2%2C%22variant_id%22%3A22480473539%2C%22key%22%3A%2222480473539%3Adf55503d6a89267ddc2b2d67afcc9bac%22%2C%22title%22%3A%22White%22%2C%22price%22%3A59500%2C%22original_price%22%3A59500%2C%22discounted_price%22%3A59500%2C%22line_price%22%3A119000%2C%22original_line_price%22%3A119000%2C%22total_discount%22%3A0%2C%22discounts%22%3A%5B%5D%2C%22sku%22%3A%220002%22%2C%22grams%22%3A4536%2C%22vendor%22%3A%22Meural%22%2C%22product_id%22%3A7214792579%2C%22gift_card%22%3Afalse%2C%22url%22%3A%22%2Fproducts%2Fwhite%3Fvariant%3D22480473539%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.shopify.com%2Fs%2Ffiles%2F1%2F1348%2F6411%2Fproducts%2Fwhite-front.png%3Fv%3D1468709138%22%2C%22handle%22%3A%22white%22%2C%22requires_shipping%22%3Atrue%2C%22product_type%22%3A%22%22%2C%22product_title%22%3A%22White%22%2C%22product_description%22%3A%22%5CnIncludes%20free%20white%C2%A0power%20cable.%C2%A0%5CnDimensions%3A%2032in%20x%2021in%20x%201.5in%22%2C%22variant_title%22%3Anull%2C%22variant_options%22%3A%5B%22Default%20Title%22%5D%7D%2C%7B%22id%22%3A284391014424%2C%22properties%22%3Anull%2C%22quantity%22%3A1%2C%22variant_id%22%3A284391014424%2C%22key%22%3A%22284391014424%3A0d9cdd833041859ad41f895bf59cb17a%22%2C%22title%22%3A%22Meural%20Membership%22%2C%22price%22%3A%22%244.95%2Fmo%22%2C%22original_price%22%3A495%2C%22discounted_price%22%3A495%2C%22line_price%22%3A495%2C%22original_line_price%22%3A495%2C%22total_discount%22%3A0%2C%22discounts%22%3A%5B%5D%2C%22sku%22%3A%22%22%2C%22grams%22%3A0%2C%22vendor%22%3A%22Meural%22%2C%22product_id%22%3A52034633752%2C%22gift_card%22%3Afalse%2C%22url%22%3A%22%2Fproducts%2Fsubscription%3Fvariant%3D284391014424%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.shopify.com%2Fs%2Ffiles%2F1%2F1348%2F6411%2Fproducts%2Fcollage.jpg%3Fv%3D1503795405%22%2C%22handle%22%3A%22subscription%22%2C%22requires_shipping%22%3Afalse%2C%22product_type%22%3A%22subscription%22%2C%22product_title%22%3A%22Meural%20Membership%22%2C%22product_description%22%3A%22%22%2C%22variant_title%22%3Anull%2C%22variant_options%22%3A%5B%22Default%20Title%22%5D%7D%5D%2C%22requires_shipping%22%3Atrue%7D 

私は明らかにこれを必要に応じて削除しようとしますが、それは理想的ではありません。私が理解する限り、外部ウェブサイトからAPIを介してShopifyカートを入手する方法はありません(少しばかげているようですが、うーん)。誰か良い方法を知っていますか?

答えて

1

私は、あなたが内部的に同じajaxリクエストを使用して外部サイトからカートデータを簡単に引き出すことができることを発見しました。 Here's how to use it。 ユーザーがCookieを許可していないため、完璧ではありませんが、現在はうまくいきます。

0

これは、カスタムチェックアウトページにカートデータにアクセスするためのフローになるはずです。

  1. カートのウェブフックを維持します。あなたの店のカートのデータをデータベースに保存してください。
  2. shopifyとカスタムチェックアウトの間の通信および認証のポイントとしてカートトークンとセッションを使用する必要があります。
  3. ショッピングカートのページにカスタマイズしたボタン(My Checkoutなど)を入れて、カスタムチェックアウトオプションを進めてください。
  4. カスタマイズしたボタンをクリックすると、カスタムチェックアウトページにカートトークンが表示され、それを使用してカートデータを取得できます。セッションを認証に使用できます。
  5. 粒状物カートのデータを取得した後、チェックアウトページで必要な操作を行うことができます。
+0

このオプションは、特に私が現在カスタムカートアプリでデータベースを必要としていないと考えると、やや複雑です。また、エラーの余地もあります。私は最近、あなたがajaxとクッキーを使って外からカートを簡単に引き出すことができることを学びました。これは必ずしも正解ではありません。 – jordancooperman

関連する問題