UNPKG

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
"use strict"; 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; }, });