@devx-commerce/plugin-loyalty
Version:
A starter for Medusa plugins.
84 lines • 4.49 kB
JavaScript
;
// import { createStep, StepResponse } from "@medusajs/framework/workflows-sdk";
// import { LOYALTY_MODULE } from "../../modules/loyalty";
// import LoyaltyModuleService from "../../modules/loyalty/service";
// import { EventDTO } from "../../api/admin/loyalty-event/middleware";
// type StepInput = {
// customer_id: string;
// amount: number;
// event?: EventDTO;
// referralCode?: string;
// order_id: string;
// referralEvent?: EventDTO;
// };
Object.defineProperty(exports, "__esModule", { value: true });
// export const orderPlacedEventStep = createStep(
// "add-purchase-as-points",
// async (input: StepInput, { container }) => {
// const {
// customer_id,
// amount,
// referralEvent,
// event,
// referralCode,
// order_id,
// } = input;
// const loyaltyModuleService: LoyaltyModuleService =
// container.resolve(LOYALTY_MODULE);
// //====================== handle referral bonus ===============================
// if (referralCode && referralEvent) {
// const res = await loyaltyModuleService.calculatePointForReferralOrder(
// customer_id,
// amount,
// referralCode
// );
// if (res) {
// const { referee, referrer } = res;
// await loyaltyModuleService.applyReferralBonus({
// referee: customer_id,
// referrer: referrer.customer_id,
// referee_bonus: referee.bonus,
// referrer_bonus: referrer.bonus,
// referral_code: referralCode,
// expires_at: referee?.expires_at || undefined,
// order_id,
// });
// }
// }
// //====================== handle event ===============================
// const { pointsToAdd, expires_at } =
// await loyaltyModuleService.calculatePointsToAddFromOrderEvent(
// event as EventDTO,
// amount
// );
// if (pointsToAdd <= 0) return;
// const result = await loyaltyModuleService.addPoints({
// customer_id: input.customer_id,
// points: pointsToAdd,
// referenceType: "order",
// description: `Purchase of ${input.amount}`,
// expires_at,
// order_id: input.order_id,
// });
// return new StepResponse(result, {
// customer_id: input.customer_id,
// points: pointsToAdd,
// order_id: input.order_id,
// });
// },
// async (data, { container }) => {
// if (!data) {
// return;
// }
// const loyaltyModuleService: LoyaltyModuleService =
// container.resolve(LOYALTY_MODULE);
// await loyaltyModuleService.deductPoints({
// customerId: data.customer_id,
// points: data.points,
// referenceType: "order",
// description: `Failed to add purchase as points for ${data.customer_id}`,
// order_id: data.order_id,
// });
// }
// );
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcGxhY2VkLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy9vcmRlci1wbGFjZWQtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGdGQUFnRjtBQUNoRiwwREFBMEQ7QUFDMUQsb0VBQW9FO0FBQ3BFLHVFQUF1RTtBQUN2RSxxQkFBcUI7QUFDckIseUJBQXlCO0FBQ3pCLG9CQUFvQjtBQUNwQixzQkFBc0I7QUFDdEIsMkJBQTJCO0FBQzNCLHNCQUFzQjtBQUN0Qiw4QkFBOEI7QUFDOUIsS0FBSzs7QUFFTCxrREFBa0Q7QUFDbEQsOEJBQThCO0FBQzlCLGlEQUFpRDtBQUNqRCxjQUFjO0FBQ2QscUJBQXFCO0FBQ3JCLGdCQUFnQjtBQUNoQix1QkFBdUI7QUFDdkIsZUFBZTtBQUNmLHNCQUFzQjtBQUN0QixrQkFBa0I7QUFDbEIsaUJBQWlCO0FBQ2pCLHlEQUF5RDtBQUN6RCwyQ0FBMkM7QUFFM0MscUZBQXFGO0FBQ3JGLDJDQUEyQztBQUMzQywrRUFBK0U7QUFDL0UsdUJBQXVCO0FBQ3ZCLGtCQUFrQjtBQUNsQix1QkFBdUI7QUFDdkIsV0FBVztBQUVYLG1CQUFtQjtBQUNuQiw2Q0FBNkM7QUFFN0MsMERBQTBEO0FBQzFELGtDQUFrQztBQUNsQyw0Q0FBNEM7QUFDNUMsMENBQTBDO0FBQzFDLDRDQUE0QztBQUM1Qyx5Q0FBeUM7QUFDekMsMERBQTBEO0FBQzFELHNCQUFzQjtBQUN0QixjQUFjO0FBQ2QsVUFBVTtBQUNWLFFBQVE7QUFFUiw0RUFBNEU7QUFFNUUsMENBQTBDO0FBQzFDLHVFQUF1RTtBQUN2RSw2QkFBNkI7QUFDN0IsaUJBQWlCO0FBQ2pCLFdBQVc7QUFDWCxvQ0FBb0M7QUFFcEMsNERBQTREO0FBQzVELHdDQUF3QztBQUN4Qyw2QkFBNkI7QUFDN0IsZ0NBQWdDO0FBQ2hDLG9EQUFvRDtBQUNwRCxvQkFBb0I7QUFDcEIsa0NBQWtDO0FBQ2xDLFVBQVU7QUFFVix3Q0FBd0M7QUFDeEMsd0NBQXdDO0FBQ3hDLDZCQUE2QjtBQUM3QixrQ0FBa0M7QUFDbEMsVUFBVTtBQUNWLE9BQU87QUFFUCxxQ0FBcUM7QUFDckMsbUJBQW1CO0FBQ25CLGdCQUFnQjtBQUNoQixRQUFRO0FBRVIseURBQXlEO0FBQ3pELDJDQUEyQztBQUUzQyxnREFBZ0Q7QUFDaEQsc0NBQXNDO0FBQ3RDLDZCQUE2QjtBQUM3QixnQ0FBZ0M7QUFDaEMsaUZBQWlGO0FBQ2pGLGlDQUFpQztBQUNqQyxVQUFVO0FBQ1YsTUFBTTtBQUNOLEtBQUsifQ==