GuestCheckoutStrategy

GuestCheckoutStrategy

A strategy that determines how to deal with guest checkouts - i.e. when a customer checks out without being logged in. For example, a strategy could be used to implement business rules such as:

  • No guest checkouts allowed
  • No guest checkouts allowed for customers who already have an account
  • No guest checkouts allowed for customers who have previously placed an order
  • Allow guest checkouts, but create a new Customer entity if the email address is already in use
  • Allow guest checkouts, but update the existing Customer entity if the email address is already in use

Signature

interface GuestCheckoutStrategy extends InjectableStrategy {
  setCustomerForOrder(
        ctx: RequestContext,
        order: Order,
        input: CreateCustomerInput,
    ):
        | ErrorResultUnion<SetCustomerForOrderResult, Customer>
        | Promise<ErrorResultUnion<SetCustomerForOrderResult, Customer>>;
}

Extends

Members

setCustomerForOrder

method
type:
(ctx: RequestContext, order: Order, input: CreateCustomerInput) => | ErrorResultUnion<SetCustomerForOrderResult, Customer> | Promise<ErrorResultUnion<SetCustomerForOrderResult, Customer>>
This method is called when the setCustomerForOrder mutation is executed. It should return either a Customer object or an ErrorResult.