vendure-plugin-payment-terms
Version:
This plugin allows certain customers to pay using Payment Terms. Payment Terms are when a customer is allowed to make a payment a certain number of days after an invoice is due.
25 lines (24 loc) • 1.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.paymentTermsEligibilityChecker = void 0;
const core_1 = require("@vendure/core");
let entityHydrator;
exports.paymentTermsEligibilityChecker = new core_1.PaymentMethodEligibilityChecker({
code: 'payment-terms-eligibility-checker',
description: [{ languageCode: core_1.LanguageCode.en, value: 'Only those customers in this group are allowed to pay with terms' }],
init(injector) {
entityHydrator = injector.get(core_1.EntityHydrator);
},
args: {
customerGroupId: {
type: 'ID',
ui: { component: 'customer-group-form-input' },
label: [{ languageCode: core_1.LanguageCode.en, value: 'Customer group' }],
},
},
check: async (ctx, order, args) => {
await entityHydrator.hydrate(ctx, order, { relations: ['customer.groups'] });
const isEligible = !!order.customer?.groups.find((customerGroup) => `${customerGroup.id}` === JSON.parse(args.customerGroupId)) ?? false;
return isEligible;
},
});