Which feature are you looking for specifically? Some functionality such as publications and resource feedback are available in the GraphQL admin API. Checkout and payment processing are available through GraphQL on the storefront API.
JB | Developer Support @ Shopify
- Was my reply helpful? Click Like to let me know!
- Was your question answered? Click Accept as Solution
Specifically? Just the analog of what is in RestAPI. So for example, ProductListing and CollectionListing. These are not present at the moment AFAIK.
I currently have no need for Checkout or Payments. Just curious as to why the listings are not part of the list of queryable objects.
The ProductListing and CollectionListing endpoints in the "Sales Channel API" are equivalent to the Products and Collections objects in the Storefront GraphQL API. Like the REST counterparts you're describing, they can only be invoked using a Storefront Access Token.
You can create a Storefront Access Token for your app (if it's a channel) via the REST Admin API https://shopify.dev/docs/admin-api/rest/reference/access/storefrontaccesstoken?api[version]=2020-04.
EDIT: Sorry, I was wrong about the equivalent REST APIs. They actually do use an admin API token. Nevertheless, you'll need to generate a Storefront Access Token if you want to query those objects in the Storefront API.
Ok.. Thanks for the info. It is not that I need to go through the trouble of creating an access token for Storefront API calls. Seems that would involve more trouble than it is worth. Does seem a little strange. I guess this reveals that under the hood, a sales channel is used to back up a storefront and yet, the merchant would have no control over the contents of it like they would a sales channel. Interesting...
You're right that a "sales channel" is essentially equivalent to a Storefront API client. In either case, the merchant can control which products are published to which surface in their admin.
The ProductListing and CollectionListing APIs were essentially an early precursor to the Storefront API. I wouldn't be surprised if those endpoints were deprecated sooner rather than later.
FWIW, generating a Storefront Access Token is rather easy. It's just a single POST request for the shop and the token does not expire. You can just store in your `Shops` table like you would an access token. Just a heads up, you'll need to request at least one `unauthenticated_` scope on the shop (in this case, you'll want `unauthenticated_read_products`) BEFORE provisioning the storefront access token or the request will fail.