Wishlist

Use fetchThemeWishlist, getThemeWishlistItems, addThemeWishlistItem and removeThemeWishlistItem for wishlist data and mutations. Product and wishlist controls can use the supported themeRuntimeProps attributes.

After a successful change, the SDK publishes the wishlist-updated event so other theme components can refresh consistently.

The theme owns the button icon, selected appearance, empty state, product-card layout and mobile behavior. It does not store a second wishlist in local storage or call a wishlist URL directly.

Test signed-out behavior, empty and filled wishlists, add, remove, repeated clicks, missing products, missing media and server rejection.