Skip to main content
The list detail page renders a list as a standalone page on your store, outside of the drawer. It displays saved items with save buttons, variant selection, and quick buy actions, in one of two layouts set by layout: a responsive product grid, or a full-width row per item. The Swish admin doesn’t expose that choice for this view — it renders the grid unless you set layout in code. By default, the page is available at /apps/wishlist through the Shopify app proxy. Customers can reach it from shared list links or from navigation links you add to your store. For the in-drawer version of this view, see List detail.

How it works

On init, Swish looks for #wishlist-page in the DOM and replaces it with a list-detail-page element. On Shopify themes, the /apps/wishlist app proxy page provides this host element automatically. Headless storefronts (Hydrogen, Next.js, or custom storefronts) don’t have the app proxy, so add <div id="wishlist-page"></div> to the page yourself. The element reads query parameters to determine which list to display: If no query parameter is present, the page shows all of the customer’s saved items. The page opens with a header: the title, then the page’s actions. Which actions appear depends on the view: Share makes the list public if it isn’t already, then opens the device’s share sheet on mobile or copies the link elsewhere. Deleting the list from the menu returns the customer to all of their saved items. The account button’s menu offers the customer’s lists (where the drawer is on), their account page and sign out.

Configuration

Configure the page under ui.listDetailPage in your SwishOptions.
A sections array replaces the defaults, so include both sections when you set one.

list-items-grid

showBuyButton only reveals a button that the addToCartButton transform also allows. That transform defaults to true, so supply it only when you want to hide cart buttons for particular products — in either layout.
In card layout the product image renders square, rather than following the Global → Components → Product cards → Card image aspect ratio. A portrait image would make each row half again as tall and cut the number of items a customer sees at once, which is the reason to pick card layout in the first place.
showBuyButton controls the solid buy button beneath the card; showQuickBuyButton controls the floating quick-buy button over the card image. They are separate buttons and separate switches, both off by default. To hide quick-buy across every surface at once in code, use the store-wide ui.productCard.showQuickBuyButton switch, which overrides this one.

Page path

The default path is /apps/wishlist. If your store uses a custom path, configure it under context.routes:
The page path determines where shared list links point to and where drawer “view all” links navigate. Make sure the path matches an actual page on your store.

Shared lists

When a customer shares a list, Swish generates a URL with a public-list-id query parameter pointing to the list detail page path. Visitors who follow this link see a read-only view of the shared list. Shared list visitors can save items from the shared list to their own account, but cannot edit or remove items from the original list.

Further reading