@devx-commerce/plugin-loyalty
Version:
A starter for Medusa plugins.
45 lines • 3.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.calculateAmountFromPoints = exports.CUSTOMER_ID_PROMOTION_RULE_ATTRIBUTE = void 0;
exports.getCartLoyaltyPromotion = getCartLoyaltyPromotion;
exports.orderHasLoyaltyPromotion = orderHasLoyaltyPromotion;
exports.getReferralCodeFromOrder = getReferralCodeFromOrder;
exports.isReferralAlreadyUsed = isReferralAlreadyUsed;
exports.CUSTOMER_ID_PROMOTION_RULE_ATTRIBUTE = "customer_id";
function getCartLoyaltyPromotion(cart) {
if (!cart?.metadata?.loyalty_promo_id) {
return;
}
// Ensure promotions is an array
if (!Array.isArray(cart?.promotions)) {
console.warn("Cart promotions is not an array:", cart?.promotions);
return;
}
return cart.promotions.find((promotion) => promotion.id === cart.metadata.loyalty_promo_id);
}
function orderHasLoyaltyPromotion(order) {
const loyaltyPromotion = getCartLoyaltyPromotion(order.cart);
return (loyaltyPromotion?.rules?.some((rule) => {
return (rule?.attribute === exports.CUSTOMER_ID_PROMOTION_RULE_ATTRIBUTE &&
(rule?.values?.some((value) => value.value === order.customer?.id) ||
false));
}) || false);
}
function getReferralCodeFromOrder(order) {
return order.cart?.metadata?.referral_code;
}
function isReferralAlreadyUsed(wallet, code) {
if (!wallet.used_referrals) {
return false;
}
return wallet.used_referrals.includes(code);
}
const calculateAmountFromPoints = (points, pointsPerRupee) => {
if (!pointsPerRupee) {
return points;
}
const amount = Math.floor(points / pointsPerRupee);
return amount > 0 ? amount : 0;
};
exports.calculateAmountFromPoints = calculateAmountFromPoints;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL2hlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1QkEsMERBZ0JDO0FBRUQsNERBYUM7QUFFRCw0REFFQztBQUVELHNEQU1DO0FBN0NZLFFBQUEsb0NBQW9DLEdBQUcsYUFBYSxDQUFDO0FBRWxFLFNBQWdCLHVCQUF1QixDQUNyQyxJQUFjO0lBRWQsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztRQUN0QyxPQUFPO0lBQ1QsQ0FBQztJQUVELGdDQUFnQztJQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNuRSxPQUFPO0lBQ1QsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3pCLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQy9ELENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQUMsS0FBZ0I7SUFDdkQsTUFBTSxnQkFBZ0IsR0FBRyx1QkFBdUIsQ0FDOUMsS0FBSyxDQUFDLElBQTJCLENBQ2xDLENBQUM7SUFDRixPQUFPLENBQ0wsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ3JDLE9BQU8sQ0FDTCxJQUFJLEVBQUUsU0FBUyxLQUFLLDRDQUFvQztZQUN4RCxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO2dCQUNoRSxLQUFLLENBQUMsQ0FDVCxDQUFDO0lBQ0osQ0FBQyxDQUFDLElBQUksS0FBSyxDQUNaLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQUMsS0FBZ0I7SUFDdkQsT0FBTyxLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxhQUFtQyxDQUFDO0FBQ25FLENBQUM7QUFFRCxTQUFnQixxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsSUFBSTtJQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVNLE1BQU0seUJBQXlCLEdBQUcsQ0FDdkMsTUFBYyxFQUNkLGNBQXVCLEVBQ3ZCLEVBQUU7SUFDRixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxDQUFDO0lBQ25ELE9BQU8sTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFDO0FBVlcsUUFBQSx5QkFBeUIsNkJBVXBDIn0=