Shopify API Node.js (Official module)
Official Shopify API bindings for Node.js.
Installation:
$ npm install --save shopify-api-node
API
This module exports a constructor function which takes an options object.
Shopify(options)
Creates a new Shopify
instance.
Arguments
options
- Required - A plain JavaScript object that contains the
configuration options.
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 password
option and is mutually exclusive with the
accessToken
option.password
- Required for private apps -
A string that specifies the private app password. This option must be used in
conjunction with the apiKey
option and is mutually exclusive with the
accessToken
option.accessToken
- Required for public apps - A string representing the
permanent OAuth 2.0 access token. This option is mutually exclusive
with the apiKey
and password
options. 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 calls
property and the
interval
property specify the refill rate and the bucketSize
property
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 true
requests 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.
Return value
A Shopify
instance.
Exceptions
Throws an Error
exception if the required options are missing.
Example
const Shopify = require('shopify-api-node');
const shopify = new Shopify({
shopName: 'your-shop-name',
apiKey: 'your-api-key',
password: 'your-app-password'
});
shopify.callLimits
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));
Resources
Every resource is accessed via your shopify
instance:
const shopify = new Shopify({
shopName: 'your-shop-name',
accessToken: 'your-oauth-token'
});
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));
Available resources and methods
- apiPermission
- 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(applicationId, id)
list(applicationId[, params])
productIds(applicationId, 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)
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])
- 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
- 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
- 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(applicationId)
get(applicationId, id)
list(applicationId[, params])
productIds(applicationId[, 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
- scriptTag
count([params])
create(params)
delete(id)
get(id[, params])
list([params])
update(id, params)
- shippingZone
- shop
- 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
- 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.
Become a master of the Shopify ecosystem by:
Use Polaris, a React powered Frontend Framework which mimics the Shopify merchant admin:
Polaris
Shopify Apps already using Shopify API node:
(add yours!)
Supported by:
microapps
Used in our live products: MoonMail & MONEI
License
MIT