Liquid、JavaScriptなどに関する質問
過去にも類似の質問がありましたが、解決に至ったのかわからなかったの再度、質問させて頂きます。
GraphQLの
mutation productCreate
を、利用して、商品を登録しています。
その際に、権限は付与できるものはすべて付与しております。
商品を登録する際に、管理画面の設定の「販売チャネルとアプリ」の中のチャンネルを選択したいと考えております。
productCreateのドキュメントを読むと、productPublicationsや、publicationsは、非推奨(deprecated)となっており、代わりに、PublishablePublishが推奨されています。
この、PublishablePublishのドキュメント を読むと権限に、write_publicationsが必要となっております。
実際に試しても、権限がないとメッセージが表示されます。
Access denied for availablePublicationCount field. Required access: `read_publications` access scope. This scope is currently available only to custom apps installed on Shopify Plus stores. Contact Shopify Partner Support to enable
また、Shopify パートーナーに連絡して、read_publicationsを有効にしてもらえないか、頼んでみましたが、Shopify Plusでしか、有効にできないので、将来のバージョンアップを待つように返事を頂きました。
そのため、他に何か方法があれば、教えていただけないでしょうか?
私なりに考えたのは、過去の質問では、REST APIを利用したら、「オンラインストア」にはチェックされていたと記載がありました。そのため、GraphQLで新規登録を行い、REST APIで、編集を行えばできるのか? 考えております。
こちらの投稿でも、
質問者様が挙げられている方法を回答されている方が多いようです。
私が確認した限りでは、
非推奨にはなっているのものの、
現時点でのAPIの最新バージョン「2022-07」で、publicationsが機能するようですので、
「2022-07」を使い続ける限り、
publicationsを使用しても問題ないのかもしれません。
(念の為、次のリリース候補である「2022-10」でも試したところ、今のところ、publicationsが機能しました。あくまで、今のところ、で、リリース時にどうなるかは分からないのですが。)
こうすれば問題ない!という回答ではなく恐縮です。
何かの参考になれば幸いです。
(キュー田辺)
ご回答ありがとうございます。
> 非推奨ではあるが、publicationsを使用する (回答では"published"と言っていますが、depreciatedと言っているので、publicationsのことかと思います。)
試したところ、
「Access denied for productCreate field. Required access: `write_products` access scope.」
となりました。
田辺様の環境は、Plusではないでしょうか?
下記にもありましたが、Plusの機能のような気がします。
https://community.shopify.com/c/shopify-apis-and-sdks/productpublications-access-denied/td-p/1674488
@sana7 様
> 田辺様の環境は、Plusではないでしょうか?
いいえ、Plusではありません。
Shopifyの契約プランで言いますと、プレミアムです。
しかし、私は、
Shopify GraphiQL App をストアにインストールして確認しています。
インストール時に、権限設定ができるので、その際に、
このアプリでしか設定できない権限も設定したのかもしれません。
ところで、
> 「Access denied for productCreate field. Required access: `write_products` access scope.」
write_productsは、Plusでなくとも使用できるアクセススコープだと思うのですが、
write_productsは、設定されていないでしょうか?
(キュー田辺)
ご回答ありがとうございます。
権限につきましては、すべての権限を付与しておりました。
「設定」ー「アプリと販売チャネル」ー「ストア用のカスタムアプリを管理する」
対象のカスタムアプリを開き、「管理画面APIの統合」から、権限は設定させて頂きました。
publications を利用すると、上記エラーが発生致します。
ストアアプリとカスタムアプリの違いによって、利用できる機能が変わったきたりするのでしょうか。
@sana7 様
なるほどです。
貼っていただいたコミュニティの書き込みでも、
使用できないとのことですし、
実際のアプリからのコールではpublicationsは拒否されてしまう、ということなのでしょうね。
あまり意味がない情報かもしれませんが、
APIのバージョンを2022-04に変更すると、
使用できるかもしれません。
ちなみに、2022-07の波線にマウスオーバーすると下記の情報が表示されます。
Type "ProductInput" does not have a field "publications"
もしかしたら、
2022-07から使用できなくなったのかもしれません。
(しかし、実行しても上図通り、エラーは出ないのですが。。。このアプリ自体がそこまで作り込まれていないのかもしれません。)
しかし、
2022-04でもし使用できたとしても、
2022-04がいつまでサポートされるか分かりませんし、
REST APIを使用されるのが無難なのかもしれません。
(キュー田辺)
@sana7 様
カスタムアプリを使用してのproductCreateを試してみました。
publicationsを使用すると、おっしゃる通り、下記のエラーが返ってきました。
Access denied for productCreate field. Required access: `write_products` access scope.
APIのバージョンは関係なく、発生するので、使用できない、ということで間違い無いかと思います。
誤情報、大変失礼しました。
代わりに、REST APIを使用してみましたので、ご報告です。
https://shopify.dev/api/admin-rest/2022-07/resources/product#post-products
こちらを実行してみたところ、
販売チャンネルが登録された状態で商品を作成できました。
現時点ではREST APIから作成するのが良さそうです。
なお上記は、REST APIで商品を作成する、というお話で、
ご質問にある、GraphQLで作成した商品の販売チャンネルをREST APIで変更できるか、
には回答できていません。
必要であれば調査してみますので、
その場合はお知らせください。
(キュー田辺)
田辺様
ご回答ありがとうございます。
GraphQLを利用する前には、REST APIを利用していました。
ただ、REST APIを利用すると、メタフィールドが登録されてないみたいで、それで、GraphQLを利用することに落ち着きました。
試してないですが、GraphQLで登録した後に、REST APIで、販売チャンネルの更新ができないか、確認してみようと思います。
@sana7 様
承知いたしました。
おそらく、
下記の方法も既に思いついていらっしゃると思うのですが、
もし、REST APIで販売チャンネルだけを設定することができない場合は、
REST APIで商品登録をしてから、
GraphQL APIでメタフィールドを設定する、
というやり方もありそうです。
これが採用できない理由もお有りだと思うのですが、
念のため、共有まで。
(キュー田辺)
2023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024APIに関するShopifyサポートShopifyのデフォルト機能では特定の目標を達成するために外部アプリケーションの使用を検討していますか? そんな時はプログラミングの専...
By JapanGuru Sep 22, 2024