medusa-payment-yookassa
Version:
YooKassa payment provider for Medusa
58 lines • 4.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateReceipt = generateReceipt;
const format_currency_1 = require("./format-currency");
function generateReceipt(taxSystemCode, taxItem, taxShipping, cart) {
const email = cart?.email;
const rawPhone = cart?.shipping_address.phone;
const phone = rawPhone?.replace(/[^\d+]/g, "");
const items = cart?.items;
const currencyCode = cart?.currency_code;
const shippingTotal = cart?.shipping_total;
const shippingMethods = cart?.shipping_methods;
const shippingAddress = cart?.shipping_address;
const fullName = `${shippingAddress.last_name} ${shippingAddress.first_name}`;
const receipt = {};
receipt.customer = {
full_name: fullName,
email: email,
...(phone ? { phone: phone } : {}),
};
if (taxSystemCode) {
receipt.tax_system_code = taxSystemCode;
}
const receiptItems = items.map((i) => ({
description: i.variant_title
? `${i.product_title} (${i.variant_title})`
: i.product_title,
amount: {
value: (0, format_currency_1.formatCurrency)(i.unit_price, currencyCode),
currency: currencyCode.toUpperCase()
},
quantity: i.quantity.toString(),
vat_code: taxItem,
payment_subject: "commodity",
payment_mode: "full_payment"
}));
if (shippingTotal > 0) {
const name = shippingMethods?.[0]?.name ?? 'Shipping';
const amount = (0, format_currency_1.formatCurrency)(shippingTotal, currencyCode);
receiptItems.push({
description: name.length > 128 ? name.slice(0, 125) + '…' : name,
amount: {
value: amount,
currency: currencyCode.toUpperCase()
},
quantity: "1",
vat_code: taxShipping,
payment_subject: "service",
payment_mode: "full_payment"
});
}
if (receiptItems.length === 0) {
throw new Error("Receipt items cannot be empty");
}
receipt.items = receiptItems;
return receipt;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcmVjZWlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvcGF5bWVudC15b29rYXNzYS91dGlscy9nZW5lcmF0ZS1yZWNlaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBYUEsMENBaUVDO0FBckVELHVEQUUwQjtBQUUxQixTQUFnQixlQUFlLENBQzdCLGFBQXdDLEVBQ3hDLE9BQWdCLEVBQ2hCLFdBQW9CLEVBQ3BCLElBQXlCO0lBR3pCLE1BQU0sS0FBSyxHQUFHLElBQUksRUFBRSxLQUFlLENBQUE7SUFDbkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxFQUFFLGdCQUFnQixDQUFDLEtBQWUsQ0FBQTtJQUN2RCxNQUFNLEtBQUssR0FBRyxRQUFRLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLEVBQUUsS0FBbUMsQ0FBQTtJQUN2RCxNQUFNLFlBQVksR0FBRyxJQUFJLEVBQUUsYUFBdUIsQ0FBQTtJQUNsRCxNQUFNLGFBQWEsR0FBRyxJQUFJLEVBQUUsY0FBd0IsQ0FBQTtJQUNwRCxNQUFNLGVBQWUsR0FBRyxJQUFJLEVBQUUsZ0JBQThDLENBQUE7SUFDNUUsTUFBTSxlQUFlLEdBQUcsSUFBSSxFQUFFLGdCQUF1QyxDQUFBO0lBRXJFLE1BQU0sUUFBUSxHQUFHLEdBQUcsZUFBZSxDQUFDLFNBQVMsSUFBSSxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUE7SUFFN0UsTUFBTSxPQUFPLEdBQUcsRUFBYyxDQUFBO0lBRTlCLE9BQU8sQ0FBQyxRQUFRLEdBQUc7UUFDakIsU0FBUyxFQUFFLFFBQVE7UUFDbkIsS0FBSyxFQUFFLEtBQUs7UUFDWixHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ25DLENBQUE7SUFFRCxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFBO0lBQ3pDLENBQUM7SUFDRCxNQUFNLFlBQVksR0FBdUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6RCxXQUFXLEVBQUUsQ0FBQyxDQUFDLGFBQWE7WUFDMUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsS0FBSyxDQUFDLENBQUMsYUFBYSxHQUFHO1lBQzNDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBdUI7UUFDN0IsTUFBTSxFQUFFO1lBQ04sS0FBSyxFQUFFLElBQUEsZ0NBQWMsRUFBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQztZQUNqRCxRQUFRLEVBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRTtTQUNyQztRQUNELFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTtRQUMvQixRQUFRLEVBQUUsT0FBTztRQUNqQixlQUFlLEVBQUUsV0FBVztRQUM1QixZQUFZLEVBQUUsY0FBYztLQUM3QixDQUFDLENBQUMsQ0FBQTtJQUVILElBQUksYUFBYSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxVQUFVLENBQUE7UUFDckQsTUFBTSxNQUFNLEdBQUcsSUFBQSxnQ0FBYyxFQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQTtRQUMxRCxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ2hCLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ2hFLE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUUsTUFBTTtnQkFDYixRQUFRLEVBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRTthQUNyQztZQUNELFFBQVEsRUFBRSxHQUFHO1lBQ2IsUUFBUSxFQUFFLFdBQVc7WUFDckIsZUFBZSxFQUFFLFNBQVM7WUFDMUIsWUFBWSxFQUFFLGNBQWM7U0FDN0IsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFBO0lBQzVCLE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUMifQ==