Native Features
This is the merchant's guide to everything ShopsWired does out of the box — the features your store gets natively, without installing a single plugin. It's the store-owner counterpart to the developer docs (Plugins.md, Themes.md, Entities.md, Recipes.md): those describe how to extend the platform, this describes what you already have.
Scope. Everything below ships with every store. Some capabilities are gated by your plan (higher tiers raise limits) or by your staff role (owner/admin vs. staff) — those gates are called out where they matter. Features delivered by optional plugins from the Marketplace (payment gateways, extra widgets, etc.) are noted as such but are not the focus of this document.
Products & Catalog
Build and sell physical or digital products.
- Core product fields — Name, SKU, rich description, selling price, compare-at price (shown as a strikethrough "was" price), weight (for shipping), and an active/inactive toggle to publish or hide a product.
- Multiple images — Attach as many product images as you like, with the ability to override the image shown for a specific variant.
- Options & variants — Define option dimensions (Size, Color, …) and generate variant combinations. Each variant can carry its own SKU, price, compare-at price, price tiers, stock, back-order policy, images, and attributes — falling back to the product's values wherever you don't override them.
- Digital products & downloads — Mark a product as digital and attach the files buyers receive. Digital items are delivered automatically once payment clears, and digital-only orders skip shipping and fulfill themselves.
- Custom attributes — Add named attributes (Material, Origin, …) that can double as storefront filter facets and as conditions for pricing/markup rules.
- Custom fields / metadata — Store arbitrary extra structured data on a product for your own use or for plugins.
- Tags as collections — Tags are the native grouping mechanism: they power storefront filtering, coupon targeting, and shipping/pricing/markup rules. (A product's tags act as its categories/collections — there's no separate collection entity to maintain.)
- Tag suggestions — When you tag a product or target a coupon, the tags already in use are offered as you type, so you reuse an existing tag instead of creating a near-duplicate. Tags are stored exactly as you type them.
- Tags match forgivingly — Capitalization and punctuation never decide
whether a rule fires. A coupon targeting
Men's Shoesstill discounts products taggedmens shoes, so a small difference in how a tag was typed can't quietly stop a discount or a markup rule from applying. - Tag details — The Tags page (from Products → Tags) lists the tags in active use across your catalog, with how many products carry each one (it favours your most-used tags, so a brand-new or rarely-used tag may take a moment to appear). Optionally give a tag a display name (a tidier or differently-punctuated version of the tag), a description, an image, and a parent tag to group it under. Tags without details work exactly as they always did — this is enrichment, not a list you have to keep up to date.
- Tag landing pages — Every tag has its own page at
/tag/<tag>showing the products that carry it, with your display name, description and image at the top. However a tag is capitalized or punctuated in a link, shoppers land on the same page. - Tag pages in search engines — A tag page is offered to search engines only once you give that tag a description, so writing one is what publishes it; described tags are listed in your sitemap automatically. Filtered views of a page (a facet, a sort, a price range) are deliberately kept out of search results, so your catalog is represented by a set of real landing pages rather than thousands of near-identical filtered ones.
- Tag menu — Optionally add a header menu built from your tags (Theme settings → Navigation → Show Tag Menu). Name it whatever you like — "Tags", "Shop by Category", "Collections". Top-level tags become the menu, and any tag you give a parent nests under it — to as many levels as you set up — so the hierarchy you build on the Tags page becomes your storefront navigation.
- Browse-all-tags page — A
/tagpage lists your tags as clickable cards with their images and descriptions, and nests sub-tags under their parent to whatever depth you've set up. It's the closest thing to a "collections" landing page, and it's built from the same tag details, so there's nothing separate to maintain. Images are optional everywhere — a tag without one shows its initial instead, so a page with no images still looks intentional. Give it its own heading and intro text under Theme settings → Navigation. - Custom product URLs — Give a product a clean, human-readable slug
(
/product/summer-tote). Change it whenever you want — the old URL automatically redirects to the new one so existing links never break. - Bulk actions — Select products in the list to publish or unpublish them, add or remove tags across the whole selection, or delete them. Adding a tag leaves products that already carry it untouched, and removing one also strips differently-spelled variants of the same tag, so a selection ends up consistently tagged either way.
- CSV export — Export your product catalog to CSV.
Inventory
- Stock tracking — Track stock at the product level and per variant.
- Back-orders (oversell) — Allow selling past zero on a per-product or per-variant basis, or leave stock uncapped (unlimited).
- Automatic stock movements — Stock is reserved and decremented at checkout, and restocked automatically when you refund with restock enabled. Manually built orders only reserve stock once marked paid, so open quotes don't tie up inventory.
Orders
- Order lifecycle — Orders move through Created → Processing → Shipped, with
Cancelled, Refunded, Partially Refunded, and Payment Failed states. Every order
gets a unique, human-readable number (
YYYYMMDD-XXXX). - Action-driven status — Status always reflects what actually happened: it follows from the payment state and explicit actions — Mark as Shipped (with tracking), Cancel (before shipment; a shipped order is refunded instead), Mark Paid, Refund — rather than being hand-picked from a list, so an order can't claim a state that never occurred. Shipping and cancellation each record their timestamp, and full-access staff can undo a mistaken shipment or reopen a cancelled order from the order page. Bulk ship/cancel is available from the orders list.
- Order detail — Each order captures the customer snapshot, shipping address, line items (with variant and subscription plan), payment details, itemized totals (subtotal, tax, shipping, discount, total), and any applied coupon codes.
- Create orders in admin (POS / quotes) — Build orders by hand for point-of-sale or request-for-quote workflows: search products, pick a variant and (for subscription products) a plan per line, add line items, calculate totals, and record an internal note. Manual orders are flagged, and the staff member who created them is recorded for sales-rep attribution.
- Charge a saved card — When the order's customer has a card on file, staff can charge it directly from the order instead of recording an offline payment. If the order contains a subscription product, charging it this way also starts the subscription (future renewals bill the same card).
- Editing & bulk actions — Update status, tracking, and shipping address (address changes are tracked before/after). Apply a status change to up to 200 orders at once.
- Line-item adjustments — Plugins can add labeled +/- adjustments (card surcharge, gift-wrap fee, wire-transfer discount) that appear on the order.
- Search & filter — Find orders by email, order number, customer name, or
phone. End a name or phone with
*(e.g.Jane*,555*) to match everyone whose name/number starts with it (case-sensitive); while a*search is active the status filter doesn't apply. Filter by status, date range, customer, and subscription. - CSV export — Export orders to CSV.
Fulfillment & Shipping
- Shipping methods — Flat rate, weight-based, free shipping, and local pickup; each method can be enabled or disabled.
- Rate tiers — Within a method, set rates by weight bracket and/or minimum order amount.
- Shipping zones — Restrict a method to specific countries and states/ provinces; leave zones empty for worldwide availability. Zones apply to methods that deliver somewhere — a local pickup method is always offered, since the customer comes to you and there's no destination to match.
- Local pickup — Publish a pickup address, hours, and instructions shown to the customer at checkout. When a pickup method applies, checkout opens with a Ship / Pickup choice: picking up lists your locations (with their details) and skips the shipping address entirely; shipping asks for the address first and lists the shipping methods that address rates to.
- Tracking — Attach carrier, tracking number, and tracking URL to an order; the customer gets a shipping-notification email with the tracking link.
- Auto-fulfill — Optionally auto-fulfill orders on payment (digital-only orders always auto-fulfill).
- Supplier / dropship fulfillments — When an order includes products syndicated from another shop (see Wired), a fulfillment record is created in the supplier's shop with just their items and the ship-to address; the supplier is notified in-app and by email. Supplier packing slips are blind — they brand as your store and never reveal supplier costs.
Payments
- Gateways via plugins — Connect one active payment provider per store (Stripe, Square, PayPal, and others) through a gateway plugin from the Marketplace. Each plugin supplies its own webhook setup and, for own-keys gateways, a per-shop webhook URL to paste into the provider dashboard.
- Manual / offline payments — Record cash, bank transfer, ACH, or any other off-gateway tender directly on an order. "Mark paid" runs the same follow-up as a live charge (receipt, fulfillment, ledger).
- Card vaulting for renewals — Gateways can securely store a payment method to charge later for subscription renewals and post-trial billing.
Refunds
- Full or partial — Refund a whole order or specific line items, in one or several installments, each with a reason and an optional restock.
- Gateway or manual — Process refunds through the payment gateway or record them manually for offline tenders. Safeguards prevent refunding more than the order total or double-refunding, and the order status recalculates to Partially or Fully Refunded automatically. Asynchronous settlement (e.g. ACH) is handled.
Customers
- Accounts & guest checkout — Per-store customer accounts with email/password login. Optionally enable passwordless magic-link sign-in, or require an account at checkout to disable guest checkout entirely.
- Sign-up fields — Decide what the create-account form asks for beyond name
and email — phone, company, VAT number, anything you name — from your theme
settings (Register → Additional Fields). Type the label a shopper sees, end it
with
*to make it required, and the answers are saved as custom fields on the customer. - Leads vs. customers — Contacts captured at guest checkout start as "leads" and are automatically promoted to "customers" when they place an order.
- Addresses & saved cart — Customers keep multiple saved addresses and a persistent cart tied to their account.
- Custom fields & metadata — Store extra structured data on any customer. The
customer's page has a Custom fields editor: whatever they filled in when
signing up, plus any name/value you add yourself. A field whose name starts with
an underscore (e.g.
_account_no) is also searchable, which is how an import or integration finds that customer again on its next run — so renaming one can break that link. - Search & filter — Find customers by exact email, or filter the list by type
(customers vs. leads). End a search term with
*(e.g.Jane*) to match every customer whose name starts with it (case-sensitive); while a name search is active the type filter doesn't apply. - Email preferences — Each customer chooses what they hear about, per topic: order updates, shipping notices, subscription notices, news & offers, plus a topic for each plugin that emails your shoppers. They manage it from Account → Email Preferences on your storefront, or from the unsubscribe link in any email's footer — no login needed. Marketing is off until a shopper opts in (a tickbox on your create-account and checkout forms); account and order-security email is always delivered. Staff can see and change a customer's preferences from the Email tab on the customer page, and every change is recorded in the audit log.
- GDPR erasure — One action anonymizes a customer's personal data and scrubs the PII snapshot across all their orders while keeping the order financials and history intact. (Customers attached to orders are anonymized rather than hard-deleted.)
- CSV export — Export customers to CSV.
- Log in as customer — With the right permission (full access to customers), staff open a short storefront session as the customer straight from their admin page — to build a cart, place an order, or add a saved card on their behalf. Orders placed that way are attributed to the staff member, and the action is recorded for audit.
- Card on file — A customer can save one payment method (via a payment provider that supports it). The saved card bills all of the customer's subscriptions, speeds up checkout (they can pay with it in one click), and can be charged by staff from an order (see Orders). Customers manage their saved card from their storefront account.
B2B & Tiered Pricing
- Named price levels — Define levels like Wholesale or Dealer and set a specific price per product for each. Optionally show the standard price struck through for that level.
- Fallback when a product has no named price — Choose per level what happens when a product carries no price for it: require a quote (the price shows as $0 so a request-a-quote experience can take over — the default), keep the standard price, use the compare-at price, borrow another level's price, or take a percent / amount off the standard price.
- Rule waterfall — Layer conditional rules by product tag or attribute (first match wins) so different product groups price differently per level.
- Assign to customers — Attach a price level to a customer and their pricing applies automatically everywhere the storefront loads a price — product pages, cards, search grids, and live product grids in the page builder.
- Filter your customer list by level — Once you define price levels, the customer list shows each customer's level and gains a filter for it, so you can pull up everyone on Wholesale — optionally narrowed to customers or leads. Retail customers, the ones with no level, are simply the unfiltered list.
- Quantity price breaks — Independently of levels, set "buy N or more for a lower unit price" tiers at the product or variant level.
Subscriptions & Recurring Billing
- Per-product plans — Offer selectable cadences (weekly, monthly, quarterly, yearly) on a product, each with a label, price, recurring discount, and an optional first-cycle-only discount. Plans can be scoped to specific variants.
- Trials & cycle caps — Set trial days, a maximum number of billing cycles (or unlimited), and mark a product as subscription-only.
- Billing anchors — Bill every subscriber on the same calendar day (the 1st of the month, the last day, or a chosen weekday for weekly plans) instead of each customer's signup anniversary. A day later than a short month has bills on that month's last day and returns to the intended day afterwards, so a month-end plan never drifts earlier. For the gap between signup and the first anchored date, choose whether to charge a full cycle up front or nothing at all until that date.
- Amounts that change each cycle — For things billed by how much actually
happened — music lessons, where some months have four and some have five — a
plan can be set to let each renewal's amount move within limits you choose: a
minimum and maximum quantity, a minimum and maximum unit price, or both. An
installed plugin supplies the actual numbers each cycle; the limits are yours, and
they are what the customer agrees to when they subscribe. Only a side with a
maximum can move, so nothing becomes adjustable by accident, and the limits in
force for an existing subscriber are the ones from when they signed up —
editing the plan later changes what new subscribers agree to.
- An amount outside those limits is refused, not trimmed to fit: the renewal stops and is flagged for you rather than quietly billing a different number.
- A cycle can bill nothing at all (set the minimum quantity to 0) — no charge, no invoice, and the schedule simply moves on to the next one.
- You can require that a subscription is never billed without an amount, for plans where the listed price is only a placeholder. A renewal nothing supplies an amount for is held for review instead of charged.
- See the next charge before it happens — For a subscription whose amount changes, both you and the customer can see what the next renewal will cost: a panel on the subscription in the admin, and a line on the customer's account page. It is worked out by asking the same plugin the same question the charge will, so what's shown is what gets billed — and if the amount can't be worked out or falls outside the agreed limits, you find out there rather than when the renewal doesn't happen.
- Adjust the limits later — A subscriber's arrangement can change without cancelling and re-subscribing them: edit a live subscription's quantity and price limits from the admin, or switch per-cycle billing off for that customer entirely. Plugins can't change these limits — only you can, which is what makes them a real limit on what a plugin may charge.
- Contract lifecycle — Subscriptions run through Active, Trialing, Past Due (dunning), Paused, and Cancelled. Each renewal generates a fresh order/invoice while the contract persists, and the renewal snapshots its own items and totals so later catalog or price changes don't disturb existing subscribers.
- Off-session renewals — Renewals charge the customer's vaulted payment method; failed charges enter dunning/retry.
- Declines vs. hiccups — A declined card and a temporary problem on the store's side are handled differently. A decline starts dunning and tells the customer what to fix; a temporary problem is retried quietly on a widening schedule, without dunning emails and without counting against the customer's retry allowance. Either way the reason is recorded on the subscription and shown in the admin, along with the attempt count and when the next attempt is due — and a renewal is never billed twice because an attempt was interrupted.
- Needs-review hold — If a subscription can't be billed for a reason outside the customer's control — automatic retries exhausted, or a changing amount that couldn't be worked out or fell outside the agreed limits — it is put on hold rather than cancelled: billing stops, the contract stays intact, and the admin flags it for review with the reason and what to do about it. The customer is never cancelled over a problem they couldn't fix.
- Edit a live contract — Change a running subscription's billing interval, next bill date, cycle cap, and per-line quantities and prices without asking the customer to re-subscribe. Tax and shipping are recalculated from the new lines and address, so the amount always matches what's actually being billed.
- Change history — Every change to a subscription is recorded with who made it, when, and exactly which fields moved — whether it came from the admin, the customer's account page, or a renewal. A History tab on the subscription shows the trail.
- Admin & customer self-service — Manage subscriptions from the admin (filter by status, see billing problems on the list and detail pages); customers manage their own from their account (e.g. pause until a date). Shipping is captured at signup and re-priced when the address changes.
Coupons & Discounts
- Types — Fixed amount off or percentage off.
- Conditions — Minimum order amount, maximum total uses (with a live usage counter), a validity window (start/end), and restriction to specific products, product tags, or product attributes.
- Attribute targeting — Restrict a coupon to products carrying an attribute
(e.g.
Material), optionally with a specific value (Material = Gold). Add several and an item qualifies if it matches any one of them; leave the value blank to match every value of that attribute. Attributes are matched per line, including the ones the shopper's selected variant adds, so "10% off gold" can discount the gold variant of a ring and skip the silver one. Combined with a product or tag restriction, an item must satisfy both. - Behavior — Active toggle; passive (auto-applied at checkout); exclusive (can't combine with other codes); featured (surfaced on the storefront). Multiple codes can stack unless one is exclusive. Gift-card and discount-code entry with live validation appears natively at checkout.
Tax
- On/off & inclusive pricing — Enable tax and, if you sell tax-inclusive, flag that prices already include tax.
- Rules by region — Add rules by country and optional state/province, each with a rate, a display name (Sales Tax, GST, VAT…), and an option to tax the shipping amount too.
Storefront & Themes
- Default theme — Every store ships with a clean, complete storefront: homepage, product pages, catalog/search, cart, checkout, account area, order pages, and auth flows — ready to sell with zero setup.
- Theme library — Switch between multiple ready-made themes (Aura, Onyx, Harvest, Pop, Shift, Timber, and more), each with its own look, homepage layout, colors, and typography.
- Install from the Marketplace — Browse and install themes; preview a marketplace theme live (desktop/mobile) before installing, and see its README, changelog, and version.
- Brand look & feel — Upload a logo (reused automatically as favicon and touch icon) and set eight brand colors (primary, hover, background, surface, main/muted text, error, success) that apply across the whole storefront. Clear them to fall back to theme defaults.
- Custom code injection — Insert your own CSS/HTML/JS at Head Start, Head End, Body Start, and Body End, plus a thank-you-page-only scripts slot for conversion pixels and analytics. These render dynamically, so they can reference live page and order data without editing the theme.
- Catalog / browse-only mode — Hide "Add to Cart" and/or prices store-wide for a catalog-only site.
- Focused checkout — On by default: the checkout page is stripped down to the order — no navigation, search, announcement bar or full footer, just your store name, a link back to the cart, and the policy links you choose (Terms, Privacy, Contact…), so nothing competes with completing the purchase. Turn it off to show your full site header and footer on checkout.
- Edit theme files — A built-in code/file editor lets you customize any theme file, adjust theme settings, and manage versions, clones, and updates.
Page & Content Builder
- Visual layout builder — Compose pages from rows → columns → blocks with drag-and-drop, no code. Block types include heading, text, rich text, raw HTML, image (with link), button, live product grid (honoring B2B/customer pricing), and plugin-provided blocks. Rows control width, padding, gap, and background.
- Homepage & announcement bar — The homepage is built entirely in the layout builder; an optional header layout renders an announcement/promo bar above the nav.
- CMS content pages — Create custom pages (About, Contact, policies, …) served
at
/page/{slug}and auto-linked into navigation. - Navigation menus — Build and reorder header, footer, and account menus, including nested dropdown items.
Search, Filtering & Navigation
- Product search — A header search bar plus a full catalog/search page with keyword relevance. Owners can re-index the catalog on demand and choose the active search provider (built-in, or one supplied by a plugin).
- Faceted filtering — Filters are generated automatically from product attributes, with value counts, collapsible groups, a merchant-controlled display order, active-filter pills, and clear-all. An optional min/max price filter can be toggled on.
- Sorting & pagination — Sort by relevance, newest, oldest, price, or name; set the default sort. "View More" pagination with a configurable page size (12/24/48) and contained or full-width layout. Filters collapse into a mobile drawer on small screens.
SEO
- Meta & social tags — Automatic page titles (with your store-name suffix), meta descriptions, canonical URLs, Open Graph tags, and Twitter cards.
- Structured data — JSON-LD output per page.
- Robots control — Per-page
noindex, nofollowsupport. - Clean URLs with redirects — Custom product slugs with automatic 301 redirects when a slug changes; products feed the sitemap.
- Fast images — On-the-fly resizing and WebP conversion (with automatic fallback for older browsers) and responsive size buckets for faster pages.
Transactional Emails
- Themeable customer emails — One store-level email template drives all customer-facing emails, with a built-in default if you don't customize it.
- Covered messages — Order confirmation, shipping notification (carrier + tracking link), order cancelled, order refunded, order partially refunded, digital-download delivery, subscription payment failure (with the retry date and a link to update the card), account welcome, magic-link sign-in, and customer password reset.
- Every message has a topic — Each customer email belongs to a topic the shopper can unsubscribe from on its own, so someone can stop your newsletter without losing their order confirmations. Unsubscribe and preference links are added to the footer for you; plugins that email your customers declare their own topics, which appear alongside yours.
- Staff email alert preferences — Each staff member chooses which notification categories email them, and can mute all emails per store.
- No one customer can be flooded — Separately from your store's own limits, each shopper has a ceiling on how much mail they can receive from you in an hour and in a day. It sits far above what a real customer gets (their order confirmations, shipping notices and downloads, several orders over), and it is the same on every plan — a bigger plan buys more reach, never more of one person's inbox. If a plugin ever loops on one address, the messages are dropped and you're told which customer it was, instead of them being buried and unsubscribing.
- Sending limits — Transactional email (orders, shipping, account) has no monthly budget — it's meant to be sent. There is only a sending rate per plan, an hourly and a daily ceiling set well above a busy day, so a misbehaving plugin can't quietly mail your whole customer list overnight; sign-in links and password resets are never limited at all. Marketing email is separate and deliberately small — a token monthly allowance per plan, and none on Free — because the built-in transport is built for receipts, not campaigns. Install a marketing plugin to send at volume: it delivers through its own provider and its own capacity, and those sends don't touch your allowance. Settings → Usage shows marketing for the month and transactional for the day, and you're notified the first time a message is dropped rather than after the fact.
Print Documents
- Packing slips — Print-ready packing slips for orders and supplier fulfillments, showing ship-to and customer info, items with SKU/options and quantities, totals (blankable for gift orders), tracking numbers, and order notes. Supplier slips are blind (your branding, no supplier costs).
Media & File Manager
- Per-store file storage — Organized into roots (product images, downloads, theme assets) plus a "browse all files" view for owners/admins.
- Operations — Browse folders, upload, download, delete, move, and create folders, with automatic storage metering. Bulk actions let you copy a file's URL or Liquid reference, delete, or move many files at once.
Dashboards & Analytics
- Customizable dashboards — Build one or more dashboards by dragging widgets from a gallery, with a selectable reporting period. Star one as your default landing dashboard.
- Personal vs. shared — A dashboard can be personal (only you) or shared with the whole team (owner/admin edit the shared ones).
- Built-in widgets — Revenue, Orders, Average Order Value, Customers, Revenue Over Time (chart), Top Products, and Order Status breakdown.
- Plugin widgets — Installed plugins can add their own dashboard widgets from the same gallery.
Notifications
- In-app notifications — A shared, read/unread notification feed with an unread badge, spanning order, subscription, system, billing, plugin, and fulfillment categories (plus plugin-defined categories) at info/success/warning/error severities, each with a deep link to the relevant record.
- Marketplace alerts — If you sell plugins or themes, a notification is raised when a payout reaches your connected Stripe account, and when one can't be sent (deep-linked to your developer settings).
- Subscription alerts — When a subscription is paused, resumed, or cancelled, a notification is raised (deep-linked to the subscription). A new signup isn't notified separately — its order already appears as a new-order notification.
- Email delivery — Notifications email each staff member per their preferences; owners/admins are opted in by default for order, subscription, billing, plugin, and fulfillment alerts.
Custom Records
- Merchant/plugin data models — Store custom data models (product reviews, lookup tables, plugin entities) with dynamic fields, unique-value enforcement, indexing, and filtered/sorted/paginated queries. Managed from a dedicated admin area, and memos can attach to any record.
Internal Notes (Memos)
- Attach notes to anything — Add internal, staff-only notes to orders, products, customers, coupons, and custom records. Each memo is stamped with its author, multiple memos per record are supported, and they're cleaned up with the parent. Memos are never shown on the storefront.
Team, Roles & Permissions
- Invite staff — Invite users by email (an invite is emailed and a pending account created if they're new), assign roles, resend invites, change roles, and remove users. (Owner/admin.)
- Built-in roles — Owner and Admin have full access; Staff is scoped (write orders/customers, full products/coupons/records, read reports/ subscriptions, write fulfillments/memos; no theme, plugin or settings access).
- Custom roles — Owners can build scoped roles (e.g. a Sales Rep who can create orders but not refund) by setting per-resource capability levels — None / Read / Write / Full across orders, customers, products, coupons, reports, records, subscriptions, fulfillments, themes, plugins, and memos — plus a Log in as customer (impersonation) toggle, and bundle plugin permissions into a role.
- Plugin access is graded by consequence — For plugins the levels track damage rather than editing: Read views a plugin's settings, logs, files and version history; Write configures and runs a plugin that's already installed (change its settings, turn it on or off, run its actions); Full adds installing and uninstalling, editing plugin code, managing plugin credentials, changing a plugin's plan, and publishing to the marketplace. So you can give someone "keeps our plugins working" without letting them install a paid plugin or rewrite one.
- Log in as customer (impersonation) — A dedicated permission, separate from the customers capability, so a role can hold it without destructive customer access (e.g. a Sales Rep who can impersonate but can't delete or anonymize customers). Owner and Admin have it by default.
- Per-user plugin permissions — Grant plugin-defined permissions (like "manage pricing") to individual users.
Getting Help & Support Access
- Support page — A dedicated section in your store admin with every way to reach us: live chat, email, and the documentation. (Owner/admin.) Start a chat and it follows you around your admin, so you can carry on working while you wait for a reply.
- Live chat is a Business/Enterprise benefit — Chat comes with the Business and Enterprise plans. On other plans the Support page points you to email and the documentation instead, with a link through to your plans.
- Chat hours — We're on live chat Monday to Friday, 9am–5pm Central. Outside those hours the page points you to email instead of opening a chat nobody's there to answer.
- Support codes — Generate a one-time code and give it to whoever is helping you — a support agent, a developer, a friend who knows the platform. When they enter it, they get temporary access to your store without you sharing a password or adding a permanent user. Choose how long it lasts: 1 hour, 24 hours, 3 days or 7 days.
- What a support session can do — Read your settings (general, theme, customer, shipping, tax, payments, search, usage) so the usual "my checkout isn't working" questions can actually be answered, and work on day-to-day data: orders, customers, products, coupons, records, fulfillments and memos. It can also edit your theme and configure your plugins — change a plugin's settings, turn one on or off, run its actions — because that's usually the whole reason you handed out the code. What it can't do: change any setting, issue refunds, delete or anonymize anything, export or import your data, log in as one of your customers, touch billing or your plan, see or change your team, or — on the plugin side — install or uninstall a plugin, edit plugin code, or see or change plugin credentials. Support access can't be granted by assigning a role — only by a code you generate.
- Always reversible — The Support page lists everyone currently holding access and when it ends. End any session immediately with one click, and every session expires on its own regardless. Granting and revoking are both recorded in your audit log.
- Codes expire fast — A generated code is redeemable once, within 30 minutes. If nobody uses it in time, it simply stops working — generate another.
- Entering a code — Anyone with a ShopsWired account can redeem a code from Enter Support Code in their account menu; the store it opens becomes available in their store switcher for the duration, with a banner making it clear they're working in someone else's store.
Store Settings
- Store identity — Name, slogan, currency, subdomain, and custom domains, all from Settings → General.
- Timezone — Set your store's own clock (e.g. America/New York). Your store keeps its records in universal time, so a timezone is what lets "today", your opening hours, and anything scheduled mean what you'd mean by them rather than what they'd mean in London. Plugins that deal in dates — schedules, bookings, reports, business hours — follow it automatically, so you set it once. Leave it unset and your store runs on UTC.
- Import & export — Settings → Import/Export moves your records in and out as
CSV: pick the entity (products, customers, orders, custom records…), export what
you have, or upload a file to update existing rows and add new ones. Rows are
matched by their
idcolumn, and a template download gets you the right headers.- Don't run plugin hooks for this import — an option on the import. Normally an import is a change your plugins should see, so anything that syncs, notifies or calculates from those records reacts to it, row by row. On a large file that is the slow part, and a strict plugin can reject rows you are deliberately correcting. Turning it off makes the import a quiet data load: plugins won't see these rows until the next time something changes them. The choice is recorded in the audit log alongside the import.
Account & Security
- Profile & password — Update your name and email; change your password.
- Two-factor authentication — TOTP authenticator-app 2FA (QR/secret enroll).
- Passkeys — Add passkeys (Touch ID / Face ID / security keys) for passwordless sign-in.
AI Assistants
Connect an AI assistant to your account and let it do the work you'd otherwise do in the admin: set up a store, build the catalog, adjust settings, browse and install plugins and themes, configure them, and edit your theme.
- Connect from anywhere — Under Account → Assistants, pick a store and copy its connection URL. Paste it into an assistant that supports connectors and it sends you back to ShopsWired to sign in and approve. For an assistant running on your own machine, create an access token instead and paste that.
- Choose the stores — Pick which of your stores a connection covers. Pointing it at a single store also gives the assistant that store's own plugin tools.
- Choose the access level — Restricted runs the store: products, orders, customers, coupons, settings, theme editing, and installing and configuring plugins. Full adds building and editing plugins, uninstalling plugins and themes, deleting records and importing in bulk. Full access needs you to be the owner or an admin of every store it covers.
- Always off limits — At either level, an assistant can never issue a refund, charge a saved card, buy a paid plugin, change billing or your plan, close a store, change your team or roles, read plugin secrets, or log in as a customer. Those stay with a person in the admin.
- Never more than you — A connection acts as you, and only within your own permissions on each store. Staff access produces a staff-level assistant.
- See everything it did — Every change an assistant makes is recorded in that store's audit log, marked as an assistant action and separate from your own.
- Its edits are your edits — An assistant editing a theme or plugin writes to the same place the admin's file editor does, so its work shows up there and yours shows up to it. It can also check what changed since it last looked, and fold a finished set of edits into the theme or plugin itself.
- Disconnect at any time — Disconnecting from Account → Assistants takes effect immediately and removes the entry; the connection's next request is refused. What it did stays in the audit log. Changing your password disconnects everything.
- Plugins can add their own tools — A plugin can publish tools of its own to a connected assistant, so "how much stock is left on ABC-1" or "sync the warehouse" becomes something you can just ask for. What an installed plugin offers is listed under Assistant Tools on its capabilities page, each with the description the assistant reads; they work while the plugin is active.
Multi-Shop
- Own multiple shops — A single account can own or belong to multiple stores, each with fully isolated data, and switch the active store from the admin shell. Billing and account settings span all of your stores.
- Create & close shops — Create new stores at any time. Owners can close a store from the Danger Zone: export Products/Orders/Customers to CSV first, then a step-up confirmation schedules permanent deletion after a 7-day recovery window you can abort.
Plans, Billing & Usage
- Plan tiers — Pro ($99/mo), Business ($249/mo), Enterprise ($499/mo), and Dedicated (custom, single-tenant, managed by our team). Higher tiers raise request throughput, background-task capacity, storage quotas, scheduled-job frequency, and data-retention windows.
- Billing accounts — Create multiple named billing accounts (e.g. "Personal", "Client ABC"), manage cards through the Stripe customer portal, transfer an account to another user, and assign each store to a billing account.
- Plan management — Subscribe, switch (with proration), or cancel a plan (access retained until period end); handles card setup and 3-D Secure.
- Usage view — See your current plan, storage usage (records and files) versus limits with projected overage, container-compute spend versus your monthly cap, and your plan's rate/retention limits.
Custom Domains
- Serve from your own domain — Add a custom domain and verify ownership via
CNAME + TXT records; see Verified/Pending status and remove domains. Use a
subdomain such as
www.example.comorshop.example.com— root domains (example.com) aren't supported yet, since DNS doesn't allow the required CNAME record on a root domain. Your store keeps its<name>.shopswired.comsubdomain too, and customer-facing links (emails, packing slips) automatically use your public domain. - Discoverability — Optionally list your store in the Wired Marketplace.
Wired — Reseller / Dropship Network
A native supplier ↔ reseller network that links ShopsWired stores so you can resell another shop's products (or let others resell yours). (Owner/admin; staff see fulfillments.)
- Outbound & inbound links — Wire to suppliers whose products you resell, and see resellers who sell yours. Discover and request suppliers (including by subdomain), and approve/reject inbound requests.
- Markup rules — Re-price a supplier's catalog with conditional markup by tag or attribute — percent, fixed amount, or "request for price" — choosing which source price to mark up. The supplier's wholesale figures are never exposed to your customers.
- Fulfillments & ledger — Wired orders create supplier fulfillments automatically, and a financial ledger tracks balances across your wired relationships and payouts (Stripe Connect).
Plugins & Marketplace
- Browse & install — A built-in marketplace with Featured, Themes, and Plugins sections, search, and per-item detail (readme, versions, pricing). Free items install directly; paid items support one-time purchase, monthly subscription, or tiered plans.
- Manage installed plugins — Activate/deactivate, uninstall, install from a
.zip, clone, check for and apply updates, and switch versions. - Plugin settings — Each plugin exposes a settings form, optional secrets, a storage browser, and in-app purchase products. You can run a plugin's scheduled jobs on demand and trigger its manual actions, with output in a logs view.
- In-app purchases — Plugins can sell you one-time unlocks or consumable credits after install; you're charged through Stripe and the developer is paid a share.
Developer Tools
For merchants who build their own plugins/themes or work with a developer.
- Developer mode & CLI — Enable developer mode to use the
shopswiredCLI for local plugin/theme development (bypasses caching on your preview subdomain), and authorize the CLI with a one-time code. - Container jobs — On paid plans, opt in to let plugins run isolated container jobs (image/PDF/OCR/scraping/builds) with per-size pricing and an owner-set monthly compute budget cap.
- Payment webhooks — A per-shop payment webhook URL to register with your gateway so refunds and async payment updates sync back.
- Log level & asset cache — Set script log verbosity and bust the edge asset cache to force fresh theme/plugin assets.
- Pages that change by country — Storefront pages are stored and reused, so the same page is served to everyone who asks for it. If your theme shows something different depending on where the shopper is, turn this on and each country gets its own stored copy; leave it off otherwise, since it multiplies the stored copies of every page by the number of countries you sell to. Cart, checkout and account pages are unaffected — they are never stored. Switching it either way clears the pages already stored, so the change takes effect right away.
- Automatic abuse protection — Every store is protected against clients that request pages far faster than a person can read them: scrapers, misconfigured crawlers, and audit tools left on a high thread count. Real shoppers are nowhere near the threshold — signed-in customers are measured individually, so a whole office shopping from one connection is never treated as one visitor — and checkout is never subject to it, so a customer paying is never turned away. Verified search engines are exempt, so indexing is unaffected. A client that is asked to slow down gets a plain "too many requests" page and can carry on a few seconds later; nothing is blocked for longer than that. Nothing to configure; contact support if a store has a legitimate reason to need more.
- When the store is at capacity — Plugins normally wait their turn when the store is busy, so a busy moment costs a little speed and nothing else. If a request runs out of time waiting, you choose what happens: serve anyway (the default — the page goes through without that plugin's work, and the plugin is named in its log), or fail the request so nothing completes half-done. Serve anyway keeps the store up; fail is the right choice when a plugin affects prices, tax or stock, where quietly skipping it is worse than a visible error. Checkout is protected either way. While an order is being priced, plugins that set tax, shipping, discounts or prices wait much longer than anywhere else, and if one still cannot run the checkout stops with a message telling the shopper nothing was charged — rather than quietly taking payment for an order priced without it. This does not depend on the setting above, and it applies before any money moves, so a stopped checkout costs the shopper a retry and the merchant nothing.
- Sell on the Marketplace — Connect a Stripe account to sell paid plugins and themes (platform fee applies).
- Submit, withdraw, and resubmit versions — Submitting sends the version you
currently have installed for review. While it is still awaiting a decision you can
withdraw it, and a withdrawn or rejected version can be submitted again under the
same version number once you've made changes — a number is only used up once the
version has been approved, because from that point other stores can install it and
it has to keep working exactly as it did. Only then do you need to bump the version
in
manifest.jsonto submit an update. - Earnings — Track what your paid plugins and themes have earned: each sale lists the item, date, amount, and whether it has reached your Stripe account. Paid amounts arrive in your Stripe balance and then follow your own Stripe payout schedule to your bank. Anything still pending is money you're owed — it is re-sent, never dropped.
Audit Log & Compliance
- Audit trail — An automatic log of create/update/delete actions across products, orders, customers, coupons, custom records, and settings. Each entry records the actor (user, customer, system, script, plugin, or a connected AI assistant), IP address, and before/after changes (secrets are never exposed).
- Filter & retain — Filter by action, entity, actor, IP, or plugin; older entries are trimmed per your plan's retention window. Filtering by actor type answers "did someone outside my team do this?" — pick mcp for changes made by a connected AI assistant or support for a support session. Surfaced under the reports capability.