UNPKG

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
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;