BasketValidationExtension Class
The BasketValidationExtension
class serves as the base class for implementing custom basket validation rules in Sana Commerce Cloud. It provides the foundation for creating validation logic that can be applied to different checkout processes.
Properties
ProcessesToBlock
public abstract CheckoutProcesses ProcessesToBlock { get; }
Defines which checkout processes the validation rule blocks for the user when the validation fails.
If the validation rule does not block the user from proceeding with the checkout process, use CheckoutProcesses.None
.
Methods
ValidateAsync
public abstract Task<BasketValidationResult> ValidateAsync(BasketValidationContext context)
Performs the basket validation logic. This method must be implemented by derived classes to define the actual validation rules.
Parameters
context
: ABasketValidationContext
instance containing information about the current basket and user.
Returns
A Task<BasketValidationResult>
indicating whether the validation passed or failed.
Example Usage
Here's an example of implementing a basket validation rule that ensures a minimum order amount:
public class MinimumOrderValidator : BasketValidationExtension
{
public override CheckoutProcesses ProcessesToBlock =>
CheckoutProcesses.Order;
public override Task<BasketValidationResult> ValidateAsync(BasketValidationContext context)
{
decimal minimumAmount = 50m;
if (context.Basket.TotalPrice < minimumAmount)
{
return Task.FromResult(BasketValidationResult.Failed(
$"Minimum order amount is {minimumAmount} {context.CurrencyId}"));
}
return Task.FromResult(BasketValidationResult.Succeeded());
}
}