WordPress Shopify Integration: Sell on Your WP Site
Five ways to connect Shopify and WordPress — Sell on WordPress, Buy Button, ShopWP, headless Storefront API and subdomain hybrid — with costs and SEO notes.
Updated ·31 min read·
Listen to a short brief of this article
Hands-free while you multitask
Full article podcast:
0:00 / 15:05
Key Insights in 60 Seconds
Five methods, three budget tiers, one consistent rule: keep content in WordPress, keep commerce in Shopify. Skim the takeaways, then dive into the method that fits.
Five integration paths exist — from a 10-minute plugin to a full headless Storefront API build.
Sell on WordPress is the default — Shopify's free plugin, built on Storefront Web Components.
Year-1 cost ranges from $648 to $5,148 — Basic plus shared hosting at the low end, headless dev time at the high end.
SEO depends on the method — a custom Storefront API build controls its own markup; Buy Button is a JavaScript embed.
Performance cost varies by method — test each option with WebPageTest before committing.
Checkout always lives on Shopify — even on Plus. Plan domain, redirects, and cross-domain analytics around it.
What You'll Learn
1When to integrate vs migrate vs stay separate
2All 5 integration methods, step by step
3Real Year-1 cost ranges for every approach
4SEO and performance considerations by method
5Tax, shipping and checkout split
6Common pitfalls and how to avoid them
What's New Since Publication: Updated since publication · 3 changes
Shopify closed the Starter plan to new stores
Shopify's plan page now states that the $5 Starter plan "isn't available to new stores." The Buy Button row of the year-1 cost table was priced on Starter, at $5 a month; with Starter closed, that method carries the same Basic subscription as every other row, so its year-1 total is $648 rather than $240. Shopify publishes no date for the change.
As of June 30, 2026, Shopify Scripts has been deprecated: Scripts that were still published on a store have been deactivated and no longer work, and Shopify points merchants to Shopify Functions instead. The checkout section no longer lists adding scripts on Shopify Plus.
Shopify Tax moved new stores to a lifetime sales threshold
For stores created on or after May 13, 2026, Shopify Tax is free until the store reaches a lifetime threshold of sales; stores created before that date keep the annual threshold. The tax card in the checkout section now describes both.
If you came here for one answer, here it is. Match your situation to a row, then jump straight to that method's section. Everything below this block is the "why" behind these picks.
If your business doesn't fit any row above, jump to the decision quiz — it weights skill, catalogue size, budget, design needs, and traffic stage to route you to one of three buckets.
Why Combine Shopify and WordPress at All
Key takeaway
WordPress powers roughly 40% of all websites as of September 2026, including most blogs, knowledge bases, and content-heavy brand sites. Shopify dominates serious commerce — millions of stores worldwide and the highest-converting hosted checkout in the industry. The natural question for any growing WordPress business is: do I rebuild on Shopify, bolt on WooCommerce, or integrate the two?
For most teams, integration is the right answer. You already have authority, traffic, and editorial workflows on WordPress. You don't need to throw those away to start selling. You just need a clean way to expose Shopify products on the WP front-end, send shoppers to Shopify's checkout, and keep the data in sync. That's exactly what the five methods in this guide cover.
If you're still weighing the platforms head-to-head before integrating, our Shopify vs WordPress comparison covers the cost and conversion math.
5 methods
From plugin to headless
$648–$5.1K
Year-1 cost range
10 min–4 wk
Setup time range
The mental model: two platforms, one customer journey
Think of WordPress as the storefront of a building (windows, signage, content) and Shopify as the cash register and warehouse behind it. The customer browses on WordPress — reads your guide, sees a product card — then walks to the register (Shopify checkout) to pay. Inventory, orders, and money live in Shopify. SEO, content, and brand voice live in WordPress. Done well, the customer never notices the seam.
Three concrete scenarios where integration beats both alternatives:
Content brand selling merch. A 5-year-old WP blog with strong rankings adds a shop. WooCommerce would dilute focus and slow the site; full migration would torch the SEO. Sell on WordPress plugin or Buy Button is the right answer.
Agency with productized services. Marketing site on WP, but selling templates, audits, or training packages. A few Buy Buttons embedded on landing pages handle commerce in 30 minutes, no rebuild required.
Established Shopify store launching a content arm. Reverse case — Shopify on shop.brand.com, new content site on brand.com via WordPress. Storefront API powers a "shop the look" widget on blog posts.
The 5 Integration Methods at a Glance
Key takeaway
Before we dive into each method, here's the side-by-side that helps you skip ahead:
Integration Methods Compared
Method
Setup
Skill
Min Plan
SEO
Best For
Sell on WordPress
~30 min
None
Basic $39
Not stated by Shopify
Most WP sites — official, free, modern
Buy Button (JS)
~10 min
None
Basic $39
JS embed
Single embeds, landing pages, blog CTAs
ShopWP plugin
~1 hr
Low
Basic $39
Partial
Shortcodes, collections, search, third-party UX
Storefront API (headless)
1–4 wk
High
Any plan
Yes (custom)
Pixel-perfect UX, large catalog, dev team
Subdomain hybrid
~2 hr
Low
Basic $39
Yes (Shopify SEO)
Existing brand split: content + full store
Editorial scoring synthesised from official Shopify dev docs and public plugin reviews.
Pick Your Method in 5 Questions
Key takeaway
If your situation doesn't obviously match a method above, run the quiz. It weights the answers that drive most regret in WP+Shopify projects: underestimating dev cost, picking a method that breaks SEO, or paying for flexibility you'll never use.
Which Integration Method Fits You?Five questions, one recommendationStart the quiz
Which Integration Method Fits You?Five questions, one recommendation
Question 1 of 5
What's your technical comfort level?
Method 1: Sell on WordPress Plugin (Recommended Default)
Key takeaway
Launched on the Shopify App Store on September 15, 2025, the Shopify plugin for WordPress (also branded "Sell on WordPress") is Shopify's first-party answer to the integration question. It pairs a Shopify sales channel (installed in your Shopify admin) with a free WordPress plugin (installed in your WP admin). Once both are connected, the block editor gains Shopify blocks, including Add a Shopify product and Add a Shopify collection, so you can place Shopify products on WordPress pages and posts.
The plugin is built with Shopify Storefront Web Components, which query the Storefront API to show product cards, quick view modals, product detail pages and collections. With the plugin's Shopify links rewrites turned on, each product and collection URL opens on your public WordPress domain.
“Shopify’s Sell on WordPress sales channel lets you sell products directly on your WordPress site. Built and supported by Shopify, this sales channel will seamlessly add products from Shopify to WordPress pages, and manage sales from your Shopify admin.”
In your Shopify admin, go to Settings → Sales channels → Shopify App Store, search for "Sell on WordPress", and install it. This is free and adds a new channel to your Shopify dashboard.
2
Install the WordPress plugin
Download the Shopify plugin zip from Shopify, open Plugins in your WordPress admin, click Upload plugin, choose shopify-plugin.zip, then click Activate. Requires WordPress 5.0+ with the Block Editor and Site Editor (the Classic Editor isn't supported) and PHP 7.4+.
3
Connect the two
In Shopify admin, go to Settings > Sales channels > Sell on WordPress and copy the Shopify access token. In WordPress, open Shopify plugin > Settings > General, paste it into the SHOPIFY ACCESS TOKEN field, and click Connect.
4
Pick which products to sync
In Shopify, make the products and collections you want on WordPress available in the Sell on WordPress sales channel; a product that is unavailable there isn't displayed on your WordPress site. You can sync all products or curate a subset — useful if your full catalog has 1,000+ SKUs but only 50 belong on the WP site.
5
Add product blocks to pages
Edit a WordPress page, open the Blocks tab, search for Shopify, and click Add a Shopify product or Add a Shopify collection; for a collection, choose how many products show per row and per page.
6
Test the checkout flow
Click Add to Cart on a published page. The cart drawer opens on your WP site. Click Checkout — you're redirected to Shopify's hosted checkout (yourstore.myshopify.com or your custom checkout domain). Complete a test order; verify it appears in Shopify Orders and the customer lands on a confirmation page.
Brand the checkout for continuity
Visitors will jump from yourdomain.com (WP) to checkout.yourstore.com (Shopify). Apply your logo, fonts, and colors in the checkout and accounts editor (Shopify admin → Settings → Checkout → Edit). Add your favicon. With Checkout Extensibility, you can match the checkout to your WordPress design closely enough that most visitors won't notice the redirect.
WordPress-Domain URLs
Link rewrites
Turn on Shopify links rewrites in the plugin's Advanced settings, save your Permalinks, and each product and collection URL opens on your public WordPress domain.
Free to Install
No premium plugin tier
Both the Shopify channel and the WordPress plugin are free. You pay for your Shopify plan and WP hosting, and third-party payment providers still carry your plan's transaction fee.
Product and Collection Blocks
Product, collection
Add a single product to a page or post, or show a collection as a product grid with a set number of products per row and per page.
Mobile-First Cart
Responsive drawer
The cart drawer adapts to mobile viewports automatically. Persists across page navigation via localStorage. Add items from multiple pages, check out once.
PCI Outsourced
Shopify owns compliance
Card data never touches your WP server. Shopify is PCI DSS Level 1 certified — the highest tier. Chargebacks remain your responsibility — Shopify isn't liable for them.
Unified Analytics
All orders in Shopify admin
Sales attributed to the Sell on WordPress channel show up alongside other channels (online store, POS, social) in your Shopify reports. One source of revenue truth.
Limitations to know before you commit
Shopify's Sell on WordPress help articles don't cover B2B catalogs, subscriptions, or market-specific pricing, so test those flows on a staging site before you commit. For B2B-heavy catalogs, use the subdomain hybrid or the Storefront API; for subscription-heavy catalogs, use ShopWP Pro or the Storefront API.
Method 2: Shopify Buy Button (Single Embeds)
Key takeaway
The Buy Button channel predates Sell on WordPress by years. It's still useful — particularly when you want a single product or a small collection embedded inline within an article, not as a dedicated shop page. The setup generates a self-contained <script> tag you paste into any HTML, including a WordPress Custom HTML block, a page builder element, or even a third-party email tool.
Performance is solid: the BuyButton.js library plus its JS Buy SDK dependency load asynchronously and the card renders after first paint. Async loading means it doesn't block your LCP. The downside is SEO — the product is injected by JavaScript after load, so don't count on it for organic discovery. Use Buy Button for conversion, not for organic discovery.
Setup in Five Steps
Key takeaway
1
Install Buy Button channel
In Shopify admin, install the Buy Button channel from Settings → Sales channels.
2
Generate an embed
Click Buy Button channel → Create a Buy Button. Pick a product or collection. Choose layout (basic, classic, or full view), customize colors, button text, and cart behaviour. Preview live before generating.
3
Copy the code
Click Next → Copy code. You get a single <script> tag containing the BuyButton.js initialization with your store URL and product ID.
4
Paste into WordPress
Open the WordPress page or post. Add a Custom HTML block (or use Classic Editor's Text tab). Paste the snippet exactly. Save and preview — the product card renders inline.
5
Test cart persistence
Add the same product on two different pages. Click Add to Cart on both. Open the cart drawer — both items should appear (cart state persists in localStorage). Test checkout end-to-end.
The generated code looks roughly like this (truncated):
Sample Buy Button embed (paste into Custom HTML block)
Use Buy Button when you want a single product call-to-action inside a long-form blog post ("Buy this guide", "Get the workshop ticket") without the visual weight of a full Gutenberg product block. It's also the right tool for embedding in email tools (ConvertKit, Substack) and third-party landing page builders that don't run WordPress. For everything else on WP, use Sell on WordPress. And if the question underneath is whether an embed is enough at all, Buy Button vs a full online store works through what each one can and cannot carry.
Method 3: ShopWP Plugin (Shortcodes & Power Users)
Key takeaway
ShopWP (formerly WP Shopify) is the most established third-party Shopify-WordPress plugin, in active development since 2017. Its appeal is breadth: you get shortcodes for every page builder, dynamic collection pages with sorting and filtering, customer accounts inside WordPress, and template overrides for every product element.
Test ShopWP's effect on your page speed before launch, and soften it with WP Rocket or similar caching and lazy-loaded product grids below the fold.
Setup in Five Steps
Key takeaway
1
Install ShopWP
Buy ShopWP Pro at wpshop.io (Standard plan: $199/year for up to 3 WordPress sites) and install it with your license key. The free ShopWP plugin's WordPress.org page asks users to upgrade to ShopWP Pro to continue using the plugin.
2
Connect to Shopify
From ShopWP, you're redirected to the Shopify app page; click Install and review the permissions the app will need.
3
Sync products
Click Sync Now. ShopWP pulls all products into a local WordPress cache for fast rendering. Re-sync nightly via cron or trigger on Shopify webhooks (Pro feature).
4
Drop shortcodes anywhere
Use [shopwp items='products'] for a grid, [shopwp items='collection' slug='summer-2026'] for a collection page, [shopwp items='product' id='123'] for a single product. Works in Gutenberg, Elementor, Divi, Beaver Builder.
5
Customize templates
Pro license includes template overrides — copy ShopWP's React components into your theme and edit. Requires JavaScript skills. Without overrides, you're limited to the default UI plus CSS tweaks.
The free ShopWP plugin no longer works
The free ShopWP plugin's WordPress.org page asks users to upgrade to ShopWP Pro to continue using the plugin, so budget $199/yr from day one. If Pro's features don't earn that, the official Sell on WordPress plugin is free.
Method 4: Headless via Storefront API (Maximum Control)
Key takeaway
The headless route is what serious dev teams pick when none of the above is flexible enough. Instead of relying on a plugin to render product cards, you write your own queries against the Storefront API and inject the data into WordPress templates (PHP), a Gutenberg block (React), or a separate front-end framework like Next.js that renders WordPress + Shopify together.
Why pay for that complexity? Three reasons: complete control over markup (good for unusual layouts and accessibility audits), server-side rendering on whatever stack you choose, and the ability to mix Shopify product data with WordPress custom fields, ACF data, or external APIs in the same template.
“The Storefront API is a GraphQL API that requires an access token associated with a specific Shopify store. You can call the API from any HTTP client. You can have a maximum of 100 active storefronts and access tokens per shop. The Shopify API is framework agnostic. You can build using your framework of choice, such as Hydrogen, Next.js, Vue, and more.”
Shopify Developer Documentation — Getting started with the Storefront API — Shopify.dev · View source (shopify.dev)
Setup in Six Steps
Key takeaway
1
Get Storefront API access tokens
Install the Headless channel from the Shopify App Store and click Create storefront to generate public and private Storefront API access tokens.
2
Choose your render layer
Option A: PHP fetch directly from WordPress templates (simplest). Option B: Custom Gutenberg block in React (more flexible). Option C: Next.js or Astro front-end consuming both WP REST API and Shopify Storefront API.
3
Write GraphQL queries
Storefront API is GraphQL-only. Query products by handle, collection, or search. Use Shopify's GraphiQL explorer to build and test queries. Cache responses server-side (transients in WP, ISR in Next.js) to avoid hitting rate limits.
4
Render products server-side
Inject query results into your template before sending HTML to the browser. Include Product structured data in the output. This is what makes the headless approach SEO-friendly — Google sees real HTML, not React placeholders.
5
Build a cart with the Cart API
Storefront API includes a Cart API for adding line items, updating quantities, and generating a checkout URL. Persist cart ID in a cookie or localStorage. Hand off to Shopify's hosted checkout when the customer is ready to pay.
6
Set up webhooks for inventory
Subscribe to products/update and inventory_levels/update webhooks. When stock changes in Shopify, invalidate your WP cache so customers don't see outdated availability. Without this, you'll oversell.
A minimal GraphQL query looks like this:
Sample Storefront API query — fetch a single product by handle
Use Hydrogen if you're building a separate front-end
If you're going headless and willing to render outside WordPress entirely, Shopify Hydrogen (built on Remix) is the official React framework for headless commerce. It handles the cart, checkout flow, and SEO patterns out of the box, then proxies WordPress content via the WP REST API for blog and editorial pages. This is the "serious brand" pattern in 2026.
Maintenance cost is the hidden line item
Headless looks great in launch demos, but it's also the method with the highest ongoing cost. Storefront API versioning rotates quarterly — you must upgrade queries or risk breakage. Budget at least 4 dev hours per quarter to keep the integration current. Plugin-based methods upgrade automatically.
Method 5: Subdomain Hybrid (Two Apps, One Brand)
Key takeaway
The subdomain hybrid is technically not an integration — it's a deliberate split. Your WordPress site at yourdomain.com handles content, blog, and SEO. Your Shopify store at shop.yourdomain.com is a full Shopify Online Store 2.0 with theme, collections, search, and checkout. The two share a brand and navigation but render entirely separately.
Why pick this over the integration methods? Because you avoid every plugin's limitations. You get full Shopify SEO (collections, faceted search, blog if you also run one in Shopify) and full theme freedom. The cost is brand fragmentation: visitors notice when shop.brand.com looks slightly different from brand.com, and analytics requires cross-domain tracking.
Setup in Four Steps
Key takeaway
1
Point a subdomain to Shopify
In your DNS provider (Cloudflare, Route 53), create a CNAME record from shop.yourdomain.com to shops.myshopify.com. In Shopify admin → Settings → Domains → Connect existing domain, add shop.yourdomain.com.
2
Apply your brand styles in Shopify
Pick a Shopify theme close to your WP design — Horizon or a premium theme from the Shopify Theme Store. Match fonts, colors, and header layout. Replicate the WP navigation in Shopify so customers don't feel lost.
3
Add cross-platform navigation
WordPress menu links to shop.yourdomain.com/collections/all and other key Shopify pages. Shopify navigation links back to yourdomain.com/blog and other WP content. Make the relationship explicit.
4
Configure cross-domain analytics
GA4 → Admin → Data Streams → your stream → Configure tag settings → Configure your domains. Add both yourdomain.com and shop.yourdomain.com. This makes a customer who reads a blog post and then buys appear as one user, not two.
When the hybrid is the only honest answer
If you're spending more than 4 hours a month maintaining a Shopify-WordPress integration plugin, or you've outgrown the limitations of any single method, the hybrid is the cleanest reset. You stop fighting the integration and run two world-class apps under one brand.
Video Walkthrough: Sell on WordPress in Action
Key takeaway
For a visual walkthrough of the official Sell on WordPress plugin from install to first sale, this 10-minute tutorial covers exactly what we describe in Method 1:
How To Embed Shopify Products on WordPress [New - 2026]Step-by-step setup of the official Sell on WordPress plugin: install both sides, connect, sync products, drop the Gutenberg block, and complete a test checkout.
Cost Calculator: What You'll Actually Pay
Key takeaway
The interactive calculator below estimates your monthly Shopify costs based on revenue, plan, and order volume. Add your WordPress hosting (typically $5–$30/mo for managed) and the one-time cost of your chosen integration method to get total Year-1 spend.
Shopify Cost Calculator
Enter your estimated monthly numbers to see the true cost across all Shopify plans.
BasicBest
$489
per month
Plan fee$39
Processing$350
Apps$100
% of Revenue4.9%
Grow
$535
per month
Plan fee$105
Processing$330
Apps$100
% of Revenue5.3%
Advanced
$809
per month
Plan fee$399
Processing$310
Apps$100
% of Revenue8.1%
Plus
$2,685
per month
Plan fee$2300
Processing$285
Apps$100
% of Revenue26.9%
* Estimates based on Shopify Payments rates. Actual costs may vary based on location, currency, and negotiated rates. Does not include theme, domain, or developer costs.
For a stacked view of Year-1 TCO across all five methods at the same revenue level:
Assumes Basic plan ($39/mo), $15/mo managed WP hosting, and one-time dev costs. Excludes transaction fees and ad spend.
Year-1 Cost Breakdown by Method
Method
Shopify (Basic)
WP hosting
Plugin/Dev
Year-1 total
Sell on WordPress
$468
$180
$0
$648
Buy Button (Basic plan)
$468
$180
$0
$648
ShopWP Pro
$468
$180
$199
$847
Storefront API (custom dev)
$468
$180
$4,500
$5,148
Subdomain hybrid
$468
$180
$800
$1,448
The crossover at $1,600/month — if you are already on Starter
For a merchant already on Starter, Buy Button at $5/mo plus a 5% transaction rate beats Sell on WordPress on Basic ($39/mo + 2.9%) until roughly $1,600/month in card volume. Starter is closed to new stores; anyone opening one today begins on Basic. Above that crossover, Basic's lower processing fee saves more than $34/mo.
Performance Impact on Core Web Vitals
Key takeaway
Adding a commerce layer to WordPress always carries some performance cost.
Three concrete things to do regardless of method:
Lazy-load product blocks below the fold. If a product appears in the second viewport or lower, defer its render until the user scrolls.
Use a managed WordPress host with edge caching. Kinsta, WP Engine, and Cloudways all serve cached HTML from the edge. This eliminates the dynamic PHP cost so Shopify's contribution becomes the only variable.
Cache Storefront API responses. If you go headless, cache GraphQL responses for 5–15 minutes via WordPress transients or your CDN. A second request for the same product should never hit Shopify.
SEO: Don't Lose the Traffic You Already Earned
Key takeaway
WordPress SEO is its own discipline — you have Yoast, Rank Math, schema plugins, and a decade of practice. None of that goes away when you add Shopify. What changes is product-page indexability, and the answer depends entirely on the integration method.
SEO Behaviour by Method
Method
Indexable on WP URL?
Product schema?
Recommended canonical
Sell on WordPress
Not stated by Shopify
Not stated by Shopify
WP URL (with link rewrites on)
Buy Button
JS embed
Not stated
WP URL is content; Shopify URL has the product
ShopWP
Partial (depends on cache)
Manual setup
WP URL with manual schema
Storefront API (SSR)
Yes (custom HTML)
Yes (custom)
WP URL (canonical to itself)
Subdomain hybrid
Yes (Shopify SSR)
Yes (auto)
Shopify subdomain URL
Avoid the duplicate content trap
If the same product is reachable at yourdomain.com/products/widget (via WP plugin) andyourstore.myshopify.com/products/widget (via Shopify's online store), Google sees two pages with identical content. Pick one as canonical and 301-redirect the other. The simplest fix: in Shopify admin → Sales channels, disable the Online Store channel for products that are sold on WordPress. They'll still be available via the Storefront API and embedded blocks but won't have a public Shopify URL.
Tax, Shipping & Checkout: Who Owns What
Key takeaway
This split is non-negotiable because Shopify's checkout is a closed system. You can apply your branding in the checkout and accounts editor, but you cannot embed checkout in a WordPress iframe or process payments on the WP server; Shopify Scripts were deactivated on June 30, 2026, and Shopify points merchants to Shopify Functions instead. Shopify is certified Level 1 PCI DSS compliant, but chargebacks stay yours: Shopify says it isn't liable for chargebacks that occur when using the Shopify platform.
Payments — Shopify
Shopify Payments or third-party gateway
All card processing happens in Shopify's PCI-compliant checkout. Use Shopify Payments (powered by Stripe, no additional transaction fee) or a third-party gateway (PayPal, Authorize.net, etc.) — though third-party payment providers add a transaction fee of 2% on Basic, 1% on Grow, 0.6% on Advanced, or 0.2% on Plus.
Tax — Shopify
Shopify Tax handles US, EU, UK
Shopify Tax calculates tax for sales to the United States, European Union, United Kingdom and Canada. It's free until your store reaches a sales threshold ($100,000 USD for US stores): stores created before May 13, 2026 count sales per calendar year, and stores created on or after that date count lifetime sales.
Shipping — Shopify
Calculated rates + label printing
Shopify calculates shipping at checkout based on weight, destination, and your configured rates (flat, calculated, or carrier-rate). Print labels through Shopify Shipping (USPS, UPS, DHL, Canada Post) at discounted rates. WordPress does not touch shipping logic.
Inventory — Shopify
Single source of truth
Stock levels, variants, locations, and inventory adjustments all happen in Shopify admin. Integration plugins read inventory in real time (or via webhook updates) so WordPress never displays outdated availability — provided your cache is short enough.
Order notifications — Shopify
Confirmation, fulfillment, refund emails
Customer order emails come from Shopify. Customize templates in Shopify admin → Settings → Notifications. They send from the email address configured in Shopify, not from WordPress. Tag rules can route specific orders to specific staff.
Customer accounts — Shopify
Login on Shopify, optional WP sync
By default, customer accounts live in Shopify (myshopify.com or your custom domain). They log in to view order history. If you want unified login with WordPress, use a third-party SSO plugin or build it via the Customer Account API on headless setups.
B2B, Subscriptions, Memberships and Multi-Currency
Key takeaway
WordPress sites rarely sell only simple physical products. If your catalogue includes any of the four models below, the default Sell on WordPress plugin is not always enough. Here is how each maps to the integration methods covered above.
Specialised Use Cases — Method & App Recommendations
Business model
Recommended method
Required Shopify plan
Supporting apps
B2B / wholesale
Subdomain hybrid or Storefront API
Basic and up (Plus for unlimited catalogs and direct company catalogs)
MemberPress, Restrict Content Pro, Paid Memberships Pro
Multi-currency / international
Sell on WordPress or Storefront API
Basic + Shopify Markets
Shopify Markets, Managed Markets for cross-border duties
Digital products / downloads
Sell on WordPress or Buy Button
Basic ($39) and up
Digital Products (Shopify), SendOwl
Memberships are usually a hybrid, not an integration
WordPress LMS plugins (MemberPress, LearnDash, MemberMouse) own the gated content layer. Shopify owns the transaction. The cleanest pattern: customer buys membership on Shopify, a webhook fires to a small middleware (Zapier, Make, or a custom WP endpoint) that creates the matching MemberPress account. Avoid trying to render gated content from Shopify — WordPress is much better at that part.
For B2B specifically, do not try to retrofit B2B logic onto a Sell on WordPress block. Shopify B2B, available on Basic, Grow, Advanced and Plus, brings companies, catalogs and net payment terms (on Basic, Grow and Advanced, catalogs require the store to use new Shopify Markets); Plus adds unlimited B2B market catalogs and catalogs assigned directly to companies. Either use the subdomain hybrid (B2B portal at b2b.yourdomain.com) or build a headless front-end that queries the Storefront API with company-specific authentication.
Most WordPress sites in 2026 still run on a page builder rather than pure Gutenberg. Compatibility with your editor of choice can be the deciding factor between two otherwise equal methods.
Method × Page Builder Compatibility
Builder
Sell on WordPress
Buy Button
ShopWP
Storefront API
Gutenberg (block editor)
Native blocks
HTML block
Shortcode block
Custom block
Elementor
Not supported (Block Editor only)
HTML widget
Native widget
Custom widget (dev)
Divi
Not supported (Block Editor only)
Code module
Shortcode module
Custom module (dev)
Bricks Builder
Not supported (Block Editor only)
Code element
Shortcode element
Custom query loop
Beaver Builder
Not supported (Block Editor only)
HTML module
Shortcode module
Custom module (dev)
Quickest answer for non-Gutenberg sites
If you do everything in Elementor, Divi, or Bricks and you don't want to learn Gutenberg blocks, ShopWP is the most natural fit because of its first-class shortcode support and dedicated widgets. Shopify supports Sell on WordPress only in the Block Editor and Site Editor.
Migrating from WooCommerce to a WordPress + Shopify Setup
Key takeaway
This is the most common entry path into WordPress + Shopify integration: a site that started on WooCommerce, hit performance or feature limits, and now wants Shopify's checkout while keeping the WordPress brand and SEO equity. The migration itself is well-trodden — our WooCommerce-to-Shopify playbook covers the full move — but the order of operations for the hybrid setup matters.
1
Export WooCommerce data
In WooCommerce, go to All Products > Products and click Export to get a product CSV; export customers and order history separately. For larger catalogues use the official Product CSV Importer/Exporter or a paid tool like LitExtension. Verify image URLs are public — Shopify will fetch them during import.
2
Import into a fresh Shopify store
If your store has access, install Shopify's Store Migration app (early access, desktop only) from the setup guide, upload your WooCommerce product CSV and click Import; otherwise edit the product CSV to match Shopify's product CSV template and import it in Shopify admin, or use a third-party migration app. For 500+ products, a paid migration via Cart2Cart or LitExtension typically saves 8–20 hours of cleanup.
3
Audit and clean
Manually review collections, tags, image quality, variant pricing, and SEO meta fields. Re-add anything that didn't survive the export — collection rules, customer notes, custom fields. Set up Shopify Tax, shipping zones, and Shopify Payments before going live.
4
Install your integration method on WordPress
Pick Sell on WordPress (default), Buy Button (light), or another method from the table above. Where you can, place product blocks or embeds on the same WordPress URLs that previously held WooCommerce products, and redirect the rest in the next step.
5
Set up 301 redirects
Map old WooCommerce URLs to new Shopify-backed WP pages (or to Shopify product pages if subdomain hybrid). Use the Redirection plugin in WordPress for the WP-side rewrites. Configure 301 redirects in Shopify admin for any URLs you want pointed at the Shopify domain.
6
Disable WooCommerce checkout
Once orders are flowing through Shopify, deactivate the WooCommerce Checkout endpoint and remove the cart/checkout pages from WordPress navigation. Keep WooCommerce installed in read-only mode for 90 days so historical order data stays accessible while you reconcile accounting.
Do not run two checkouts in parallel for more than a week
Some teams try to A/B test WooCommerce checkout against Shopify checkout simultaneously. This corrupts inventory (two systems decrementing stock independently), confuses customers, and doubles tax/accounting work. Pick a cutover date, communicate it to staff, and switch in a single deploy. If you must overlap, restrict each checkout to a different product category and never to the same SKU.
Common Pitfalls and How to Avoid Them
Key takeaway
Eight failure modes that come up over and over in WP+Shopify projects, with the fix for each:
Buy Button used as primary catalog
Symptom: Products live only inside inline embeds, with no page of their own on your WordPress domain. Fix: Give products their own pages with Sell on WordPress product detail pages and link rewrites. Reserve Buy Button for inline CTAs.
Cross-domain analytics broken
Symptom: All Shopify revenue shows as direct/none in GA4. Fix: Configure GA4 cross-domain tracking. Add both yourdomain.com and shop URL to the linker.
Duplicate content (WP + Shopify URLs)
Symptom: Same product indexed at two URLs, neither ranks well. Fix: Set canonical to the WP URL, hide Shopify product pages from the Online Store channel, or 301-redirect.
Headless built without webhook updates
Symptom: Customers buy products that show in stock but aren't. Fix: Subscribe to inventory_levels/update webhook. Invalidate cache on every change.
Checkout branding inconsistent
Symptom: 30%+ checkout abandonment after redirect. Fix: Use Checkout Extensibility (free) to apply WP brand colors, fonts, and logo. Match the experience.
Plugin auto-updates breaking layout
Symptom: Product blocks render differently after a Sell on WordPress release. Fix: Disable auto-updates on the plugin. Test major releases on a staging site first.
Two payment processors, double fees
Symptom: Running WooCommerce + Shopify, paying Stripe twice plus Shopify's third-party transaction fee (2% on Basic). Fix: Pick one platform for transactions. Disable WooCommerce checkout if you've added Shopify.
No staging environment
Symptom: Plugin update on Friday 5pm takes the live shop offline. Fix: Use a staging site (most managed WP hosts include one). Test plugin and theme updates there first.
Troubleshooting: When the Integration Breaks
Key takeaway
Before contacting support or rebuilding the integration, walk this checklist. It catches roughly 90% of post-launch issues that look like bugs but are actually configuration drift.
Common Failures and 5-Minute Fixes
Symptom
Most likely cause
Fix
Products not syncing to WordPress
Sales channel not added to product, or webhook missed
In Shopify admin, open the product → Sales channels → enable Sell on WordPress / ShopWP. For ShopWP, run a manual re-sync.
Add to Cart does nothing
JavaScript console error — usually a CSP header blocking sdks.shopifycdn.com
Check browser DevTools console. Whitelist *.shopifycdn.com and *.myshopify.com in your Content-Security-Policy.
Checkout redirect 404 on Shopify
Custom checkout domain not verified, or DNS still propagating
Shopify admin → Settings → Domains. Confirm checkout subdomain is verified and SSL issued. Allow 1–4 hours for DNS.
Storefront API returns 401 / 403
Token rotated or scopes missing
In the Headless channel, rotate the private access token or edit the storefront's Storefront API permissions, update your WordPress env var, and clear cache.
Stock shows in WordPress but order fails
WP cache stale relative to Shopify inventory
Subscribe to inventory_levels/update webhook. Reduce WP transient TTL to 5 minutes for product data.
Same order appears twice in Shopify
Customer double-clicked Buy or webhook retried
Enable Shopify's idempotency on cart creation. Add a 1-second debounce to the Buy Button click handler.
Product blocks load slowly
No edge cache + many synchronous JS calls
Enable WP Rocket or your host's full-page cache. Lazy-load below-fold blocks. Audit Network tab for sync requests.
Cross-domain analytics missing
GA4 linker not configured for both domains
GA4 → Data Streams → Configure tag → Configure your domains. Add WP and Shopify domains. Verify with the GA4 DebugView.
Add a 'sync health' dashboard before you need it
After launch, build a small status page that shows last-successful product sync timestamp, last webhook delivery, and current Storefront API quota. Most teams discover sync drift only when a customer complains. A simple cron job that pings Shopify and writes a transient gives you proactive monitoring for under an hour of dev work.
Stay Hybrid or Migrate Entirely?
Key takeaway
Stay Hybrid When
WordPress drives 60%+ of organic traffic
Content marketing is your competitive moat
You sell under 100 products
Membership, courses, or services sit alongside products
Custom WordPress functionality (LMS, forum, directory) is core
Migrate to Shopify When
Product pages drive more revenue than blog content
You need 10+ Shopify apps without WP equivalents
Catalog exceeds 200 products with collections
Two-platform maintenance exceeds 8 hours/month
Selling B2B with custom catalogs and pricing
The 50K rule of thumb
Most teams clarify the stay-vs-migrate decision around $50K/month in revenue. Below that, integration usually wins on cost. Above that, the operational tax of two platforms typically exceeds the SEO benefit of WordPress, and serious brands consolidate on Shopify for the front-end too. There are exceptions in both directions, but it's a useful sanity check. If you're closer to that threshold than you think, see our Shopify migration playbook for the full WordPress-to-Shopify move.
The Bottom Line
Key takeaway
For 80% of WordPress sites adding Shopify in 2026, the right answer is the Sell on WordPress plugin. It's free, it's official, and it solves the integration in under an hour. Start there. Upgrade only when you hit a specific limitation that another method solves.
For non-WordPress sites following the same playbook, our add Shopify to an existing website guide covers Buy Button and Starter-plan setups.
Don't over-engineer the first version. Most teams who start with the Storefront API would have been better served launching on the Sell on WordPress plugin in week one and migrating to headless six months later when traffic and revenue justified it. Speed of validation beats architectural elegance.
Whichever method you pick, the integration will only ever be as good as the operational discipline behind it. Cache aggressively, monitor checkout abandonment after the redirect, and revisit the choice every six months. Methods that fit at $5K/month often break at $50K — that's a feature of growth, not a flaw of the integration.
Add Shopify to Your WordPress Site Today
Start a free 3-day Shopify trial, install the official Shopify plugin for WordPress, and have product blocks live on your WP site this afternoon.
Yes. WordPress runs on yourdomain.com while Shopify products embed via plugin or Buy Button. Checkout always happens on Shopify's hosted checkout page (your *.myshopify.com URL or a checkout subdomain you connect, such as checkout.yourdomain.com), but visitors stay on your WP domain everywhere else. Some teams put Shopify on a subdomain like shop.yourdomain.com. Both setups work, the choice is mainly about analytics and brand continuity.
It can, depending on your needs. Sell on WordPress uses Shopify as the commerce backend — checkout, payments, inventory, taxes, shipping all happen in Shopify. WooCommerce keeps everything inside WordPress including checkout. If you want Shopify Payments, Shop Pay, and the Shopify app ecosystem on a WordPress front-end, Sell on WordPress is the cleanest path. WooCommerce wins if you must own checkout data.
It depends on the method. Shopify builds the Sell on WordPress plugin on Storefront Web Components, which render product cards, product detail pages and collections, and the plugin's link rewrites let product and collection URLs open on your WordPress domain. A custom Storefront API build controls its own markup. Keep WordPress for content SEO (blog, guides, category pages).
Always on Shopify — even on Plus, the hosted checkout cannot be embedded in WordPress. By default it lives on your *.myshopify.com URL, but you can connect a checkout subdomain like checkout.yourdomain.com to stay on-brand. Customers click Buy, get redirected to Shopify's checkout (styled via Checkout Extensibility), pay, then return to a WordPress thank-you page.
A new store needs Basic ($39/mo) for the Buy Button and Shopify's WordPress plugin because the $5 Starter plan is closed to new stores. If you are already on Starter, its higher 5% + 30¢ fee can still cost less below roughly $1,600/month in card volume; above that, Basic's 2.9% + 30¢ rate pays for itself. Plus is needed for checkout UI extensions on the information, shipping and payment steps and for Plus-only B2B features such as direct company catalogs; core B2B features run on Basic, Grow and Advanced too.
Partly. Shopify's Store Migration app is in early access, is only available for certain stores and on desktop, and imports products from a WooCommerce product CSV; customers go in through a separate customer CSV import, and third-party migration apps are another route. Importing order history is a separate, optional step through a third-party migration app. Migration takes 1–4 hours for under 500 products, longer for larger catalogs. After import you'll typically clean up variants, re-upload images, and rebuild collections. Start with a test import on a Shopify dev store before touching production.
Shopify Tax calculates and collects tax on sales to the United States, the European Union (including OSS registrations), the United Kingdom and Canada, but Shopify still makes it your responsibility to verify the rates you charge and to file and remit your taxes correctly. You don't configure anything in WordPress for commerce tax. Shopify also issues invoices through apps like Sufio or Order Printer. Your WordPress accountant only needs the Shopify monthly sales report. The split is clean: WP for content, Shopify for everything money.
Possibly: the plugin requires the Block Editor and Site Editor (the Classic Editor isn't supported), and Shopify officially supports it with default block themes such as Twenty Twenty-Three, Twenty Twenty-Four and Twenty Twenty-Five; other themes might work but may require additional customization. The plugin adds Shopify product and collection blocks you can place on pages and posts. Test with your theme on a staging site before going live.
Set up cross-domain analytics so the redirect doesn't break attribution. In Google Analytics 4, add both domains to the linker config — yourdomain.com and yourstore.myshopify.com — so a single user_id persists across the jump. Configure Shopify's checkout to redirect back to a WordPress thank-you page with UTM parameters preserved. Without this, every Shopify sale shows up as direct/none traffic and your marketing data is useless.
Migrate when commerce becomes your primary business: when product pages drive more revenue than blog content, when you need 10+ Shopify apps that don't have WordPress equivalents, or when maintaining two platforms costs more in time than the SEO benefit of WordPress. Keep WordPress when content marketing is your moat — long-form guides, programmatic SEO, membership content. The decision usually clarifies around $50K/month in revenue.
Front-end developer specializing in Shopify since 2017. Experienced in building custom Liquid themes, optimizing storefront performance, and integrating third-party apps. Directs the editorial process behind Shopify Ecom: sets each topic, and checks facts, links, and interactive elements before publication.
This article was written entirely by AI under human editorial direction. The editor sets the topic and structure, runs multi-stage validation on facts, links, and interactive elements, and verifies the output is useful from a business perspective. All claims are checked against official Shopify sources. Details may change — always confirm critical data at shopify.com.
Some links in this article are affiliate links. If you sign up for a Shopify store through these links, we may earn a commission at no extra cost to you. Read our full advertising policy.