@devx-commerce/plugin-loyalty
Version:
A starter for Medusa plugins.
59 lines • 4.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.orderDeliveredWorkflow = void 0;
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
const core_flows_1 = require("@medusajs/medusa/core-flows");
const get_event_1 = require("../cart/steps/get-event");
const validate_customer_exists_1 = require("../cart/steps/validate-customer-exists");
const create_order_event_1 = require("./steps/create-order-event");
exports.orderDeliveredWorkflow = (0, workflows_sdk_1.createWorkflow)("order-delivered-custom", ({ order_id }) => {
const { data: orders } = (0, core_flows_1.useQueryGraphStep)({
entity: "order",
fields: [
"id",
"display_id",
"customer.*",
"total",
"cart.*",
"cart.promotions.*",
"cart.promotions.rules.*",
"cart.promotions.rules.values.*",
"cart.promotions.application_method.*",
"metadata",
],
filters: { id: order_id },
options: { throwIfKeyNotFound: true },
});
// Validate customer exists
(0, validate_customer_exists_1.validateCustomerExistsStep)({
customer: orders[0].customer,
});
//====================== Add Loyalty Points from Order ======================
const event = (0, get_event_1.getEventStep)({
eventName: "order_delivered",
});
(0, workflows_sdk_1.when)(event, (event) => event?.trigger_event === "order_delivered").then(() => {
const orderEventResult = (0, create_order_event_1.createOrderEventStep)({
customer_id: orders[0].customer.id,
amount: orders[0].total,
order_id: orders[0].id,
order_display_id: orders[0].display_id,
event: event,
});
const loyaltyMetadata = (0, workflows_sdk_1.transform)({ orders, orderEventResult }, (data) => {
const currentMetadata = data.orders?.[0]?.metadata || {};
return {
...currentMetadata,
loyalty_status: "redeemed",
loyalty_point_earned: data?.orderEventResult?.points || 0,
};
});
(0, core_flows_1.updateOrdersStep)({
selector: { id: orders[0].id },
update: {
metadata: loyaltyMetadata,
},
});
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIuZGVsaXZlcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9vcmRlci9vcmRlci5kZWxpdmVyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBSTJDO0FBQzNDLDREQUdxQztBQUdyQyx1REFBdUQ7QUFDdkQscUZBQW9GO0FBQ3BGLG1FQUFrRTtBQUtyRCxRQUFBLHNCQUFzQixHQUFHLElBQUEsOEJBQWMsRUFDbEQsd0JBQXdCLEVBQ3hCLENBQUMsRUFBRSxRQUFRLEVBQWlCLEVBQUUsRUFBRTtJQUM5QixNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDekMsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNLEVBQUU7WUFDTixJQUFJO1lBQ0osWUFBWTtZQUNaLFlBQVk7WUFDWixPQUFPO1lBQ1AsUUFBUTtZQUNSLG1CQUFtQjtZQUNuQix5QkFBeUI7WUFDekIsZ0NBQWdDO1lBQ2hDLHNDQUFzQztZQUN0QyxVQUFVO1NBQ1g7UUFDRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFO1FBQ3pCLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRTtLQUN0QyxDQUFDLENBQUM7SUFFSCwyQkFBMkI7SUFDM0IsSUFBQSxxREFBMEIsRUFBQztRQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVE7S0FDN0IsQ0FBQyxDQUFDO0lBRUgsNkVBQTZFO0lBRTdFLE1BQU0sS0FBSyxHQUFHLElBQUEsd0JBQVksRUFBQztRQUN6QixTQUFTLEVBQUUsaUJBQWlCO0tBQzdCLENBQUMsQ0FBQztJQUVILElBQUEsb0JBQUksRUFBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxhQUFhLEtBQUssaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQ3JFLEdBQUcsRUFBRTtRQUNILE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSx5Q0FBb0IsRUFBQztZQUM1QyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVMsQ0FBQyxFQUFFO1lBQ25DLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN2QixRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEIsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVU7WUFDdEMsS0FBSyxFQUFFLEtBQWlCO1NBQ3pCLENBQUMsQ0FBQztRQUVILE1BQU0sZUFBZSxHQUFHLElBQUEseUJBQVMsRUFDL0IsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsRUFDNUIsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNQLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ3pELE9BQU87Z0JBQ0wsR0FBRyxlQUFlO2dCQUNsQixjQUFjLEVBQUUsVUFBVTtnQkFDMUIsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sSUFBSSxDQUFDO2FBQzFELENBQUM7UUFDSixDQUFDLENBQ0YsQ0FBQztRQUVGLElBQUEsNkJBQWdCLEVBQUM7WUFDZixRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5QixNQUFNLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLGVBQWU7YUFDMUI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQ0YsQ0FBQztBQUNKLENBQUMsQ0FDRixDQUFDIn0=