skip to Main Content

I’m trying to use the Shopify API to query all the orders of a selected Shopify store, using the private app instead of the OAUTH method. Below I have added the code, can’t seem to figure out how to get it to work cause there isn’t much documentation for the use of the private apps. Does anyone know how I can achieve this or has done this before? I think I maybe wrong but there maybe an error in creating the session.

Upon running the below code I get the below error:
Error: Missing adapter implementation for 'abstractRuntimeString' - make sure to import the appropriate adapter for your platform

const { shopifyApi, ApiVersion, Session, LATEST_API_VERSION } = require('@shopify/shopify-api');
const { randomUUID } = require('crypto');
const { restResources } = require('@shopify/shopify-api/rest/admin/2022-10');


const selectedStore = {
shop: "store.myshopify.com",
api_secret: "",
api_key: "",
private_admin_key: ""
};

const shopify = shopifyApi({
    apiKey: selectedStore.api_key,
    apiSecretKey: selectedStore.api_secret,
    scopes: ['read_orders', 'read_analytics', 'read_customers'],
    hostName: '<ngrok_url>',
    apiVersion: LATEST_API_VERSION,
    isEmbeddedApp: false,
    isPrivateApp: true,
    restResources
});

const session = new Session({
    id: randomUUID(),
    state: 'state',
    shop: selectedStore.shop,
    accessToken: selectedStore.private_admin_key,
    isOnline: true,
})

console.log(session)

const getOrders = async () => {
    const orders = await shopify.rest.Order.all({
        session,
        status: "all"
    })
    return orders
}

getOrders()

2

Answers


  1. If you have a Auth Token from a private App (inside the Shopify Admin), with permissions to read orders, you make a call to the Shopify store using that token. Look up the end point you call. Formulate your call. Make a GET or POST. Nothing hard to do there. Shopify assumes you know how to make a GET request with JS. Provide the Auth Token you gave yourself, and you’ll get back all the orders you asked for. You cannot skip out on learning paging etc.. but again, that is also pretty standard stuff not special to Shopify.

    Login or Signup to reply.
  2. In regards to the following errors:

    Error: Missing adapter implementation for 'abstractRuntimeString' - make sure to import the appropriate adapter for your platform
    

    You will need to add the following line

    import '@shopify/shopify-api/adapters/node'
    

    Before

    import ... from '@shopify/shopify-api'
    

    This is only lightly touched upon in their migration guide

    Shopify developer experience with this library has definitely been rough

    Source: https://github.com/Shopify/shopify-api-js/issues/400#issuecomment-1363021024

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search