Liquid、JavaScriptなどに関する質問
商品やコレクションを比較的沢山(多分何百という程度になる予定です)追加したいと思っていて、API経由でやることを考えています。実際試してみたのですが、販売チャネルへの登録については、今のスタンダードプランだとGraphQLではできないように思います。切り抜け方としてはGraphQLではなく、RESTを使えば良さそう、と思いますが、何か自分に勘違いがあるかもしれません。
やってみたことを書きますが、もし、別にこういうやり方があるよ、というのをご存知でしたらご教授ください。
上に書いた「販売チャネルへの登録」というのはこのあたりのことです。
https://help.shopify.com/ja/manual/online-sales-channels
https://help.shopify.com/ja/manual/products/collections/make-collections-available
私が考えてやったことを以下に書きます。
まず商品やコレクションをAPI経由で作成する場合、GraphQLとRESTそれぞれ以下のAPIがあります。
GraphQL collectionCreate
GraphQL productCreate
REST Collection
REST Product
このうちGraphQLを使って商品やコレクションを新規に登録した場合、販売チャネルは未設定の状態
となりますが、登録する商品やコレクションはオンラインショップで使いたいので、販売チャネルの設定をしないとならないと思います。
これをAPIで設定したい場合、GraphQLでは、publishablePublish を呼ぶ必要があると思います。しかし、publishablePublishを呼ぶには write_publications が必要で、それはShopify Plusプランでプライベートアプリという制限があるように書かれています。
https://shopify.dev/docs/admin-api/graphql/reference/products-and-collections/publishablepublish
これは困ったなと思ったのですが、RESTを使って商品やコレクションの新規登録をしてみたところ、デフォルトで「オンラインストア」に登録ずみとなっていました。
つまり、ここまでのことから、商品やコレクションを追加するのはRESTを使うべきと考えました。
今のところそういう認識なのですが、もしも勘違いしているようなところがあれば、ご指摘ください。できればGraphQLだけでやってしまえたら良いなあと思っています。
なお、Shopify Plusプランに変更するのは、かなり費用が変わってしまうはずなので、気軽にはできないのですが、英語のコミュニティーの書き込み https://community.shopify.com/c/Shopify-APIs-SDKs/Product-created-via-Admin-API-quot-unavailable-on-... を見ると、Shopifyのサポートに連絡して、権限を得ることができるのかもしれないと思いました。こちらは試していません。
解決済! ベストソリューションを見る。
成功
多分、RESTと同じ挙動はこちらだと思うのですがいかがでしょうか?
成功
多分、RESTと同じ挙動はこちらだと思うのですがいかがでしょうか?
ご教授ありがとうございます。使ってみたところ期待通りでした。
と、思ったんですが、訂正です。
目的としては「オンラインストア」で見れるようにしたいのですが、このAPIではこのAPIを呼び出したアプリケーションがもし、ストアフロントAPIをアクティブにしていれば、そこに対してのみ出品されるという機能であるように思います。
すいません、再度投稿を見直したのですが、ひょっとすると大元の部分を勘違いされているかもしれません。
販売チャネルとは、Shopifyからみた時の楽天などの外部のモールやPOS、自社スマホアプリなどのオンラインストア以外の販売経路を指すもので、それらの実装にStorefront APIが使われます。
ですので、Storefront APIは販売チャネル化しないと利用できず、これは通常、Public App(アプリストアに公開するもの)やPrivate Appのみとなります。
販売チャネル化したアプリには、共有いただいているPublishingのAPIがありますが、このPublishingの意味は、上記の例ですと、Shopify->楽天、POS、自社スマホアプリに商品を文字通り公開するもので、これは通常Public Appしか使えません。 共有いただいているPlusプランの記述は、これをPrivate Appで行いたい場合は、Plusの契約が必要ということです。
ですので、「オンラインストア」というのが、自身のShopifyストアのことを指すのであれば、通常のAdmin APIで商品やコレクション登録が可能ですが、こちらの認識はあっていますでしょうか?
なお、大量データの一括登録には以下のBulk Operation APIがあるので、そちらをご利用ください。
https://shopify.dev/api/admin/graphql/reference/bulk-operations
Shopifyの請求書の支払いが失敗したという通知を受け取って驚いたことはありますか。初めての支払いでエラーが発生したり、これまで何の問題もなく支払いできていたのに突然失敗し...
By Minami_ Sep 8, 20242023年2月、Shopifyはcheckout.liquidを廃止し、Checkout Extensibilityに移行することを発表いたしました。この新しいチェックアウト...
By JasonH Aug 15, 2024「味噌の可能性を、とき放つ」をコンセプトに、豊かな自然に恵まれた信州で味噌の製造販売を行う新田醸造。江戸末期に創業した老舗のみそ屋さんですが、2024年春、顧客層や販売範囲の...
By Minami_ Jul 30, 2024