{"id":11152,"date":"2026-05-27T05:29:52","date_gmt":"2026-05-26T21:29:52","guid":{"rendered":"https:\/\/aeosub.com\/showcase-for-swell\/"},"modified":"2026-05-27T05:29:52","modified_gmt":"2026-05-26T21:29:52","slug":"showcase-for-swell","status":"publish","type":"post","link":"https:\/\/aeosub.com\/zh\/showcase-for-swell\/","title":{"rendered":"Showcase for Swell"},"content":{"rendered":"<div class=\"plugin-info-card\" style=\"border: 1px solid #e2e8f0;border-radius: 10px;overflow: hidden;margin-bottom: 30px;font-family: -apple-system, system-ui, sans-serif;background: #fff\">\n<table style=\"width: 100%;border-collapse: collapse;font-size: 14px\">\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 15px 20px;text-align: left;width: 35%;color: #4a5568;background: #fcfcfc\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/plugins\/geopattern-icon\/showcase-for-swell.svg\" style=\"width: 40px;height: 40px;border-radius: 6px;margin-right: 12px;vertical-align: middle\"> Developer<\/th>\n<td style=\"padding: 15px 20px;font-weight: 500\"><a href=\"https:\/\/profiles.wordpress.org\/kmgalanakis\/\" target=\"_blank\" rel=\"noopener\">Konstantinos Galanakis<\/a><\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Version<\/th>\n<td style=\"padding: 12px 20px\">v1.3.0<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Active Installs<\/th>\n<td style=\"padding: 12px 20px\">0 +<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Requires \/ Tested<\/th>\n<td style=\"padding: 12px 20px\">6.0 \/ 6.9.4<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Last Updated<\/th>\n<td style=\"padding: 12px 20px\">2026-05-26 9:18pm GMT<\/td>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Official Link<\/th>\n<td style=\"padding: 12px 20px\"><a href=\"https:\/\/wordpress.org\/plugins\/showcase-for-swell\/\" target=\"_blank\" style=\"text-decoration: none;color: #4a3bca;font-weight: bold\" rel=\"noopener\">View Details \u2192<\/a><\/td>\n<\/tr>\n<\/table><\/div>\n<div class=\"plugin-short-desc\" style=\"margin: 20px 0;padding: 12px 15px;background: #f9fafb;border-left: 4px solid #4a3bca;border-radius: 6px;font-style: italic;color: #4a5568\">Swell eCommerce integration for WordPress &#8211; product browsing, cart, and checkout powered by Swell.<\/div>\n<p>Showcase for Swell connects your WordPress site to the <a href=\"https:\/\/www.swell.is\/\" rel=\"nofollow ugc noopener\" target=\"_blank\">Swell eCommerce<\/a> platform \u2014 a headless commerce backend that handles your products, inventory, customers, orders, and checkout \u2014 and exposes that storefront natively inside WordPress through Gutenberg blocks and synced content.<\/p>\n<p>If you run your store on Swell and want WordPress to be the front-end (for content, SEO, marketing pages, and a familiar admin), this plugin gives you the bridge: products are mirrored into WordPress as a custom post type so pages render fast and rank in search, while cart and checkout stay backed by Swell&#8217;s hosted infrastructure.<\/p>\n<p><strong>Why Swell + WordPress?<\/strong><\/p>\n<ul>\n<li>Keep WordPress for what it does well \u2014 content, SEO, page building, editorial workflows \u2014 and let Swell handle the commerce engine.<\/li>\n<li>No WooCommerce required. No tax\/shipping\/payment plugin sprawl to manage. Swell handles orders, payments, taxes, and fulfillment integrations server-side.<\/li>\n<li>Products live as native WordPress posts, so every SEO, caching, and page-builder plugin you already use just works on product pages.<\/li>\n<\/ul>\n<p><strong>Features<\/strong><\/p>\n<ul>\n<li><strong>Native Gutenberg blocks<\/strong> \u2014 product grid, single product, category navigation, and search blocks you can drop into any post, page, or template.<\/li>\n<li><strong>Product sync<\/strong> \u2014 products from your Swell store are pulled into a custom post type via WP-Cron. Pages render from the local DB, not live API calls, so they&#8217;re fast and crawlable.<\/li>\n<li><strong>Cart sidebar<\/strong> \u2014 slide-out cart with quantity controls, item removal, and a checkout button that hands off to Swell&#8217;s hosted checkout.<\/li>\n<li><strong>SEO out of the box<\/strong> \u2014 XML sitemap entries, JSON-LD <code>Product<\/code> structured data, Open Graph and Twitter meta tags are generated for every synced product.<\/li>\n<li><strong>Block-based templates<\/strong> \u2014 ships with editable templates for single product and category archive views, fully customizable in the Site Editor.<\/li>\n<li><strong>Setup wizard<\/strong> \u2014 guided onboarding that walks you through adding API credentials, picking which Swell categories to sync, and verifying the connection.<\/li>\n<li><strong>Command center dashboard<\/strong> \u2014 a single admin screen showing sync status, last sync time, product counts, and quick links to Swell.<\/li>\n<\/ul>\n<p><strong>External Services<\/strong><\/p>\n<p>This plugin connects to the following external services:<\/p>\n<ol>\n<li>\n<p><strong>Swell eCommerce API<\/strong> (api.swell.is) \u2014 Required for core functionality. Product data, cart operations, and checkout are handled via the Swell API. By configuring your Swell API keys and activating the plugin, you consent to data being exchanged with Swell&#8217;s servers. See <a href=\"https:\/\/www.swell.is\/terms\" rel=\"nofollow ugc noopener\" target=\"_blank\">Swell&#8217;s Terms of Service<\/a> and <a href=\"https:\/\/www.swell.is\/privacy\" rel=\"nofollow ugc noopener\" target=\"_blank\">Swell&#8217;s Privacy Policy<\/a>.<\/p>\n<\/li>\n<li>\n<p><strong>Swell Hosted Checkout<\/strong> (*.swell.store) \u2014 When a customer proceeds to checkout, they are redirected to Swell&#8217;s hosted checkout page. Cart and order data is processed by Swell.<\/p>\n<\/li>\n<li>\n<p><strong>Stripe.js<\/strong> (js.stripe.com) \u2014 When the customer reaches a checkout page that uses a Stripe payment method configured in your Swell store, the plugin loads the Stripe.js client library from <code>https:\/\/js.stripe.com\/v3\/<\/code>. The library is fetched in the browser only on checkout pages and only when Stripe is the active payment provider; nothing is sent during normal browsing or product sync. The browser request shares the standard data Stripe needs to render its payment fields (referrer URL, user-agent, IP address). No card data is sent by the plugin itself \u2014 Stripe collects card data directly through its hosted iframe. See <a href=\"https:\/\/stripe.com\/legal\/consumer\" rel=\"nofollow ugc noopener\" target=\"_blank\">Stripe&#8217;s Terms of Service<\/a> and <a href=\"https:\/\/stripe.com\/privacy\" rel=\"nofollow ugc noopener\" target=\"_blank\">Stripe&#8217;s Privacy Policy<\/a>.<\/p>\n<\/li>\n<\/ol>\n<h3>Development<\/h3>\n<p>The complete, unminified source code for every compiled asset shipped in this plugin is bundled inside the plugin ZIP under the <code>src\/<\/code> directory. The build configuration (<code>webpack.config.js<\/code>) and the package manifest (<code>package.json<\/code>) are included alongside it so any reviewer or developer can reproduce the contents of <code>build\/<\/code> from scratch.<\/p>\n<p><strong>Build steps<\/strong><\/p>\n<ol>\n<li><code>npm install<\/code> \u2014 install the build toolchain (<code>@wordpress\/scripts<\/code>, Webpack, Babel, etc.).<\/li>\n<li><code>npm run build<\/code> \u2014 produce the production assets in <code>build\/<\/code>.<\/li>\n<li><code>npm start<\/code> \u2014 incremental development build with watch mode.<\/li>\n<\/ol>\n<p><strong>Source layout<\/strong><\/p>\n<ul>\n<li><code>src\/<\/code> \u2014 Gutenberg block scripts, frontend scripts, dashboard React app, and SCSS partials. Compiled by <code>@wordpress\/scripts<\/code> into <code>build\/<\/code>.<\/li>\n<li><code>includes\/<\/code> \u2014 PHP classes autoloaded under the <code>Showcase_For_Swell<\/code> namespace via Composer.<\/li>\n<li><code>templates\/<\/code> \u2014 block-based template HTML and PHP fallbacks.<\/li>\n<\/ul>\n<p><strong>Testing<\/strong><\/p>\n<ul>\n<li><code>npm run lint:php<\/code> \/ <code>npm run lint:js<\/code> \/ <code>npm run lint:css<\/code> \u2014 static analysis.<\/li>\n<li><code>npm run test:php<\/code> \u2014 PHPUnit suite (configuration in <code>phpunit.xml.dist<\/code>).<\/li>\n<li><code>npm run test:js<\/code> \u2014 Jest suite (configuration in <code>jest.config.js<\/code>).<\/li>\n<li><code>npm run test:e2e<\/code> \u2014 Playwright end-to-end suite under <code>tests\/e2e\/<\/code>.<\/li>\n<\/ul>\n<h3>Privacy Policy<\/h3>\n<p>Showcase for Swell does not collect any personal data from site visitors or administrators beyond what is necessary for eCommerce functionality (cart contents, checkout data) which is processed by Swell.<\/p>\n<p>No analytics, telemetry, or tracking data is collected by the plugin.<\/p>","protected":false},"excerpt":{"rendered":"<p>Swell eCommerce integration for WordPress &#8211; product browsing, cart, and checkout powered by Swell.<\/p>","protected":false},"author":1,"featured_media":9317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[252],"tags":[1012,684,718,862,2205,555],"class_list":["post-11152","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends","tag-cart","tag-checkout","tag-ecommerce","tag-shop","tag-swell","tag-wordpress-plugin"],"_links":{"self":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11152","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/comments?post=11152"}],"version-history":[{"count":0,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11152\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media\/9317"}],"wp:attachment":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media?parent=11152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/categories?post=11152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/tags?post=11152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}