Home > widget-integration > CartDrawerRecommendationService > sortVariantsByAvailability

CartDrawerRecommendationService.sortVariantsByAvailability() method

Sort variants so that available (in-stock) variants come first.

This ensures the default variant selection (first in the list) prioritizes in-stock variants, preventing users from being defaulted to an OOS variant.

Override this method to customize variant sort order.

Signature:

protected sortVariantsByAvailability(variants: RawRecommendationVariant[]): RawRecommendationVariant[];

Parameters

Parameter

Type

Description

variants

RawRecommendationVariant[]

Raw variants from product

Returns:

RawRecommendationVariant[]

Variants sorted with available ones first, preserving original order within each group

Example

Override to also sort by price within each availability group:

window.boostWidgetIntegration.extend('CartDrawerRecommendationService', (Base) => {
  return class extends Base {
    sortVariantsByAvailability(variants) {
      return super.sortVariantsByAvailability(variants)
        .sort((a, b) => {
          if (a.available === b.available) return (a.price || 0) - (b.price || 0);
          return 0;
        });
    }
  };
});