Official Shopify API bindings for Node.js.
$ npm install --save shopify-api-nodeThis module exports a constructor function which takes an options object.
Creates a new Shopify instance.
- options- Required - A plain JavaScript object that contains the configuration options.
- shopName- Required - A string that specifies the shop name.
- apiKey- Required for private apps - A string that specifies the API key of the app. This option must be used in conjunction with the- passwordoption and is mutually exclusive with the- accessTokenoption.
- password- Required for private apps - A string that specifies the private app password. This option must be used in conjunction with the- apiKeyoption and is mutually exclusive with the- accessTokenoption.
- accessToken- Required for public apps - A string representing the permanent OAuth 2.0 access token. This option is mutually exclusive with the- apiKeyand- passwordoptions. If you are looking for a premade solution to obtain an access token, take a look at the shopify-token module.
- autoLimit- Optional - This option allows you to regulate the request rate in order to avoid hitting the rate limit. Requests are limited using the token bucket algorithm. Accepted values are a boolean or a plain JavaScript object. When using an object, the- callsproperty and the- intervalproperty specify the refill rate and the- bucketSizeproperty the bucket size. For example- { calls: 2, interval: 1000, bucketSize: 35 }specifies a limit of 2 requests per second with a burst of 35 requests. When set to- truerequests are limited as specified in the above example. Defaults to- false.
- timeout- Optional - A number that specifies the milliseconds to wait for the server to send response headers before aborting the request. Defaults to- 60000, or 1 minute.
A Shopify instance.
Throws an Error exception if the required options are missing.
const Shopify = require('shopify-api-node');
const shopify = new Shopify({
  shopName: 'your-shop-name',
  apiKey: 'your-api-key',
  password: 'your-app-password'
});The callLimits property allows you to monitor the API call limit. The value
is an object like this:
{
  remaining: 30,
  current: 10,
  max: 40
}Values start at undefined and are updated every time a request is made. After
every update the callLimits event is emitted with the updated limits as
argument.
shopify.on('callLimits', limits => console.log(limits));Every resource is accessed via your shopify instance:
const shopify = new Shopify({
  shopName: 'your-shop-name',
  accessToken: 'your-oauth-token'
});
// shopify.<resouce_name>.<method_name>Each method returns a Promise that resolves with the result:
shopify.order.list({ limit: 5 })
  .then(orders => console.log(orders))
  .catch(err => console.error(err));Shopify allows for adding metafields to various resources. You can use the
owner_resource and owner_id properties to work with metafields that belong
to a particular resource as shown in the examples below.
Get metafields that belong to a product:
shopify.metafield.list({
  metafield: { owner_resource: 'product', owner_id: 632910392 }
}).then(
  metafields => console.log(metafields),
  err => console.error(err)
);Create a new metafield for a product:
shopify.metafield.create({
  key: 'warehouse',
  value: 25,
  value_type: 'integer',
  namespace: 'inventory',
  owner_resource: 'product',
  owner_id: 632910392
}).then(
  metafield => console.log(metafield),
  err => console.error(err)
);- apiPermission
- delete()
 
- applicationCharge
- activate(id, params)
- create(params)
- get(id[, params])
- list([params])
 
- applicationCredit
- create(params)
- get(id[, params])
- list([params])
 
- article
- authors()
- count(blogId[, params])
- create(blogId, params)
- delete(blogId, id)
- get(blogId, id[, params])
- list(blogId[, params])
- tags([blogId][, params])
- update(blogId, id, params)
 
- asset
- create(themeId, params)
- delete(themeId, params)
- get(themeId, params)
- list(themeId[, params])
- update(themeId, params)
 
- blog
- count()
- create(params)
- delete(id)
- get(id[, params])
- list([params])
- update(id, params)
 
- carrierService
- create(params)
- delete(id)
- get(id)
- list()
- update(id, params)
 
- checkout
- complete(token)
- count([params])
- create(params)
- get(token)
- list([params])
- shippingRates(token)
- update(token, params)
 
- collect
- count([params])
- create(params)
- delete(id)
- get(id[, params])
- list([params])
 
- collectionListing
- get(id)
- list([params])
- productIds(id)
 
- comment
- approve(id)
- count([params])
- create(params)
- get(id[, params])
- list([params])
- notSpam(id)
- remove(id)
- restore(id)
- spam(id)
- update(id, params)
 
- country
- count()
- create(params)
- delete(id)
- get(id[, params])
- list([params])
- update(id, params)
 
- customCollection
- count([params])
- create(params)
- delete(id)
- get(id[, params])
- list([params])
- update(id, params)
 
- customer
- accountActivationUrl(id)
- count()
- create(params)
- delete(id)
- get(id[, params])
- list([params])
- search(params)
- sendInvite(id[, params])
- update(id, params)
 
- customerAddress
- create(customerId, params)
- default(customerId, id)
- delete(customerId, id)
- get(customerId, id)
- list(customerId[, params])
- set(customerId, params)
- update(customerId, id, params)
 
- customerSavedSearch
- count([params])
- create(params)
- customers(id[, params])
- delete(id)
- get(id[, params])
- list([params])
- update(id, params)
 
- discount
- create(params)
- delete(id)
- disable(id)
- enable(id)
- get(id)
- list([params])
 
- discountCode
- create(priceRuleId, params)
- delete(priceRuleId, id)
- get(priceRuleId, id)
- list(priceRuleId)
- lookup(params)
- update(priceRuleId, id, params)
 
- draftOrder
- complete(id[, params])
- count()
- create(params)
- delete(id)
- get(id[, params])
- list([params])
- sendInvoice(id[, params])
- update(id, params)
 
- event
- count([params])
- get(id[, params])
- list([params])
 
- fulfillment
- cancel(orderId, id)
- complete(orderId, id)
- count(orderId[, params)
- create(orderId, params)
- get(orderId, id[, params])
- list(orderId[, params])
- open(orderId, id)
- update(orderId, id, params)
 
- fulfillmentEvent
- create(orderId, fulfillmentId, params)
- delete(orderId, fulfillmentId, id)
- get(orderId, fulfillmentId, id)
- list(orderId, fulfillmentId[, params])
- update(orderId, fulfillmentId, id, params)
 
- fulfillmentService
- create(params)
- delete(id)
- get(id)
- list([params])
- update(id, params)
 
- giftCard
- count([params])
- create(params)
- disable(id)
- get(id)
- list([params])
- search(params)
- update(id, params)
 
- location
- get(id)
- list()
 
- marketingEvent
- count()
- create(params)
- delete(id)
- get(id)
- list([params])
- update(id, params)
- engagements(id, params)
 
- metafield
- count([params])
- create(params)
- delete(id)
- get(id[, params])
- list([params])
- update(id, params)
 
- order
- cancel(id[, params])
- close(id)
- count([params])
- create(params)
- delete(id)
- get(id[, params])
- list([params])
- open(id)
- update(id, params)
 
- orderRisk
- create(orderId, params)
- delete(orderId, id)
- get(orderId, id)
- list(orderId)
- update(orderId, id, params)
 
- page
- count([params])
- create(params)
- delete(id)
- get(id[, params])
- list([params])
- update(id, params)
 
- payment
- count(checkoutToken)
- create(checkoutToken, params)
- get(checkoutToken, id)
- list(checkoutToken)
 
- policy
- list([params])
 
- priceRule
- create(params)
- delete(id)
- get(id)
- list([params])
- update(id, params)
 
- product
- count([params])
- create(params)
- delete(id)
- get(id[, params])
- list([params])
- update(id, params)
 
- productImage
- count(productId[, params])
- create(productId, params)
- delete(productId, id)
- get(productId, id[, params])
- list(productId[, params])
- update(productId, id, params)
 
- productListing
- count()
- get(id)
- list([params])
- productIds([params])
 
- productVariant
- count(productId)
- create(productId, params)
- delete(productId, id)
- get(id[, params])
- list(productId[, params])
- update(id, params)
 
- province
- count(countryId[, params])
- get(countryId, id[, params])
- list(countryId[, params])
- update(countryId, id, params)
 
- recurringApplicationCharge
- activate(id, params)
- create(params)
- delete(id)
- get(id[, params])
- list([params])
 
- redirect
- count([params])
- create(params)
- delete(id)
- get(id[, params])
- list([params])
- update(id, params)
 
- refund
- get(orderId, id[, params])
 
- report
- create(params)
- delete(id)
- get(id[, params])
- list([params])
- update(id, params)
 
- resourceFeedback
- create(params)
- list()
 
- scriptTag
- count([params])
- create(params)
- delete(id)
- get(id[, params])
- list([params])
- update(id, params)
 
- shippingZone
- list([params])
 
- shop
- get([params])
 
- smartCollection
- count([params])
- create(params)
- delete(id)
- get(id[, params])
- list([params])
- order(id, params)
- update(id, params)
 
- theme
- create(params)
- delete(id)
- get(id[, params])
- list([params])
- update(id, params)
 
- transaction
- count(orderId)
- create(orderId, params)
- get(orderId, id[, params])
- list(orderId[, params])
 
- usageCharge
- create(recurringApplicationChargeId, params)
- get(recurringApplicationChargeId, id[, params])
- list(recurringApplicationChargeId[, params])
 
- user
- current()
- get(id)
- list()
 
- webhook
- count([params])
- create(params)
- delete(id)
- get(id[, params])
- list([params])
- update(id, params)
 
where params is a plain JavaScript object. See https://help.shopify.com/api/reference?ref=microapps
for parameters details.
- Becoming a Shopify App Developer
- Checking out the roots
- Talking To Other Masters
- Reading API Docs
- Learning from others
(add yours!)