Description
Ambikly is a complete store, not a framework you have to assemble. Install it, run the setup wizard, and you have products, a cart, checkout, orders, coupons, shipping, tax, and customer accounts working the same day — no separate payments extension, no separate “core” plugin to hunt down first.
Website: ambikly.com · Docs: docs.ambikly.com · Free vs Pro: ambikly.com/free-vs-pro
What you can sell
- Physical products — simple or with variants, each variant carrying its own price, image, SKU and stock
- Digital downloads — token-protected file delivery with per-product download limits and expiry, plus optional pricing plans so one file can be sold as several licences
- B2B / wholesale — company accounts with net-terms billing (Net 7, 15, 30, 60 or 90), a credit limit, a tier discount, and several buyers sharing one account
- Subscriptions, gift cards, bundles and more — available when you need them through Ambikly Pro, not a rewrite
A checkout that’s actually finished
- Cart, checkout, and a customer account area — orders, downloads, saved addresses, profile — all included, not a separate purchase
- Stripe and PayPal built in, with webhook signatures verified server-side before any order is marked paid — plus Cash on Delivery, Direct Bank Transfer and Check Payments for offline sales
- Shipping zones with flat rate, free shipping and local pickup
- Tax rates by country, state, postcode or city — inclusive or exclusive, with compound rates and per-class rules
- Coupons with percentage or fixed discounts, minimum and maximum spend, total and per-customer usage limits, product include/exclude rules, customer-email restrictions, and free shipping
Run the back office from one screen
- Orders with line items, notes, a guarded status workflow, partial and full refunds, and printable invoices and packing slips
- Products, categories, customers, companies and coupons, each with search, filtering, sorting and bulk actions
- Reports — sales by day, order-status breakdown, best sellers, and CSV export
- Product reviews with moderation
- Transactional emails with editable subjects and bodies, smart tags like
{{order_number}}, a one-click test send, and a preview that opens in a new tab - Outgoing webhooks to Zapier, Slack or any HTTPS endpoint, HMAC-signed with automatic retries and a delivery log
- CSV import and export for products and orders
- Dark mode and a responsive admin that works on a phone
Built for developers, not around them
- A REST API under
/wp-json/ambikly/v1/, authenticated the same way as any other WordPress endpoint — no separate API key system to manage - Eight block-editor blocks — Product Grid, Featured Product, Add to Cart, Mini Cart, Cart, Checkout, Customer Account and Product Reviews — each with its own settings panel and a live preview in the editor, plus shortcodes for classic themes and page builders
- WP-CLI commands for database upgrades, CSV exports and recomputing customer totals
- A real PHP hook/filter system through checkout, orders and pricing — extend behaviour without forking core files
- Your data lives in your own database tables, in your own WordPress install — export it, query it, or move hosts whenever you want
Zero transaction fees, ever
Ambikly never takes a cut of your sales. You keep 100% of what you charge, minus only whatever your payment processor itself charges. There is no hosted-checkout tier and no fee schedule that changes as you grow.
Need more? 35+ add-ons, one licence
Ambikly Pro is a single add-on pack — one licence activates every module below, with no per-feature upsells.
Store experience: Advanced Variations · AJAX Filters · Product Compare · Quick View · Recently Viewed · Product Badges · Smart Search · Sticky Add to Cart · Size Chart · Wishlist
Marketing & sales: Abandoned Cart Recovery · Affiliate System · Dynamic Pricing · Flash Sales · Gift Cards · Loyalty Points · Order Bumps · Popup Campaigns
Checkout & recurring revenue: Subscriptions · Post-purchase Upsells · One Page Checkout · Checkout Field Editor
Merchandising: Product Bundles
Digital products: Software Licensing Pro · PDF Stamping · Download Analytics
Physical products: Advanced Shipping · Multi-vendor · Shipment Tracking
Customer features: Social Login · Store Credit Wallet
Admin & analytics: Advanced Reports · CRM Sync
AI-assisted: AI Product Descriptions · Frequently Bought Together
Browse the full add-on catalog or see the free vs. Pro comparison.
External services
This plugin connects to the following third-party services when you enable the corresponding payment gateway:
- Stripe — card and wallet payments are processed by Stripe when the Stripe gateway is enabled. Checkout data (amount, currency, and billing details you provide) is sent to stripe.com to create and confirm the payment. See Stripe’s Privacy Policy and Terms of Service.
- PayPal — payments are processed by PayPal when the PayPal gateway is enabled. Order and buyer details are sent to paypal.com to create and capture the transaction. See PayPal’s Privacy Policy and Terms of Service.
Neither service is contacted unless the corresponding gateway is enabled and used at checkout.
Screenshots









Blocks
This plugin provides 8 blocks.
- Add To Cart
- Mini Cart
- Product Grid
- Cart
- Checkout
- Customer Account
- Reviews
- Featured Product
Installation
Minimum requirements
- WordPress 5.4 or greater
- PHP 7.4 or greater
- MySQL 5.6 or greater
Automatic installation
- Go to Plugins Add New in your WordPress admin and search for “Ambikly.”
- Click Install Now, then Activate.
- Go to Ambikly in the admin menu and follow the setup wizard to set your country, currency, shipping, tax and first payment method. It also creates your Shop, Cart, Checkout, My Account and Order Received pages.
- Add your first product under Ambikly Products, or use Ambikly Tools Add sample products to get a working catalogue to look at straight away.
Manual installation
- Upload the
ambiklyfolder to/wp-content/plugins/. - Activate the plugin through the Plugins screen.
- Follow the same setup wizard steps above.
Need a hand? Full setup guides live at docs.ambikly.com.
FAQ
-
Does this require another e-commerce plugin?
-
No. Ambikly is a standalone store — it does not require, extend, or run on top of any other e-commerce plugin.
-
Will this work with my theme?
-
Yes. Ambikly’s storefront pages (shop, cart, checkout, account) render inside your active theme’s normal page template, so they inherit your theme’s fonts, colours and layout. If your theme constrains page content to a narrow reading width, the storefront widens itself so the product grid isn’t squeezed into a column. The eight blocks work in any block theme, and shortcodes cover classic themes and page builders.
-
Which payment gateways are supported?
-
Stripe and PayPal are built in, along with Cash on Delivery, Direct Bank Transfer and Check Payments for offline orders. Webhook signatures are verified server-side for both Stripe and PayPal before an order is ever marked paid.
-
Does Ambikly take a cut of my sales?
-
No. There are no transaction fees or revenue share of any kind — you pay nothing beyond your own payment processor’s standard rates.
-
Can I sell digital and physical products together?
-
Yes. Each product is created as either a physical product (with shipping, stock and variants) or a digital product (with file downloads, download limits and optional pricing plans), and both can appear in the same shop and the same order.
-
Will Ambikly slow down my site?
-
Ambikly’s admin is a separate React application that only loads on Ambikly’s own admin screens — it never adds weight to your other wp-admin pages. The storefront ships plain, minimal JS and CSS with no framework dependency.
-
Is there an API?
-
Yes — a REST API under
/wp-json/ambikly/v1/covering products, orders, customers, coupons and more, authenticated the same way as other WordPress REST endpoints. There are alsowp ambiklyWP-CLI commands. See the developer docs for the full route reference. -
Can I customise the checkout or storefront templates?
-
Yes. Every storefront screen is built from overridable templates and fires WordPress actions and filters at the points that matter (cart totals, checkout fields, order creation), so you can adjust behaviour from a theme or a small companion plugin without touching Ambikly’s own files.
-
I’m moving away from another cart plugin — will my data still be mine?
-
Yes. Ambikly stores everything in its own plain database tables inside your own WordPress install. There’s no hosted service holding your orders or customer list hostage — export, query or migrate whenever you want.
-
What’s the difference between Ambikly and Ambikly Pro?
-
Ambikly (this plugin) is a complete, free store: products, checkout, orders, coupons, shipping, tax and reviews. Ambikly Pro is an optional add-on pack for stores that need subscriptions, gift cards, marketplaces, bundles and 30+ other modules — one licence, everything included. Compare them at ambikly.com/free-vs-pro.
-
What happens to my data if I deactivate or delete the plugin?
-
Deactivating never touches your data. Deleting the plugin from the Plugins screen also keeps every product, order, customer and setting by default, so you can reinstall later without loss. If you want a full wipe, first turn on Ambikly Settings Features & Addons “Remove all data when the plugin is deleted”: uninstalling will then drop every Ambikly table, option, scheduled task and the Store Manager / Support Agent roles (users holding only one of those roles are left without a role). Shop pages and uploaded files are never deleted.
-
Where can I get support?
-
Community support is available on the wordpress.org support forum. Pro customers get priority email support — see ambikly.com/support.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Ambikly – Sell Online: Cart, Checkout & Digital Downloads” is open source software. The following people have contributed to this plugin.
Contributors“Ambikly – Sell Online: Cart, Checkout & Digital Downloads” has been translated into 2 locales. Thank you to the translators for their contributions.
Translate “Ambikly – Sell Online: Cart, Checkout & Digital Downloads” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.5
Makes the block-editor blocks usable, and corrects the documentation.
- Fix: all eight block-editor blocks were registered on the server only, so WordPress would render one already present in a page but never offered it in the inserter — no title, no icon, no category. Adding one meant hand-writing
<!-- wp:ambikly/mini-cart /-->into the code editor. Each block now appears in the inserter under Widgets, with its own settings panel and a live server-rendered preview in the editor. - Docs: the uninstall opt-in was documented as living under “Settings Advanced”, a tab that no longer exists. It is under Settings Features & Addons.
- Docs: coupons were described as supporting category restrictions. They restrict by product, by customer email, and by minimum/maximum spend — not by category.
- Docs: the email template preview opens in a new tab rather than rendering inline, and the description now says so.
- Docs: readme rewritten so every capability listed is one the plugin actually ships — variant images, local pickup, Net 7–90 terms, postcode and city tax rules, WP-CLI commands and CSV import/export were all present but undocumented.
1.0.4
Correctness and contrast fixes found in a full click-through audit of every screen.
- Fix: a manual order created in wp-admin attached to whichever customer record was linked to the logged-in administrator’s own account, not the customer the merchant picked. The chosen customer kept an empty order history, and the admin-linked record had its name and phone overwritten with the buyer’s details.
- Fix: on Reports, switching “Compare to previous period” on showed nothing at all when the previous period had no activity — a percentage change from zero is undefined, so the card rendered blank and the comparison looked broken. It now says so. (Regression introduced in 1.0.3.)
- Fix:
wp ambikly recompute customer-totalscounted orders differently from every screen that displays them — it excluded refunded orders, so a customer with one fully-refunded order was stored as having none while the admin and My Account both showed one. It also reported “0 customer(s)” on runs that had just reset a row. - Fix: the “Explore Ambikly Pro” button rendered wp-admin’s dark grey on orange instead of white, and the “Unlock Ambikly Pro” heading rendered near-black on its orange banner. Both were losing a CSS cascade fight to wp-admin’s own unlayered element styles.
- Fix: in dark mode the selected tab on the Emails screen was effectively invisible (dark orange text on a dark orange fill). Several colours at the darker end of each palette had no dark-mode equivalent at all.
- Fix: the “Out of stock” and variant-count badges, and the short-description character counter, were below the AA contrast threshold.
- Fix: invoices showed only their own sequential number, with nothing tying them back to the order. Packing slips have always shown it.
1.0.3
Interface, accessibility, and refund-integrity fixes.
- Fix: every money figure in the admin was printed without thousands separators — the Dashboard and Reports headline numbers read “$2656383.23” instead of “$2,656,383.23”.
- Fix: the admin ignored the store’s “Currency position” setting, so a store configured for a right-hand symbol saw it on the left everywhere in wp-admin while the storefront showed it correctly.
- Fix: report chart axis labels were raw fractions of the largest value (“$2582617.78”); they now round to readable steps and abbreviate (“$2.6M”).
- Fix: chart gridlines, axis and tick labels were hardcoded light-theme greys and stayed light in dark mode.
- Fix: on the Products list the Actions column painted over the Status column — the header read “Sta” and every status pill was clipped to a single letter.
- Fix: Reports stat cards printed “vs previous period” under every figure even with comparison switched off.
- Fix: the Store Description field’s placeholder promised “Press Enter to save, Ctrl+Enter for new line”; no such handling existed.
- Fix: order emails, invoices and packing slips used indigo for links and buttons instead of the Ambikly brand colour.
- Fix: shop-grid cards let their buttons float at different heights when product names wrapped to different line counts; long titles also stretched the grid.
- Fix: the storefront was squeezed into the narrow reading-width container some themes apply to page content, rendering a three-column grid at a third of the available width. It now centres on the viewport, and does nothing on themes that already give it room.
- Fix: “7066 product(s)” and “3 review(s)” are now properly pluralised and digit-grouped (“7,066 products”, “3 reviews”).
- Fix: the “Out of stock” button was white text on a faded orange fill (~1.9:1) — the least readable text on the shop grid. It now uses a legible neutral disabled style.
- Fix: the missing-image placeholder was a 📦 emoji, which renders differently on every operating system. It is now a plain SVG icon.
- Fix: importing a CSV that omits optional columns — the documented, ordinary case — emitted around 22 PHP warnings per row, which on sites that display errors corrupted the import response and made a successful import report a failure.
- Fix: a webhook could be saved against an event name Ambikly never emits. It stayed “Active”, logged no deliveries and reported no error. Unknown events are now rejected at save time.
- Fix: 48 form controls across the Coupon, Company, Category, Order, Tools and digital-product screens had a visible label that was never associated with the field, so screen readers announced them as unnamed. The shared field wrappers now bind label to control automatically.
- Fix: refunds were capped by the order total rather than by the amount actually captured, so an unpaid bank-transfer or cheque order could be “refunded” — restoring stock and emailing the customer a refund notice for money they had never sent. The Refund button is now disabled on such orders, and the server refuses the request.
- Fix: the variant grid and the manual-order line-item table had header cells without
scope, which is what associates the unlabelled per-variant price and stock inputs with their column. - New: nine replacement plugin-directory screenshots taken from a clean store.
1.0.2
- Fix: fatal error on PHP 7.4 whenever an order, product or other record was JSON-encoded or accessed as an array (
mixedreturn types are PHP 8 only). Affects every 1.0.1 site on PHP 7.4. - Fix: guest buyers returning from Stripe or PayPal landed on a generic thank-you page — their cart was never cleared and the order-completed event never fired. Both return URLs now carry the order key.
- Fix: a cart line could reference another product’s variation and, at order time, decrement that other product’s stock.
- Security: editing a customer linked to a WordPress account no longer lets a Store Manager change that account’s login email (administrators only).
- Fix: any REST route with an id in the URL could be pointed at a different record by adding an
idto the request body (e.g. editing customer A saved customer B). - Fix: a checkout billing name containing HTML/script landed unescaped in the order confirmation and admin notification emails.
- Fix: logging in with items in a guest cart deleted the account’s existing cart instead of merging it.
- Fix: two simultaneous checkout submissions for the same cart created two orders and decremented stock twice.
- Fix: an order’s status could be set straight to “Refunded” from the dropdown or API without any refund happening; a refunded order could later be moved to another status.
- Fix: tax-inclusive pricing charged tax on top of the inclusive price.
- Fix: digital products created from the quick-add modal, the REST API, CSV import or the sample importer were unpurchasable (“Out of stock”) by default.
- Fix: bulk-editing variations always failed with a database error; clearing a variation price saved 0 instead of empty.
- Fix: exporting products to CSV and re-importing the file cleared every SKU.
- Fix: Stripe refunds issued from the Stripe dashboard were recorded with the cumulative refunded amount; the second partial refund was over-recorded or rejected. Refunds are now idempotent per gateway refund id, so an admin refund echoed back by the gateway webhook is not recorded twice.
- Fix: cancelling and later reopening an order left stock overstated and B2B credit under-reserved; cancelled or failed orders kept their coupon usage forever.
- Fix: deleting an order left its refunds, coupon usage and still-working download links behind.
- Fix: Stripe/PayPal checkouts the buyer never finished held stock indefinitely — they now expire to “Failed” after 24 hours (filter
ambikly_pending_gateway_order_ttl). - Fix: a missing column on the categories table caused the upgrade routine to drop and recreate the table; columns are now added in place.
- Fix: paid card orders emailed the customer twice and declined attempts emailed the merchant a “new order”.
- Fix: variable-product cart lines never recorded which variation was chosen; sold-out variations kept “Add to Cart” enabled; the mobile cart clipped the totals and checkout button off-screen.
- Fix: logged-in customers’ cart actions failed with a 403 once their nonce went stale mid-session.
- Fix: a WordPress account checking out with a different billing email created a second, disconnected customer record and broke address prefill.
- Fix: the “Create an account during checkout” setting had no effect.
- Fix: duplicate canonical tags and a per-product meta title that never reached
<title>on product pages; unstable product sort order across pages; plan-priced digital products sorted as $0. - Fix: the setup wizard could create duplicate My Account / Order Received pages when re-run; wizard settings are now saved under the same keys the Settings screen reads.
- Fix:
Install::create_tables()could reset the database version and re-run the full migration on every request. - Security: hardened cart/checkout input (quantity ceiling, nested address payloads, client-controlled
created_via), added a coupon brute-force throttle, sanitized customer name/phone/email at write time, and stopped a raw database error leaking on duplicate tag/brand slugs. - Accessibility: product-editor drawers are keyboard-reachable, every form control has a label, visible focus rings, skip-to-content link,
aria-currentnavigation markers, table header scopes, live region for add-to-cart, reduced-motion support, and contrast fixes throughout the admin and storefront. - Add: Settings Advanced “Remove all data when the plugin is deleted” (the uninstall opt-in previously had no UI). Removed three Advanced toggles that had no effect.
- Add: manual orders support coupons; Stripe key format validation; name/SKU length and negative-stock validation with clear errors.
- Dev: 147 PHPUnit regression tests covering the fixes above; PHP 8.4 deprecation fixes.
1.0.1
- Fix: two admin links (the setup wizard’s “Add a product” button and the low-stock/out-of-stock email’s “Manage product” link) pointed at an unregistered admin page and returned a 403 instead of opening the product editor.
- Add: a “Add sample products” tool (Setup Wizard finish step and Tools screen) that creates 5 example products — simple, variable with real variations, digital download, digital with multiple pricing plans, and one on sale.
- Add: a “Rerun setup wizard” shortcut on the Tools screen.
1.0.0
- First stable release.
