UNPKG

@pipedream/ecwid

Version:

Pipedream Ecwid Components

65 lines (63 loc) 2.12 kB
import ecwid from "../../ecwid.app.mjs"; import { FULFILMENT_STATUS_LIST } from "../../commons/commons.mjs"; import { DEFAULT_POLLING_SOURCE_TIMER_INTERVAL } from "@pipedream/platform"; export default { name: "New Ecwid Paid Orders", version: "0.0.4", key: "ecwid-paid-orders", description: "Search for new orders which are PAID and AWAITING_PROCESSING. Emits events for each order and" + " sets order fulfilment status to PROCESSING", props: { timer: { type: "$.interface.timer", default: { intervalSeconds: DEFAULT_POLLING_SOURCE_TIMER_INTERVAL, }, }, history: { label: "Max Days Back", description: "Max number of days to get the orders from", type: "integer", default: 30, }, setFulfilmentStatus: { label: "Set order fulfilment status (Preferred)", description: "Upon receiving the order, fulfilment status will be set to user defined value so that " + "the same order is not fetched again. If unchecked, it needs to be handled in the workflow", type: "boolean", default: true, }, newFulfilmentStatus: { label: "New Fulfilment Status", description: "New Fulfilment Status to be updated in the order", type: "string", options: FULFILMENT_STATUS_LIST, default: "PROCESSING", }, ecwid, }, type: "source", methods: {}, async run() { let ordersResponse = await this.ecwid.getOrders(this.history); for (const order of ordersResponse.items) { this.$emit(order, { id: order.id, summary: `Order ${order.id}`, ts: Date.now(), }); if (this.setFulfilmentStatus) { let updateStatus = await this.ecwid.updateFulfilmentStatus( order.id, this.newFulfilmentStatus, ); if (updateStatus.updateCount === 1) console.log("Updated Order Status of " + order.id + " to " + this.newFulfilmentStatus); else console.error("Error Updating Order Status of " + order.id + " to " + this.newFulfilmentStatus); } } }, };