Create a headless Node.js custom app

Create a headless Node.js custom app

robsanna
Shopify Partner
7 0 1

I am learning Shopify app development, and I got my first gig from a friend!

In short, I need to make an app that on a regular schedule, would access an FTP server and download a list containing product SKU to which I should update the quantity, then using the GraphQL API I would update the products I need.

Currently, I created a Node.js app using the Shopify-CLI.

So far so good, however, I am not sure about a few parts of this app:

- Since I need to schedule operations using something like this https://www.npmjs.com/package/node-cron how can I authenticate every time my `ApolloClient`? `ApolloClient`, to instantiate needs `shop` and `accessToken`, which normally come from the request cookie, however in my case, "I should have them available any moment" in order to run my logic on schedule.

- I found a very well written documentation regarding the Node.js + React part, however, I am missing something regarding the backend logic. Where can I find more documentation regarding my use case?

- The CLI creates already backend code to instantiate the client:

 

export const createClient = (shop, accessToken) => {
  return new ApolloClient({
    uri: `https://${shop}/admin/api/2019-10/graphql.json`,
    request: (operation) => {
      operation.setContext({
        headers: {
          "X-Shopify-Access-Token": accessToken,
          "User-Agent": `shopify-app-node ${process.env.npm_package_version} | Shopify App CLI`,
        },
      });
    },
  });
};

 

Hence, it seems to me that this use case has already been tackled somehow. However, I have some troubles understand how can I leverage this boilerplate code in my case.

- There might be a chance this is not a good use case of the Shopify CLI, and my approach is completely wrong. What do you suggest would be a better approach for this app?

Sorry for the long post, and thanks in advance anyone 🙂

Replies 3 (3)

FreightFarms
Visitor
2 0 0

I am having the same struggle with a custom application. I am attempting to make a request to the GraphQl Admin API via a headless back-end application running at a scheduled interval. I have had success in requesting an access token and using that, but its only valid for 24 hours. once the token expires, a request to the auth route in the boilerplate app must be manually navigated to in a browser, where a user is authenticated to the proper Shopify Store. This is a kludgy work around at best. Is there an undocumented oAuth flow available? Or does this use case validate the need for Private apps?

piffio
Visitor
1 0 0

Hello guys,

I have exactly the same use case. Did you manage to get some progress with your approach?

DevDarren
Shopify Partner
16 1 3

Are you using the Storefront token ? that should not expire

banned