Showcase for Swell

Описание

Showcase for Swell connects your WordPress site to the Swell eCommerce platform — a headless commerce backend that handles your products, inventory, customers, orders, and checkout — and exposes that storefront natively inside WordPress through Gutenberg blocks and synced content.

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’s hosted infrastructure.

Why Swell + WordPress?

  • Keep WordPress for what it does well — content, SEO, page building, editorial workflows — and let Swell handle the commerce engine.
  • No WooCommerce required. No tax/shipping/payment plugin sprawl to manage. Swell handles orders, payments, taxes, and fulfillment integrations server-side.
  • Products live as native WordPress posts, so every SEO, caching, and page-builder plugin you already use just works on product pages.

Features

  • Native Gutenberg blocks — product grid, single product, category navigation, and search blocks you can drop into any post, page, or template.
  • Product sync — 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’re fast and crawlable.
  • Cart sidebar — slide-out cart with quantity controls, item removal, and a checkout button that hands off to Swell’s hosted checkout.
  • SEO out of the box — XML sitemap entries, JSON-LD Product structured data, Open Graph and Twitter meta tags are generated for every synced product.
  • Block-based templates — ships with editable templates for single product and category archive views, fully customizable in the Site Editor.
  • Setup wizard — guided onboarding that walks you through adding API credentials, picking which Swell categories to sync, and verifying the connection.
  • Command center dashboard — a single admin screen showing sync status, last sync time, product counts, and quick links to Swell.

External Services

This plugin connects to the following external services:

  1. Swell eCommerce API (api.swell.is) — 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’s servers. See Swell’s Terms of Service and Swell’s Privacy Policy.

  2. Swell Hosted Checkout (*.swell.store) — When a customer proceeds to checkout, they are redirected to Swell’s hosted checkout page. Cart and order data is processed by Swell.

  3. Stripe.js (js.stripe.com) — 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 https://js.stripe.com/v3/. 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 — Stripe collects card data directly through its hosted iframe. See Stripe’s Terms of Service and Stripe’s Privacy Policy.

Privacy Policy

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.

No analytics, telemetry, or tracking data is collected by the plugin.

Скриншоты

  • Setup wizard — connect your Swell store with API credentials and pick categories to sync.
  • Command center dashboard — sync status, product counts, and last-sync time at a glance.
  • Product grid block in the editor — drop products into any page or template with full block controls.
  • Single product page rendered on the front end with the cart sidebar open.
  • Block-based category template editable in the Site Editor.
  • Slide-out cart with quantity controls and the checkout hand-off to Swell.

Блоки

Этот плагин предоставляет 9 блоков.

  • Product Grid Displays a responsive grid of product cards with pagination and category filtering.
  • Category Grid Displays product categories in a responsive grid with images and links.
  • Cart Icon Displays a shopping cart icon with item count badge. Clicking opens the cart sidebar.
  • Product Detail Display full product details including image gallery, variants, and add-to-cart.
  • Product Card Displays a single product card with image, title, price, and add-to-cart button.
  • Sample Product Placeholder block for testing conditional asset loading.
  • Cart Sidebar Sliding cart sidebar panel for viewing and managing cart items.
  • Product Search Search for products by keyword with instant results.
  • Category Navigation Displays product category hierarchy as desktop horizontal nav with dropdowns or mobile accordion.

Установка

  1. Upload the plugin files to the /wp-content/plugins/showcase-for-swell directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress.
  3. Use the Settings Showcase for Swell screen to configure your API keys.

Часто задаваемые вопросы

Does this plugin require WooCommerce?

No. Showcase for Swell connects directly to the Swell eCommerce platform and does not require WooCommerce.

Does this plugin require a Swell account?

Yes. You need a Swell store with API credentials to use this plugin.

What data is sent to external servers?

Product and cart data is exchanged with the Swell API (required for the plugin to function). No tracking or analytics data is collected.

What PHP version is required?

PHP 8.1 or higher is required.

Отзывы

Нет отзывов об этом плагине.

Участники и разработчики

«Showcase for Swell» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

Перевести «Showcase for Swell» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений

1.4.1

  • Build: .distignore now excludes .git/ and .distignore itself from the WordPress.org SVN deploy. Previous releases shipped the full git history (~19 MB) inside the plugin ZIP; the trunk drops from ~22 MB to ~2.5 MB and end-user installs no longer contain a .git/ directory.

1.4.0

  • Feature: storefront prices now render in the store’s configured currency instead of being hardcoded to USD. Product cards, product detail pages, product search results, and the cart sidebar all read the currency resolved from Swell’s /settings endpoint and format with Intl.NumberFormat / NumberFormatter. Currency is captured on connection test, refreshed on every product sync, and a «Refresh from Swell» button on the Settings page lets you re-resolve on demand.
  • Fix: single product pages no longer return 404 after the first product sync. The activation flush was issued before the swell_product CPT and swell_category taxonomy registered on init, so the stored rewrite rules excluded their routes. Activation now queues a deferred flush that runs after both register themselves, and every successful sync that creates new products re-queues the flush so existing installs self-heal on upgrade.

1.3.1

  • Branding: added a plugin icon and header banner for the WordPress.org plugin directory listing. No functional changes.

1.3.0

  • Security: every server-rendered block (category-grid, category-nav, product-card, product-detail, product-grid, product-search, cart-icon, cart-sidebar, sample-product) now passes its renderer output through wp_kses() at the echo site instead of relying on suppression comments. Addresses the WordPress.org review request to escape every echoed variable.
  • Security: JSON-LD output now uses wp_print_inline_script_tag() and wp_json_encode() without JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE — backslash and unicode escaping stay on, and the <script> wrapper is built by core.
  • Compliance: replaced the generic swell / swp_ / Swell_WP / SWELL_WP_ / swell-wp/* prefix family across the entire plugin with showcase_for_swell_* / Showcase_For_Swell\* / SHOWCASE_FOR_SWELL_* / showcase-for-swell/*. Plugin namespace, constants, action/filter hooks, option/transient names, REST namespace, block namespace, asset handles, and CSS class prefixes are all unique enough to avoid collisions with other Swell-related plugins (per WordPress.org review feedback).
  • Refactor: the admin-bar health indicator CSS now ships as a real stylesheet (assets/css/admin-bar-status.css) enqueued via wp_enqueue_style(), replacing the previous wp_add_inline_style() call.

1.2.3

  • Security: cart-fallback REST endpoint no longer returns a preserved owner token to a caller that cannot prove ownership of an existing cart_id. The CREATE route now requires the matching X-Swell-Cart-Owner header on overwrite (per WordPress.org plugin review feedback).
  • Docs: each block renderer class declares an explicit output-escaping contract in its docblock so the escape guarantee at every register_block_type() render callback is verifiable from the source.

1.2.2

  • Polish: replaced remaining «Swell WP» labels in the admin menu, setup wizard, settings heading, and console error prefixes with «Showcase for Swell» so no legacy brand surface is shipped to the WordPress.org plugin directory.

1.2.1

  • Build: WordPress.org plugin directory submission build of the 1.2.0 changeset (no functional changes vs. 1.2.0).

1.2.0

  • Rename: plugin renamed from «Swell Storefront» to «Showcase for Swell» (slug showcase-for-swell) per WordPress.org plugin directory feedback.
  • Remove: dropped the 25-product sync cap. The plugin now syncs the entire Swell catalog regardless of catalog size.
  • Remove: dropped all upgrade prompts, tier-status messaging, and license-related copy from the admin dashboard and setup wizard.

1.1.0

  • Fix: activation product sync occasionally undercounted on first run due to a race between the wizard sync and the reconciliation cron deleting each other’s freshly synced posts.

1.0.0

  • Initial release.