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.