Feature: Sell from blog posts

Turn every blog post into a sales page.

Drop a single-product widget into any paragraph of any post. Readers see the product, buy in-place, keep reading. No detour to a separate shop page. No "click here to visit our store." The sale happens where the intent was created.

14-Day Free Trial
No Credit Card
0% Platform Fees
Works on every blog platform
Inline
In any post
1
Embed snippet
Full
Checkout
0%
Platform fees
Live on this page

Inline. In-post. In action.

Drop a single-product widget where you would mention a product in a blog post. This one is the catalogue variant, but the mechanic is the same.

Try each widget shape →
yoursite.com
Live
The problem

Most ecommerce wants readers to stop reading and go to the shop.

A product review linking to a separate storefront loses most of the conversion momentum the review itself built. By the time the reader lands on the product page, half the context has been dropped. Inline is how you keep it.

01

Content creates the buying intent.

A reader hits your product review, tutorial, or comparison post with question already formed. The moment they want to buy is the moment they finish reading your paragraph about it. That is where the widget should be.

02

Redirects leak attention.

Sending a reader to a separate shop URL loses a meaningful slice of them to browser distraction, tab-switching, and the "I'll come back later" that mostly means never. In-post widgets remove the gap.

03

Your blog is your top SEO asset.

Content sites rank. A product review ranks for long-tail intent queries that product-listing pages rarely do. Putting the product INSIDE the post means the ranking page becomes the conversion page.

How it works

One snippet for the site. One tag per product mention.

Paste the loader script once in your blog's theme. Then anywhere you mention a product inline, drop a single HTML tag with the product ID. The widget auto-mounts on render.

The embed

A single-product widget, dropped inline.

The loader script goes in your blog's theme header (one-time install). Every time you write a post that mentions a product, you add one HTML tag in the content where you want the product to appear. The widget renders with the image, price, variant selector, and add-to-cart button, all inline, all inside the post. Readers never leave.

  • One-time loader install in the blog theme
  • One inline HTML tag per product mention in a post
  • Cart persists across posts and pages, readers can add several products as they read
✦ shop.html
shop.html
1<!-- Add once, anywhere on your site -->
2<script src="https://cdn.shoprocket.io/loader.js" data-pk="pk_…"></script>
3 
4<!-- Drop this where products should render -->
5<div data-shoprocket="catalog" data-embed-id="emb_…"></div>
6// That's it.
2 tagsReady
</>
Common patterns

Three ways blog-first commerce wins.

Not every post needs a product widget. These three patterns are where the approach beats sending readers to a separate shop.

01

Product reviews.

You reviewed the thing. Readers want to buy it. The widget sits at the end of the review, already loaded, one click from cart. No "visit our shop" friction.

02

Tutorials and how-to posts.

You teach someone how to do something. The post mentions the tools or materials needed. Each one gets an inline widget, so the reader can buy the whole kit as they read. Checkout once at the end.

03

Comparison articles.

Three products compared. Each comparison section carries the relevant widget. Readers pick the one you argued for and check out, or start a cart with two candidates and decide at checkout.

04

Roundups and gift guides.

A curated list of 10 products. Each entry has its own inline widget. A single post becomes a seasonal landing page that converts.

05

Launch announcements.

New product drop. The announcement post itself carries the buy button, not a "Shop now" link somewhere lower. First paragraph to cart in under a minute.

06

Newsletter archive pages.

If your newsletter has a web archive (Ghost, Substack publication home, Buttondown archive), inline product widgets live there too. Subscribers land on the archive months later, widgets still work.

Works where you blog

If your blog allows HTML, it allows Shoprocket.

Every serious blog platform supports inline HTML or a custom HTML block. Here is the honest state of each.

01

Ghost.

Native HTML card in any post. Perfect fit for creators running publications with paid tiers or ecommerce alongside content. A two-minute install.

02

WordPress.

Custom HTML block (Gutenberg) or a Classic-editor HTML section. Works with every theme and every page builder (Elementor, Divi, etc.). No WooCommerce needed.

03

Webflow CMS.

Embed element placed inside a CMS collection template, or inside a rich-text field. Product widgets render per-post based on a CMS field holding the product ID.

04

Static sites (Jekyll, Hugo, Astro, 11ty).

Drop the loader script in your layout. Use a shortcode or raw HTML in markdown to embed per-post widgets. Works with Netlify, Vercel, Cloudflare Pages, anywhere you host.

05

Substack and Medium.

Both block arbitrary HTML in posts to protect their platforms. The honest workaround: use a Shoprocket hosted storefront or a Ghost / WordPress blog where you own the content and the commerce.

06

Notion (via Super.so / HeyNotion).

Raw Notion published pages don't allow HTML. Wrapper services (Super.so, HeyNotion) turn a Notion site into a real site that does, and the widget works inside embeds there.

Common questions

Blog-commerce questions, answered.

What we hear from creators and bloggers thinking about monetising their content.

Does the cart persist across posts? If a reader adds from two different articles, can they check out once?+
Yes. The cart lives in the visitor's session, not the page. Add from Post A, browse to Post B, add another product, check out once with both. The floating cart icon appears on every page with the loader installed, so readers see their cart status everywhere on your blog.
Will the widget slow down my blog?+
No meaningful impact. The loader script is async, so it does not block your blog from rendering. Each widget lazily mounts into its reserved container, so there is no cumulative layout shift. Blogs that passed Core Web Vitals before the install pass them after.
Can I use one widget template across many posts (e.g. "my top 3 products")?+
Yes. Put the HTML in a snippet / partial / template include (Ghost dynamic member tier, WordPress reusable block, Hugo partial, etc.) and reference it from any post. The widget auto-mounts each copy.
What about RSS feeds and email newsletters? Do widgets work there?+
No. RSS readers and email clients do not run third-party JavaScript (and should not). Your RSS feed will show a link to the post instead of the embedded widget, which is the standard behaviour for any interactive content. The conversion happens when the reader clicks through to the post itself.
How do I know which product ID to embed?+
Every product in your Shoprocket dashboard has a unique ID. The product page shows the embed snippet ready to paste, so in practice you open the dashboard, find the product you are writing about, copy the snippet, paste into your post.
Can readers check out without leaving my post?+
Yes. Cart, addresses, and shipping selection run inside the embed on your post. The final payment step uses a hosted redirect to the processor (Stripe, PayPal) for PCI compliance, then returns the reader to a confirmation on your site. Same flow as a dedicated shop page.
What if my post is on a paid / members-only tier?+
The widget does not care. If your Ghost / Substack / Patreon paywalls the post itself, only paying members see the widget. If the post is public, everyone sees it. The widget respects whatever visibility your blog platform enforces.
Can I track which blog posts drive which sales?+
Yes. Shoprocket's analytics captures the referring page for every cart and order. You see which blog post a conversion originated on, which products that post sold, and over what time. Good for identifying which content is pulling its weight.
Is Shoprocket really 0% platform fees?+
Yes. Your payment processor (Stripe, PayPal, etc.) still charges their standard processing fee, that is the cost of moving money, but Shoprocket adds nothing on top. 0% platform fees applies to every plan, every embed, every blog.

Where readers are is where buyers are.

14-day free trial. No credit card. Paste one loader, drop inline widgets anywhere in your content.