@@ -16,22 +16,29 @@ export type CartGiftCardCodesUpdateFunction = (
1616 optionalParams ?: CartOptionalInput ,
1717) => Promise < CartQueryDataReturn > ;
1818
19+ /**
20+ * Updates (replaces) gift card codes in the cart.
21+ *
22+ * To add codes without replacing, use `cartGiftCardCodesAdd` (API 2025-10+).
23+ *
24+ * @param {CartQueryOptions } options - Cart query options including storefront client and cart fragment.
25+ * @returns {CartGiftCardCodesUpdateFunction } - Function accepting gift card codes array and optional parameters.
26+ *
27+ * @example Replace all gift card codes
28+ * const updateGiftCardCodes = cartGiftCardCodesUpdateDefault({ storefront, getCartId });
29+ * await updateGiftCardCodes(['SUMMER2025', 'WELCOME10']);
30+ */
1931export function cartGiftCardCodesUpdateDefault (
2032 options : CartQueryOptions ,
2133) : CartGiftCardCodesUpdateFunction {
2234 return async ( giftCardCodes , optionalParams ) => {
23- // Ensure the gift card codes are unique
24- const uniqueCodes = giftCardCodes . filter ( ( value , index , array ) => {
25- return array . indexOf ( value ) === index ;
26- } ) ;
27-
2835 const { cartGiftCardCodesUpdate, errors} = await options . storefront . mutate < {
2936 cartGiftCardCodesUpdate : CartQueryData ;
3037 errors : StorefrontApiErrors ;
3138 } > ( CART_GIFT_CARD_CODE_UPDATE_MUTATION ( options . cartFragment ) , {
3239 variables : {
3340 cartId : options . getCartId ( ) ,
34- giftCardCodes : uniqueCodes ,
41+ giftCardCodes,
3542 ...optionalParams ,
3643 } ,
3744 } ) ;
0 commit comments