@gorgo/medusa-payment-tkassa
Version:
T-Kassa payment provider for Medusa
114 lines • 10.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateReceipt = generateReceipt;
exports.generateRefundReceipt = generateRefundReceipt;
const get_smallest_unit_1 = require("./get-smallest-unit");
function generateReceiptFfd105(taxation, taxItem, taxShipping, items, currencyCode, shippingTotal, shippingMethods, email, phone) {
const res = {};
res.FfdVersion = "1.05";
res.Taxation = taxation;
if (email)
res.Email = email;
if (phone)
res.Phone = phone;
const Items = items.map(i => ({
Name: i.variant_title
? `${i.product_title} (${i.variant_title})`
: i.product_title,
Price: (0, get_smallest_unit_1.getSmallestUnit)(i.unit_price, currencyCode),
Quantity: i.quantity,
Amount: (0, get_smallest_unit_1.getSmallestUnit)(i.total, currencyCode),
Tax: taxItem,
PaymentMethod: 'full_payment',
PaymentObject: 'commodity',
}));
if (shippingTotal > 0) {
const name = shippingMethods?.[0]?.name ?? 'Shipping';
const amt = (0, get_smallest_unit_1.getSmallestUnit)(shippingTotal, currencyCode);
Items.push({
Name: name.length > 128 ? name.slice(0, 125) + '…' : name,
Price: amt,
Quantity: 1,
Amount: amt,
Tax: taxShipping,
PaymentMethod: 'full_payment',
PaymentObject: 'service',
});
}
res.Items = Items;
return res;
}
function generateReceiptFfd12(taxation, taxItem, taxShipping, items, currencyCode, shippingTotal, shippingMethods, shippingAddress, email, phone) {
const res = {};
res.FfdVersion = "1.2";
res.Taxation = taxation;
if (email)
res.Email = email;
if (phone)
res.Phone = phone;
if (shippingAddress.first_name && shippingAddress.last_name)
res.Customer = `${shippingAddress.last_name} ${shippingAddress.first_name}`;
const Items = items.map(i => ({
Name: i.variant_title
? `${i.product_title} (${i.variant_title})`
: i.product_title,
Price: (0, get_smallest_unit_1.getSmallestUnit)(i.unit_price, currencyCode),
Quantity: i.quantity,
Amount: (0, get_smallest_unit_1.getSmallestUnit)(i.total, currencyCode),
Tax: taxItem,
PaymentMethod: 'full_payment', // TODO: to be prepayment and payment receipts?
PaymentObject: 'commodity', // TODO: to be dynamic?
MeasurementUnit: 'шт' // TODO: to be dynamic?
}));
if (shippingTotal > 0) {
const name = shippingMethods?.[0]?.name ?? 'Shipping';
const amt = (0, get_smallest_unit_1.getSmallestUnit)(shippingTotal, currencyCode);
Items.push({
Name: name.length > 128 ? name.slice(0, 125) + '…' : name,
Price: amt,
Quantity: 1,
Amount: amt,
Tax: taxShipping,
PaymentMethod: 'full_payment', // TODO: to be prepayment and payment receipts?
PaymentObject: 'service',
MeasurementUnit: 'шт' // TODO: to be dynamic?
});
}
res.Items = Items;
return res;
}
function generateReceipt(ffdVersion, taxation, taxItem, taxShipping, cart) {
const Email = cart?.email;
const Phone = cart?.shipping_address.phone;
const items = cart?.items;
const currencyCode = cart?.currency_code;
const shippingTotal = cart?.shipping_total;
const shippingMethods = cart?.shipping_methods;
const shippingAddress = cart?.shipping_address;
let receipt = {};
switch (ffdVersion) {
case "1.05":
receipt = generateReceiptFfd105(taxation, taxItem, taxShipping, items, currencyCode, shippingTotal, shippingMethods, Email, Phone);
break;
case "1.2":
receipt = generateReceiptFfd12(taxation, taxItem, taxShipping, items, currencyCode, shippingTotal, shippingMethods, shippingAddress, Email, Phone);
break;
}
return receipt;
}
function generateRefundReceipt(amount, orderId, initialReceipt) {
const receipt = { ...initialReceipt };
if (initialReceipt.FfdVersion === "1.2") {
receipt.Items = [initialReceipt.Items[0]];
}
else {
receipt.Items = [initialReceipt.Items[0]];
}
// TODO: to be specific receipts for items and shipping refunds?
receipt.Items[0].Name = `Refund for Order ${orderId}`;
receipt.Items[0].Quantity = 1;
receipt.Items[0].Amount = (0, get_smallest_unit_1.getSmallestUnit)(amount, 'RUB');
receipt.Items[0].Price = (0, get_smallest_unit_1.getSmallestUnit)(amount, 'RUB');
return receipt;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcmVjZWlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvcGF5bWVudC10a2Fzc2EvdXRpbHMvZ2VuZXJhdGUtcmVjZWlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFIQSwwQ0FpREM7QUFFRCxzREFtQkM7QUExTEQsMkRBRTRCO0FBSzVCLFNBQVMscUJBQXFCLENBQzVCLFFBQThELEVBQzlELE9BQXFHLEVBQ3JHLFdBQXlHLEVBQ3pHLEtBQWlDLEVBQ2pDLFlBQW9CLEVBQ3BCLGFBQXFCLEVBQ3JCLGVBQTJDLEVBQzNDLEtBQWMsRUFDZCxLQUFjO0lBRWQsTUFBTSxHQUFHLEdBQUcsRUFBOEMsQ0FBQTtJQUUxRCxHQUFHLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQTtJQUN2QixHQUFHLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtJQUV2QixJQUFJLEtBQUs7UUFDUCxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUVuQixJQUFJLEtBQUs7UUFDUCxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUVuQixNQUFNLEtBQUssR0FBNkMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEUsSUFBSSxFQUFFLENBQUMsQ0FBQyxhQUFhO1lBQ25CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEtBQUssQ0FBQyxDQUFDLGFBQWEsR0FBRztZQUMzQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQXVCO1FBQzdCLEtBQUssRUFBRSxJQUFBLG1DQUFlLEVBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7UUFDbEQsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO1FBQ3BCLE1BQU0sRUFBRSxJQUFBLG1DQUFlLEVBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUM7UUFDOUMsR0FBRyxFQUFFLE9B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