The Problem: Your Customers Are Already Sharing Products, Just Badly
Every store has the same moment. A customer finds three products they love, screenshots the page, texts it to a friend, and the friend has no idea what they are looking at. No link. No product name. No price. No way to buy.
You already have a wishlist on your store. But that wishlist only lives inside the customer’s account. They cannot send it to anyone. They cannot text it. They cannot post it. The wishlist is a private list that goes nowhere.
A wishlist share link fixes this. It turns a private list into a shareable URL that opens on any device, shows every product with images and prices, and lets the friend click straight through to the product page. No login required. No plugin needed. You can build this with a single page template and a URL parameter.
What You Are Building
A dedicated page on your store that reads a wishlist ID from the URL, pulls the products from your store’s database or a simple JSON file, and displays them as a clean, shoppable gallery. The customer copies the URL, texts it, and the friend sees exactly what was saved.
Step 1: Create the Share Page Template
In your Shopify theme (or whatever platform you use), create a new page template called wishlist-share. This page will not require a login. It reads a query parameter from the URL to know which wishlist to display.
In Shopify, go to Online Store > Themes > Edit Code > Templates and create a new template called page.wishlist-share.liquid. If you are on WooCommerce, create a custom page template in your theme folder. On Squarespace, use a code block on a new page.
The key principle: this page is public. Anyone with the URL can see it. That is the point.
Step 2: Read the Wishlist ID From the URL
When a customer shares their wishlist, the URL will look like this:
yourstore.com/pages/wishlist-share?list=abc123
The list parameter is a unique identifier for that wishlist. In your template, grab it with:
const wishlistId = new URLSearchParams(window.location.search).get('list');
If there is no list parameter, show a friendly message: “No wishlist found. Ask your friend to share their list with you.”
Step 3: Store Wishlist Data as JSON
You do not need a database for this. Use a simple JSON structure stored in a file on your server, or in Shopify metafields, or in a Google Sheet connected via a simple API.
The JSON structure looks like this:
{"abc123": [{"id": 12345, "title": "Ceramic Mug", "price": "$24", "image": "mug.jpg", "url": "/products/mug"}, {"id": 12346, "title": "Linen Napkins", "price": "$18", "image": "napkins.jpg", "url": "/products/linen-napkins"}]}
Each wishlist has a unique ID (generate a random 6-character string when the customer creates their list). The array contains the products they saved.
Step 4: Build the Gallery Display
Now write the HTML and CSS to display the products. Keep it clean: a responsive grid, product image, title, price, and a “View Product” button. No clutter. No sidebars. No popups.
The layout should work on mobile first, because most people will open the shared link on their phone. Use a 2-column grid on mobile and 3-4 columns on desktop.
Each product card should have:
- Product image (square crop, consistent aspect ratio)
- Product title
- Price
- A button linking to the full product page
The friend who receives this link should be able to scan all products in under 10 seconds and click through to buy any of them.
Step 5: Add the Share Button to the Wishlist Page
On your existing wishlist page (where logged-in customers see their saved items), add a “Share List” button. When clicked, it:
- Generates the share URL with the wishlist ID
- Copies it to clipboard
- Shows a “Copied! Send this link to a friend” message
- Optionally opens the native share sheet on mobile (
navigator.share())
The JavaScript for this is about 15 lines:
const shareUrl = window.location.origin + '/pages/wishlist-share?list=' + wishlistId;
navigator.clipboard.writeText(shareUrl).then(() => { showToast('Link copied! Send it to a friend.'); });
On mobile, use navigator.share() if available to open the native share sheet, which lets the customer text it directly.
Step 6: Add a Personal Note Field
This is the detail that makes it feel human. Let the customer attach a short note to their shared list. Store it in the JSON alongside the products:
{"abc123": {"note": "These are the things I want for my birthday. No rush. Love you.", "items": [...]}}
Display the note at the top of the share page in a highlighted box. The friend sees the products and the message together. It turns a product list into a gift hint.
Step 7: Track Shares Without Being Creepy
Add a simple counter to the JSON: every time the share page is loaded, increment a views number. Do not track who viewed it. Do not collect emails. Just count opens so the customer knows their friend actually looked.
Display “This list has been viewed X times” on the customer’s wishlist dashboard. That is enough data to be useful without being invasive.
What Not to Do
- Do not force the friend to create an account to view the list. That kills the click.
- Do not show “recommended products” on the share page. The customer curated this list. Respect it.
- Do not add a countdown timer or urgency messaging. This is a shared wishlist, not a flash sale.
- Do not make the URL guessable. Use a random 6-character ID, not a sequential number.
How Long This Takes
If you are comfortable editing your theme files: about 45 minutes. The share page template is one file. The share button is 15 lines of JavaScript. The JSON storage is a simple file. The CSS is a responsive grid you have probably written before.
If you are on Shopify and want to skip the code entirely, you can use a page builder app to create the share page visually. But the custom route gives you full control over the layout and costs nothing.
Why This Works
Wishlist sharing turns your existing customers into a distribution channel. Every shared link is a warm introduction to your store from someone the recipient already trusts. The conversion rate on a friend’s recommendation is higher than any ad you will ever run.
The best part: you are not building anything new. Your customers already have wishlists. You are just making them portable.
Want more like this? Join MOKU Club for free. Weekly resources, early access to new guides, and occasional templates you can actually use. Join below.


