| 1234567891011121314151617181920212223242526 |
- import {
- Order,
- OrderLine,
- RequestContext,
- ShippingLine,
- ShippingLineAssignmentStrategy,
- } from '@vendure/core';
- /**
- * @description
- * This ShippingLineAssignmentStrategy ensures that digital products are assigned to a
- * ShippingLine which has the `isDigital` flag set to true.
- */
- export class DigitalShippingLineAssignmentStrategy implements ShippingLineAssignmentStrategy {
- assignShippingLineToOrderLines(
- ctx: RequestContext,
- shippingLine: ShippingLine,
- order: Order,
- ): OrderLine[] | Promise<OrderLine[]> {
- if (shippingLine.shippingMethod.customFields.isDigital) {
- return order.lines.filter(l => l.productVariant.customFields.isDigital);
- } else {
- return order.lines.filter(l => !l.productVariant.customFields.isDigital);
- }
- }
- }
|