shopify-admin-api
Version:
Shopify Admin API is a NodeJS library built to help developers easily authenticate and make calls against the Shopify API. It was inspired by and borrows heavily from ShopifySharp.
105 lines (104 loc) • 3.74 kB
JavaScript
import { BaseService } from "../infrastructure";
/**
* A service for manipulating Shopify draft orders.
*/
export class DraftOrders extends BaseService {
constructor(shopDomain, accessToken) {
super(shopDomain, accessToken, "draft_orders");
}
/**
* Creates a new draft order.
*/
create(order, useCustomerDefaultAddress = false) {
const body = Object.assign(Object.assign({}, order), { use_customer_default_address: useCustomerDefaultAddress });
return this.createRequest("POST", ".json", "draft_order", { draft_order: body });
}
/**
* Updates the draft order with the given id.
*/
update(id, order) {
return this.createRequest("PUT", `${id}.json`, "draft_order", { draft_order: order });
}
/**
* Gets a list of up to 250 of the shop's draft orders.
* @param options Options for filtering the results.
*/
list(options) {
return this.createRequest("GET", ".json", "draft_orders", options);
}
/**
* Counts the draft orders on the shop.
*/
count(options) {
return this.createRequest("GET", "count.json", "count");
}
/**
* Retrieves the draft order with the given id.
*/
get(id) {
return this.createRequest("GET", `${id}.json`, "draft_order");
}
/**
* Deletes the draft order with the given id.
*/
delete(id) {
return this.createRequest("DELETE", `${id}.json`);
}
/**
* Completes the draft order, transitioning it to a full order.
*/
complete(id, paymentPending = false) {
return this.createRequest("POST", `${id}/complete.json?paymentPending=${paymentPending}`, "draft_order");
}
// TODO: Implement DraftOrders.sendInvoice
/**
* Gets a list of up to 250 metafields from the given draftOrder.
* @param id The draftOrder's id.
* @param options Options for filtering the results.
*/
listMetafields(draftOrderId, options) {
return this.createRequest("GET", `${draftOrderId}/metafields.json`, 'metafields', options);
}
/**
* Returns the number of metafields belonging to the given draftOrder.
* @param id The draftOrder's id.
*/
countMetafields(draftOrderId) {
return this.createRequest("GET", `${draftOrderId}/metafields/count.json`, 'count');
}
/**
* Gets the metafield with the given id from an draftOrder.
* @param draftOrderId The draftOrder's id.
* @param id The metafield's id.
*/
getMetafield(draftOrderId, id) {
return this.createRequest("GET", `${draftOrderId}/metafields/${id}.json`, 'metafield');
}
/**
* Creates a metafield for the given draftOrder.
* @param draftOrderId The draftOrder's id.
* @param id The metafield's id.
* @param metafield Options for the metafield
*/
createMetafield(draftOrderId, metafield) {
return this.createRequest("POST", `${draftOrderId}/metafields.json`, 'metafield', { metafield });
}
/**
* Updates a metafield for the given draftOrder
* @param draftOrderId The draftOrder's id.
* @param id The metafield's id.
* @param metafield Options for the metafield
*/
updateMetafield(draftOrderId, id, metafield) {
return this.createRequest("PUT", `${draftOrderId}/metafields/${id}.json`, 'metafield', { metafield });
}
/**
* Deletes the metafield with the given id from an draftOrder.
* @param draftOrderId The draftOrder's id.
* @param id The metafield's id.
*/
deleteMetafield(draftOrderId, id) {
return this.createRequest("DELETE", `${draftOrderId}/metafields/${id}.json`, 'metafield');
}
}
export default DraftOrders;