Put your store on your own website
Every option below shows your live products. Customers always check out on print.peakbeak.com, where payment is taken by Stripe before anything is printed. You're paid for those sales the same way as sales from your store link. Replace your-store with your store link from the seller dashboard.
1. Any website (recommended)
Paste this where the products should appear. It loads a product grid that resizes itself to fit.
<div data-peakbeak-store="your-store"></div> <script src="https://print.peakbeak.com/embed.js" async></script>
You can place several stores on one page by adding more divs. The script only needs to be included once.
2. WordPress
- Download the plugin.
- Plugins → Add New → Upload Plugin, choose the zip, then Activate.
- Settings → Peak Beak Print: enter your store link and save.
- Add a Shortcode block to any page:
[peakbeak_store]
| Shortcode | What it does |
|---|---|
[peakbeak_store] | Your store from Settings |
[peakbeak_store store="another-store"] | A specific store |
[peakbeak_store mode="iframe" height="1200"] | Plain iframe, for sites that block outside scripts |
On WordPress.com plans that don't allow plugins, use a Custom HTML block with the code from option 1.
3. Wix, Squarespace and other site builders
Add an embed or code block (Wix: Embed HTML; Squarespace: Code block) and paste:
<iframe src="https://print.peakbeak.com/embed/?store=your-store" title="Shop" loading="lazy" style="width:100%;height:1200px;border:0"></iframe>
Change the height to fit how many products you have. Wix and Squarespace also accept the option 1 code.
4. JSON API
Build your own layout with a public, read-only endpoint. It requires no key, allows requests from any website (CORS), and is cached for 60 seconds.
GET https://us-central1-peak-beak-proposals.cloudfunctions.net/printStoreApi?store=your-store
Response
{
"store": { "name": "Acme Coffee", "slug": "acme-coffee", "bio": "…", "url": "https://print.peakbeak.com/s/acme-coffee/" },
"products": [
{
"id": "abc123",
"title": "Acme Logo Tee",
"description": "…",
"productType": "Unisex Heavy Cotton Tee",
"priceFrom": { "amountCents": 2499, "currency": "USD", "formatted": "$24.99" },
"colors": ["White", "Black"],
"sizes": ["S", "M", "L", "XL"],
"artworkUrl": "https://…",
"productImages": ["https://… (photos of the blank product)"],
"buyUrl": "https://print.peakbeak.com/s/acme-coffee/?item=abc123"
}
],
"embed": { "script": "https://print.peakbeak.com/embed.js", "iframe": "https://print.peakbeak.com/embed/?store=acme-coffee" },
"checkout": "Customers pay on print.peakbeak.com. Use buyUrl for each product."
}
Example
fetch("https://us-central1-peak-beak-proposals.cloudfunctions.net/printStoreApi?store=your-store")
.then(r => r.json())
.then(({ products }) => {
document.querySelector("#shop").innerHTML = products.map(p =>
`<a href="${p.buyUrl}"><img src="${p.productImages[0] || p.artworkUrl}" alt="">${p.title}: from ${p.priceFrom.formatted}</a>`
).join("");
});
Errors
| Status | Meaning |
|---|---|
| 400 | Missing or invalid store |
| 404 | No live store with that link (not set up, payouts not verified, or suspended) |
| 429 | Too many requests (limit: 300 per 15 minutes per visitor IP) |
Each error body is {"error": "message"}. Prices, products and availability can change, so don't store them for long. Orders can't be placed through the API: send customers to buyUrl.
Need help? hello@peakbeak.com