Skip to main content
Logo
Open App
Developer Reference

Recipe Widget Embed Parameter Reference

Every embed parameter the widget accepts, verified against the widget source — values, defaults, and which script version supports it.

This page is the exhaustive companion to the parameter table in each platform install guide: every parameter the widget reads, what it does, which script version(s) support it, and its default when omitted. If you just want a working embed for your platform, start with the install guide for your platform instead — come back here when you need the full contract.

Recommended default embed

Unless you have a specific reason to change it, start here: omit rows (infinite scroll reads better for a first install than pagination), and turn on ratings and catfilter so the gallery ships with social proof and a way to narrow a large catalog:

Recommended default (v2)

<!-- Crafted Pour SEO script (load first) -->
<script type="text/javascript"
  src="https://plugin.craftedpour.com/v2/scripts/crafted-pour-recipe-plugin-seo.js">
</script>

<!-- Crafted Pour recipe widget — recommended default -->
<script id="crafted-pour-recipe-plugin-script"
  src="https://plugin.craftedpour.com/v2/scripts/crafted-pour-recipe-plugin.js?plugin_id=YOUR_PLUGIN_ID&ratings=true&catfilter=true&primaryColor=B42B30">
</script>

Copy-paste snippets by mode

Gallery mode

A full cocktail gallery — the default rendering when no sku or product restricts it to one bottle. Use this on a dedicated recipes/cocktails page.

Gallery embed

<!-- Crafted Pour SEO script (load first) -->
<script type="text/javascript"
  src="https://plugin.craftedpour.com/v2/scripts/crafted-pour-recipe-plugin-seo.js">
</script>

<!-- Crafted Pour recipe widget — recommended default -->
<script id="crafted-pour-recipe-plugin-script"
  src="https://plugin.craftedpour.com/v2/scripts/crafted-pour-recipe-plugin.js?plugin_id=YOUR_PLUGIN_ID&ratings=true&catfilter=true&primaryColor=B42B30">
</script>

Product-page mode (via sku)

On an ecommerce product template, template the sku value (UPC preferred) so one snippet covers your whole catalog. Pair with rows=1 for a single swipeable row and ratings=true for that bottle’s community reviews:

Product page embed

<!-- Crafted Pour recipe widget — product page mode -->
<script id="crafted-pour-recipe-plugin-script"
  src="https://plugin.craftedpour.com/v2/scripts/crafted-pour-recipe-plugin.js?plugin_id=YOUR_PLUGIN_ID&rows=1&ratings=true&sku=YOUR_PRODUCT_UPC_OR_SKU&primaryColor=B42B30">
</script>

Ratings-only mode

The same script also runs as a standalone reviews widget — no recipe grid at all:

Ratings-only embed

<!-- Crafted Pour recipe widget — ratings-only, no recipe grid -->
<script id="crafted-pour-recipe-plugin-script"
  src="https://plugin.craftedpour.com/v2/scripts/crafted-pour-recipe-plugin.js?plugin_id=YOUR_PLUGIN_ID&ratings=true&recipes=false&primaryColor=B42B30">
</script>

Recipe deep-link (informational)

You do not construct these URLs by hand — the widget appends cp_rid (or, where available, cp_slug) automatically when a shopper clicks into a recipe. Documented here so the pattern is recognizable in your analytics, server logs, or Search Console:

Recipe detail URL pattern

<!-- A recipe card's own outbound link — the widget appends this automatically
     when a shopper clicks a recipe. You do not need to construct this by hand;
     it is documented here so the pattern is recognizable in analytics/logs. -->
https://yourdomain.com/your-recipes-page?cp_rid=RECIPE_ID

<!-- Slug-addressed form, used internally by the recipe-detail view -->
https://yourdomain.com/your-recipes-page?cp_slug=recipe-name-slug

Full parameter reference

All parameters are optional. Chain them with & after the ? in the script src. Color values are 6-digit hex without the # prefix — a # starts a URL fragment, silently truncating everything after it.

ParameterValues / formatWhat it doesv1v2Default
plugin_idstring (Crafted Pour plugin document ID)Identifies your widget configuration. On your live site the widget resolves your configuration by matching the page hostname against the domains registered with Crafted Pour; plugin_id is the explicit binding used where hostname matching is not possible (previews, staging pages) — include it anyway, since it is how we identify your embed when troubleshooting.YesYesnone
rowsinteger, e.g. rows=2Caps the gallery to a fixed number of rows with prev/next paging arrows. Omit for an infinite-scroll gallery. Use rows=1 on product pages for a single swipeable row.YesYesunset (infinite scroll)
featuredfeatured=trueCurated FEATURED recipes — hand-picked seasonal recipes photographed with your product, managed per brand in the CMS. Behavior differs by version: on v2, galleries already show a FEATURED rail above the grid by default when curated content exists (this param just forces it); on v1, featured=true replaces the gallery with a featured-only single-row carousel — leave it off on gallery pages.Yes (replaces gallery)Yes (rail above gallery)false (v2 rail: on by default)
recipesrecipes=falseSet to false to hide the recipe grid entirely. Combine with ratings=true for a ratings-only embed.YesYestrue
ratingsratings=trueShows the community product-ratings section (creator tasting notes and star ratings). Designed for single-product pages; also usable standalone with recipes=false.YesYesfalse
catfiltercatfilter=trueAdds a category (cocktail/spirit-type) filter dropdown. filters=true is an equivalent alias found in older embeds.YesYesfalse
brandfilterbrandfilter=trueAdds a brand selector — for multi-brand plugins (portfolios, groups, and retailers).YesYesfalse
productfilterproductfilter=trueAdds a product filter. Renders as a dropdown or as visual product-image pills depending on the brand’s partner-level filter style setting.YesYesfalse
brandstring (Crafted Pour brand ID); repeatableRestricts the gallery to one or more specific brand IDs. Omit to use every brand registered on the plugin document — this is what makes a multi-brand retailer embed show its whole stocked catalog by default.YesYesunset (all plugin brands)
productstring (Crafted Pour product ID); repeatableRestricts the gallery to one or more specific product IDs. Use sku instead when you have a UPC/SKU to match on — product is for the cases where you already have the Crafted Pour product ID on hand.YesYesunset
skustring (UPC preferred, or SKU); repeatableMatches a product by UPC or SKU and resolves it to the underlying product ID for you — the standard way to wire a product-detail-page template (Liquid, Twig, JSX) without hardcoding Crafted Pour product IDs.YesYesunset
rtagstring (a recipe tag / cocktail type, e.g. rtag=Margarita); repeatableFilters the gallery to recipes carrying the given tag(s). Applies in the infinite-scroll (no rows=) mode.YesYesunset
primaryColor6-digit hex, no #, e.g. primaryColor=B42B30Main accent color — recipe card headers, pagination arrows, progress bars, buttons.YesYes93442F
color6-digit hex, no #Alias for primaryColor, fully supported (not deprecated) — many live installs use it. If both are present, primaryColor wins. Prefer primaryColor on new installs.YesYes93442F
secondaryColor6-digit hex, no #Background for ingredient-section borders, contributor boxes, and tag chips.YesYesFFFFFF
backgroundColor6-digit hex, no #Widget container background.YesYestransparent (inherits page background)
textColor6-digit hex, no #Main text color across recipe names, ingredients, instructions, and contributor bylines.YesYes000000
textPositiontextPosition=bottomMoves the recipe name and creator credit below each photo instead of overlaid on it — a cleaner look on minimal site designs.YesYesoverlay
recipeItemBorderrecipeItemBorder=0Set to 0 for square recipe-card corners. Omit for the default rounded cards.YesYesrounded
cp_ridstring (recipe ID) — output/navigation param, not one you hand-authorSet automatically when a shopper clicks a recipe card, to open that recipe’s detail view. Recognizable in your analytics as the signature of a recipe-detail pageview.YesYesn/a (set by the widget)
cp_slugstring (recipe slug) — output/navigation paramSlug-addressed equivalent of cp_rid, used internally by the recipe-detail view when a slug is available.YesYesn/a (set by the widget)

Partner-level behavior that is not an embed parameter — editor’s notes, smart product placement (competitor masking), generic-recipe inclusion, and filter style — is configured per brand in the CMS instead. See the Partner Settings guide.

SEO script tag

The recipe gallery and the SEO content are two separate script tags, and the order matters — the SEO script goes first, on the same page, as shown in every snippet above:

SEO script (load before the widget script)

<script type="text/javascript"
  src="https://plugin.craftedpour.com/v2/scripts/crafted-pour-recipe-plugin-seo.js">
</script>

It server-renders each recipe’s title, ingredients, instructions, and AI-sommelier editor’s note directly into the page HTML before any JavaScript runs, plus Recipe structured data (JSON-LD) with aggregate star ratings — so crawlers index real content on your domain instead of an empty widget shell, and your pages become eligible for Google’s rich results.

Always close the script tag explicitly — never self-close it. A self-closing <script … /> is invalid HTML5. Browsers recover by treating everything up to the next real </script> (or end of document) as part of the script’s content, which can silently swallow the rest of your page’s <head> — including your title and meta tags. This has broken real partner installs in the past.

Invalid — do not do this

<!-- INVALID HTML5 — do not do this -->
<script id="crafted-pour-recipe-plugin-script"
  src="https://plugin.craftedpour.com/v2/scripts/crafted-pour-recipe-plugin.js?plugin_id=YOUR_PLUGIN_ID" />

Valid

<!-- Always close with an explicit tag -->
<script id="crafted-pour-recipe-plugin-script"
  src="https://plugin.craftedpour.com/v2/scripts/crafted-pour-recipe-plugin.js?plugin_id=YOUR_PLUGIN_ID">
</script>

How to know it worked

  1. The gallery renders. Open the published page — you should see a grid of recipe cards with photos and a “Powered by Crafted Pour” badge. If you enabled featured=true, a FEATURED rail leads the page.
  2. Cards open recipe pages on your domain. Click any recipe — the URL should stay on your site and gain ?cp_rid=…, showing the full recipe with your product linked in the ingredients.
  3. Your products are shoppable. On a recipe that uses your product, the ingredient should link out with your “shop” call-to-action (competitor names masked if smart product placement is on).
  4. SEO content is being served. On a recipe page (with cp_rid in the URL), use View Source and search for recipe-seo-content or the recipe name — it should appear in the raw HTML.
  5. No console errors. Open your browser's developer tools (F12) → Console. A healthy install logs Recipe widget loaded with no red errors.

Want the platform-specific walkthroughs (WPCode snippets, Shopify Liquid templates, Squarespace code injection, and more)? See all install guides. Curious what the widget does end to end? See the full feature tour.

Install it free — or let us do it for you

Everything on this page is free to self-install with your existing widget. Prefer white-glove? We offer paid installation — custom styling, placement, and theme work included — so it is live on your site without you touching a line of code.

Request Paid InstallationAsk a Question