UNPKG

@pipedream/shipstation

Version:

Pipedream ShipStation Components

104 lines (98 loc) 2.92 kB
import shipstation from "../../shipstation.app.mjs"; import constants from "../common/constants.mjs"; import utils from "../common/utils.mjs"; export default { key: "shipstation-create-order", name: "Create Order", description: "Create a new order. [See docs here](https://www.shipstation.com/docs/api/orders/create-update-order)", version: "0.0.1", type: "action", props: { shipstation, orderNumber: { label: "Order Number", description: "A user-defined order number used to identify an order.", type: "string", }, orderDate: { label: "Order Date", description: "The date the order was placed. E.g. 2015-06-29T08:46:27.0000000", type: "string", }, orderStatus: { label: "Order Status", description: "The order's status.", type: "string", options: constants.ORDER_STATUSES, }, billTo: { label: "Bill To", description: "The recipients billing address. Use the [Address](https://www.shipstation.com/docs/api/models/address) model.", type: "string", }, shipTo: { label: "Ship To", description: "The recipient's shipping address. Use the [Address](https://www.shipstation.com/docs/api/models/address) model.", type: "string", }, customerUsername: { label: "Customer Username", description: "The customer's username. Note: This property needs to be defined in order to generate a customer profile", type: "string", optional: true, }, customerEmail: { label: "Customer Email", description: "The customer's email address.", optional: true, propDefinition: [ shipstation, "customerEmail", ], }, items: { label: "Items", description: "An array of item objects. Use an array of [OrderItem](https://www.shipstation.com/docs/api/models/order-item) models.", type: "string[]", optional: true, }, gift: { label: "Gift", description: "Specifies whether or not this Order is a gift", type: "boolean", optional: true, }, }, async run({ $ }) { const { orderNumber, orderDate, orderStatus, billTo, shipTo, customerUsername, customerEmail, items, gift, } = this; const parsedItems = typeof items !== "string" && items?.length ? items.map((item) => utils.parseStringToJSON(item)) : utils.parseStringToJSON(items, []); const response = await this.shipstation.createOrder({ data: { orderNumber, orderDate, orderStatus, billTo: utils.parseStringToJSON(billTo), shipTo: utils.parseStringToJSON(shipTo), customerUsername, customerEmail, items: parsedItems, gift, }, $, }); $.export("$summary", "Successfully created order."); return response; }, };