Skip to main content

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
info

This is configured via the orderOptions.guestCheckoutStrategy property of your VendureConfig.

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

setCustomerForOrder

method
(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.