Skip to content

spencerlepine/printify-sdk-js

Repository files navigation

Printify SDK for Node.js (TypeScript)

NPM Version Coverage MIT license Project Status Badge

The Printify Node SDK provides convenient access to the Printify API from applications written in server-side JavaScript.

Guidelines and source endpoints can be found here: developers.printify.com.

Documentation

See the API.md docs

Installation

npm install printify-sdk-js
# or
yarn add printify-sdk-js
# or
pnpm add printify-sdk-js

Usage

The package needs to be configured with your account's Personal Access Token (create one here).

import Printify from 'printify-sdk-js';

const printify = new Printify({
  accessToken: process.env.PRINTIFY_API_TOKEN, // generate a token: https://printify.com/app/account/api
  shopId: '123456', // (optional) find using `printify.shops.list()`
  enableLogging: true,
});

const orders = await printify.orders.list({ limit: 5, status: 'fulfilled' });
console.log(orders); // { current_page: 1, data: [{ id: "5a9", address_to: {}, line_items: [], total_price: 2200, status: "fulfilled"  } ]

Usage with TypeScript

import Printify, { Webhook } from 'printify-sdk-js';

const printify = new Printify({
  accessToken: process.env.PRINTIFY_API_TOKEN,
  shopId: '123456',
});

const webhooks: Webhook[] = await printify.webhooks.list();
console.log(webhooks[0]); // { "topic": "order:created", "url": "https://example.com/webhooks/order/created", "shop_id": "1", "id": "5cb87a8cd490a2ccb256cec4" }

Usage with CommonJS

const Printify = require('printify-sdk-js');

const printify = new Printify({
  accessToken: process.env.PRINTIFY_API_TOKEN,
  shopId: '123456',
});

printify.orders
  .list({ limit: 5, status: 'fulfilled' })
  .then(orders => console.log(orders))
  .catch(error => console.error(error));

Configuration

import Printify from 'printify-sdk-js';

const printify = new Printify({
  accessToken: process.env.PRINTIFY_API_TOKEN,
  shopId: '123456',
  enableLogging: true,
  host: 'api.printify.com',
  timeout: 5000, // in ms
});
Option Default Description
accessToken null The API access token for authenticating requests. Generate one at Printify API.
shopId null (optional) Your personal shop ID. Can be found using printify.shops.list().
enableLogging true (optional) Enables logging of API requests and errors. Enabled by default.
host 'api.printify.com' (optional) The host for API requests.
timeout 5000 (optional) Request timeout in ms.

Development

yarn install
yarn test

If you do not have yarn installed, you can get it with npm install --global yarn.

# (optional) test the bundle locally
cd examples/typescript && yarn && cd ../../
yarn build
rm -rf examples/typescript/node_modules/printify-sdk-js/dist && mv dist examples/typescript/node_modules/printify-sdk-js
cd examples/typescript
yarn start

Contributing

We welcome contributions from the community! If you're interested in contributing to this project, please read the CONTRIBUTING.md file to get started.

Disclaimer

This SDK is a third-party library and is not officially endorsed or maintained by Printify. It is provided "as is" without warranty of any kind. For official information and guidelines on using the Printify API, please refer to the Printify Developer Documentation.

License

MIT