@connellrobert/printify-api
v0.2.0
Published
Printify's REST API allows your application to manage a Printify shop on behalf of a Printify Merchant. Create products, submit orders, and more...
Downloads
25
Maintainers
Readme
Printify API
Printify's REST API allows your application to manage a Printify shop on behalf of a Printify Merchant. Create products, submit orders, and more...
API Usage Guidelines
If you don't know Node.js
Node.js Tutorial for Beginners in 2020
How To Build a Blog with Nest.js, MongoDB, and Vue.js
Machine Learning In Node.js With TensorFlow.js
Install
npm i printify-api --save
Example
var Printify = require('printify-api');
var API = new Printify({
shop_id: 123456, // global query by shop_id, if not set you must set each function
access_token:'xxxxxxxxxxxxxxxxxxxxxxxxxx'
});
// Retrieve a list of all products
API.Product.fetch().then(data =>{
console.log(data);
});
// support async
var result = await API.Product.fetch();
// or custom shop_id
var result = await API.Product.fetch(shop_id);
// Retrieve a product
var result = await API.Product.info(product_id);
// or custom shop_id
var result = await API.Product.info(product_id, shop_id);
// Create a new product
var data = {
"title": "Product",
"description": "Good product",
"blueprint_id": 384,
"print_provider_id": 1,
"variants": [
{
"id": 45740,
"price": 400
},
{
"id": 45742,
"price": 400
},
{
"id": 45744,
"price": 400
},
{
"id": 45746 ,
"price": 400
}
],
"print_areas": [
{
"variant_ids": [45740,45742,45744,45746],
"placeholders": [
{
"position": "front",
"images": [
{
"id": "5d15ca551163cde90d7b2203",
"x": 0.5,
"y": 0.5,
"scale": 1,
"angle": 0
}
]
}
]
}
],
};
var result = API.Product.create(data);
// or
var result = API.Product.create(data, shop_id);
// Update a product
var data = {
id: 1234,
title:'Product 1'
};
var result = await API.Product.update(data);
// or
var result = await API.Product.update(data, shop_id);
// Delete a product
var result = await API.Product.delete(1234);
// Publish a product
var result = await API.Product.publish(1234);
// Notify that a product was successfully published
var result = await API.Product.publish(1234, 'success');
// Notify that a product publishing has failed
var result = await API.Product.publish(1234, 'error');
// Retrieve a list of orders
var result = await API.Order.fetch();
// or custom shop_id
var result = await API.Order.fetch(shop_id);
// Get order details by id
var result = await API.Order.info(order_id);
// or custom shop_id
var result = await API.Order.fetch(order_id, shop_id);
// Submit an order
var data = {
"external_id": "2750e210-39bb-11e9-a503-452618153e4a",
"line_items": [
{
"product_id": "5bfd0b66a342bcc9b5563216",
"variant_id": 17887,
"quantity": 1
}
],
"shipping_method": 1,
"send_shipping_notification": false,
"address_to": {
"first_name": "John",
"last_name": "Smith",
"email": "[email protected]",
"phone": "0574 69 21 90",
"country": "BE",
"region": "",
"address1": "ExampleBaan 121",
"address2": "45",
"city": "Retie",
"zip": "2470"
}
};
var result = await API.Order.create(data);
// or custom shop_id
var result = await API.Order.create(data, shop_id);
// Send an existing order to production
var result = await API.Order.publish(order_id);
// or custom shop_id
var result = await API.Order.publish(order_id, shop_id);
// Calculate the shipping cost of an order
var order = {
"line_items": [{
"product_id": "5bfd0b66a342bcc9b5563216",
"variant_id": 17887,
"quantity": 1
},{
"print_provider_id": 5,
"blueprint_id": 9,
"variant_id": 17887,
"quantity": 1
},{
"sku": "MY-SKU",
"quantity": 1
}],
"address_to": {
"first_name": "John", // not required
"last_name": "Smith", // not required
"email": "[email protected]", // not required
"phone": "0574 69 21 90", // not required
"country": "BE",
"region": "",
"address1": "ExampleBaan 121",
"address2": "45",
"city": "Retie",
"zip": "2470"
}
};
var result = await API.Order.shipping_cost(order);
// or custom shop_id
var result = await API.Order.shipping_cost(order, shop_id);
// Retrieve a list of webhooks
var result = await API.Webhook.fetch();
// or custom shop_id
var result = await API.Webhook.fetch(shop_id);
// Retrieve a webhook
var result = await API.Webhook.info(webhook_id);
// or custom shop_id
var result = await API.Webhook.info(webhook_id, shop_id);
// Create a new webhook
var data = {
"topic": "order:created",
"url": "https://morioh.com/webhooks/order/created"
}
var result = await API.Webhook.create(data);
// or custom shop_id
var result = await API.Webhook.create(data, shop_id);
// Modify a webhook
var data = {
id: 12345,
"url": "https://othersite.com/callback/order/created"
};
var result = await API.Webhook.update(data);
// or custom shop_id
var result = await API.Webhook.update(data, shop_id);
// Events, no test
// The product was deleted.
API.on('product:deleted', function(err, res){
console.log(res);
});
// The product publishing was started.
API.on('product:publish:started', function(err, res){
console.log(res);
});
// The product published successfully.
API.on('product:publish:succeeded', function(err, res){
console.log(res);
});
// The product publishing has failed.
API.on('product:publish:failed', function(err, res){
console.log(res);
});
// The order was created.
API.on('order:created', function(err, res){
console.log(res);
});
// The order was updated.
API.on('order:updated', function(err, res){
console.log(res);
});
// The order was sent to production.
API.on('order:sent-to-production', function(err, res){
console.log(res);
});
// Some/all items have been fulfilled.
API.on('order:shipment:created', function(err, res){
console.log(res);
});
// Some/all items have been delivered
API.on('order:shipment:delivered', function(err, res){
console.log(res);
});
// see more: https://developers.printify.com/#events