Skip to main content
Codebeans Wishlyst works with any Online Store 2.0 theme without code changes. When a theme does something unusual, or when you want full control over the markup, this section shows you how the pieces fit together and where you can hook in.

How it is built

Theme app extension

Two app embeds (Wishlist Engine and Wishlist icon) and two app blocks (Add to Wishlist Button and Shopy Wishlist Page). They load the storefront scripts and styles.

App proxy

Every storefront request goes to /apps/cbwishlist/* on the shop’s own domain. Shopify signs it and forwards it to the app.

Customer account extensions

Wishlist Account and Shared Wishlist Account add wishlist pages to the new Shopify customer accounts.

Shop metafields

Widget settings, feature toggles and custom templates are stored as app-owned shop metafields, so Liquid can read them on first paint.

Ways to extend it

Manual placement

Put the button, collection hearts, wishlist page, nav menu and cart button exactly where you want them.

JavaScript API & events

Listen for wishlist changes, re-scan the page after AJAX updates, and debug placement.

Custom page templates

Rewrite the wishlist page markup with EJS templates and your own CSS.

REST API

Build wishlists into a headless storefront or a mobile app.

Shopify Flow

Start Flow workflows when a shopper adds an item to a wishlist.

AI assistants (MCP)

Let Claude and other MCP clients read your wishlist data.

Storefront request flow

The app reads the customer from the signed app-proxy request, never from IDs the browser sends. A logged-in shopper cannot read or change another customer’s wishlist by editing a request.

Shop metafields

All metafields live in the app-owned namespace $app.
These metafields belong to the app. Change them from the Codebeans Wishlyst admin, not by writing to them directly. The app overwrites them whenever settings are saved.