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);
}
}
},
};