Compare
KahunaCart vs Squarespace
Squarespace puts your website, store and hosting in one plan, with a free domain for the first year when you pay yearly. KahunaCart runs your shop inside Grav, on a PHP host you choose, with a one-time license. Compare features, three-year costs and moving your store. Checked against Squarespace's Basic, Core, Plus and Advanced plans in October 2026.
The short answer
Which fits your store?
Start with what your store needs.
Choose Squarespace when
- You want to design pages visually and leave hosting and updates to Squarespace.
- You want your site, domain, email campaigns and scheduling from one company.
- You sell subscriptions or member-only content and want them in the plan.
Choose KahunaCart when
- You want to own your site and data, and are willing to run it on your own PHP host.
- You prefer a one-time license to a monthly plan.
- You need discount codes, quantity-based prices or different prices for customer groups included.
- You want bookings, rentals, subscriptions or license keys as add-ons you buy once.
- You want your shop and content site in Grav.
Headline differences
Running the store
Hosting and ownership
Every Squarespace plan includes hosting and SSL. Squarespace runs the servers, checkout, security and updates. Each site needs its own plan.
KahunaCart runs on a PHP host you choose. Your site and data stay under your control. A first store uses SQLite, so there is no database server to set up. You pay for hosting and keep your own backups, and one export holds the whole store, orders and customers included, ready to restore on another server.
Products and discounts
Squarespace includes unlimited products, gift cards, abandoned cart recovery, reviews, add-on products and customer accounts on every plan. Discounts, carrier-calculated shipping, related products, waitlists, quantity limits and sales analytics start at Core.
KahunaCart includes discount codes, lower prices for larger quantities, price lists for customer groups and batches of unique coupon codes. The matrix records the last three as unavailable on Squarespace. KahunaCart also includes wishlists, priced product options and per-variant attributes. Squarespace uses extensions and widgets from other developers for wishlists, bundles and wholesale ordering.
Order changes and refunds
Squarespace orders are Pending, Fulfilled or Canceled. The matrix records no way to change the items on a placed order. Squarespace can restock a canceled order but not a partial refund.
KahunaCart lets you define your own order statuses and edit a placed order. It also issues a credit note when you refund a payment.
Tax
Squarespace lets you set manual rates by country, state, ZIP code and Canadian province. Its tax guides say customers cannot be exempted. Automated tax for the US, EU and UK starts at Core, with a fee on each order.
Payments and fees
Squarespace Payments, Stripe and PayPal take online payments. Squarespace Payments charges 2.9% + 30 cents per card on Basic and Core, 2.7% + 30 cents on Plus and 2.5% + 30 cents on Advanced, and those rates apply only with Squarespace Payments. Basic also takes 2% of online store sales. Core, Plus and Advanced charge no online store transaction fee.
KahunaCart adds no transaction fee. Your payment provider's charges still apply. Stripe, PayPal and Polar come with every license, plus offline and test payments. Moneris, Mollie, Square, Paddle, Lemon Squeezy and SumUp are one-time add-ons, and four more providers are coming soon.
Paid add-ons
Bookings, Rentals, Subscriptions, License Keys, Newsletters and Print on Demand are separate KahunaCart add-ons you buy once. Squarespace download products send a file link, and its help center describes no license keys.
Side by side
Feature comparison
These are selected categories from the full comparison. Matching rows are omitted unless they have a note. Squarespace plans were checked on 10 October 2026. Included means available on Basic without an extension. Partial often means you need Core or higher. Add-on means made or owned by Squarespace, such as Acuity Scheduling. Third-party means supplied by another developer. KahunaCart booking and rental rows were checked on 21 September 2026. Both are paid add-ons. Unverified means we have not established whether a feature is supported.
- ✓ In the box
- + Official add-on
- 3rd Third-party
- ~ Partial
- ✗ Not available
- ? Unverified
Platform, licensing & pricing 5 features
| Feature | KahunaCart | Squarespace |
|---|---|---|
Perpetual licence, so the shop keeps working when updates lapse |
KahunaCart: In the box | Squarespace: Not available |
| Not a rental: a licence includes a year of updates, and renewing afterward is optional. If you let it lapse, the shop keeps running exactly as it is. You simply lose the ability to install new versions until you renew. | ||
Host platform is free, with no separate licence on top of the commerce one |
KahunaCart: In the box | Squarespace: Partial |
| Grav is free, so there is no CMS licence to buy alongside KahunaCart. Optional features such as Bookings and Rentals are separate paid add-ons; they do not require a paid edition of Grav. | ||
Runs on ordinary shared PHP hosting |
KahunaCart: In the box | Squarespace: Not available |
| KahunaCart needs nothing exotic: no queue server, no separate search server, and no extra runtime beyond ordinary PHP. It runs on the same shared hosting an ordinary Grav site runs on, with background tasks handled on a simple schedule rather than a constantly running process. | ||
Zero-config datastore (SQLite or flat file) for a first store |
KahunaCart: In the box | Squarespace: Not available |
| A first store needs no database setup at all, since it works out of the box with no server database required. Larger stores can move to a full database server later, and the underlying structure stays the same either way, so switching does not mean starting over. | ||
Released in the last six months (as of August 2026) |
KahunaCart: In the box | Squarespace: In the box |
| KahunaCart is a first release. That is the honest caveat on everything else here: the feature set is wide, but there is not yet a long production track record behind it. | ||
Catalog & taxonomy 13 features
| Feature | KahunaCart | Squarespace |
|---|---|---|
CMS-native product records and inherited content workflows |
KahunaCart: Not available | Squarespace: Partial |
| KahunaCart deliberately keeps products out of Grav's page tree so a growing catalogue can use purpose-built indexes for filtering, sorting and search. Product pages still render through the same theme and KahunaCart supplies their routing, structured data, SEO metadata and sitemap entries. Platforms that store products as CMS content instead inherit editorial features such as revisions, preview and multi-site workflows, which can be the better trade for a small, content-led catalogue. | ||
Commerce-owned category tree |
KahunaCart: In the box | Squarespace: In the box |
| Categories form a real tree that KahunaCart manages directly, with no limit on how deep it can nest. Reordering categories is quick even in a long list, and you cannot accidentally move a category inside its own subcategory, which would otherwise detach a whole branch without warning. Deleting a category moves its children up a level rather than losing them. | ||
Typed product attributes / specs (non-variant) |
KahunaCart: In the box | Squarespace: Not available |
| Products can carry a wide range of attribute types, such as text, numbers, and yes or no. For each one you can choose whether it can be used to filter the catalog, whether it appears in the filter panel, and whether it shows on the product page. Filtering stays fast even with a large catalog. | ||
Faceted filtering on the storefront |
KahunaCart: In the box | Squarespace: Partial |
| Shoppers can filter the catalog by multiple attributes at once, including whether a product is on sale, and this stays fast even on a large catalog. Filter counts reflect how many matching products exist in total, not just how many appear on the current page. | ||
Ranked full-text storefront search with typo tolerance |
KahunaCart: In the box | Squarespace: Unverified |
| On compatible hosting, bundled YetiSearch provides a BM25-ranked full-text index and retries an empty search with typo correction, so 'rucksak' can still find Rucksack. KahunaCart falls back first to the database's full-text search and then to a portable scan, so search keeps working on any supported host. Refined database searches can also use merchant-managed synonyms, such as treating 'jumper' as 'sweater'. | ||
Manual product ordering and a featured flag |
KahunaCart: In the box | Squarespace: In the box |
| Manual ordering and featuring are two separate tools. You can set your own order for the whole catalog, and separately mark specific products as featured so they always appear first in listings regardless of sort order. You can turn off featured placement on the storefront at any time without losing which products are marked featured. | ||
Product reviews and ratings |
KahunaCart: In the box | Squarespace: In the box |
| Reviews and star ratings are built in and will stay in core. Shoppers rate from one to five stars with an optional title and written review, and you can moderate submissions before they go live. An average rating displays once at least one review is approved, and a verified purchase badge is calculated automatically from a customer's own paid orders rather than being something you can award by hand. | ||
Related products / cross-sell / upsell |
KahunaCart: In the box | Squarespace: In the box |
| Related, cross-sell and upsell products are chosen and ordered by you, not generated automatically from shared categories. This means what a shopper sees next is a deliberate recommendation rather than a guess. | ||
Product bundles / kits |
KahunaCart: In the box | Squarespace: Third-party |
| A grouped product names a fixed set of products and adds them all with one button. Tick Sell as a set and the set has its own price, with one price per currency: whenever the cart holds a full set, however the parts got there, the set costs that price. Each part stays its own line in the cart and comes off its own stock. | ||
De-normalised catalog index for scale |
KahunaCart: In the box | Squarespace: Unverified |
| Behind the scenes, KahunaCart keeps a fast lookup structure for your whole catalog, so listings, filters, sorting and search keep performing well as the catalog grows. This has no effect on a small catalog and costs nothing until you actually need it. | ||
Priced product add-on options |
KahunaCart: In the box | Squarespace: Partial |
| An add-on option, like gift wrap, engraving or an extended warranty, can carry its own extra cost, added and taxed with the product. Once a customer adds it to their cart, that price is locked in, so changing the option's price later does not change an order already placed. | ||
Product-type registry that add-ons can extend |
KahunaCart: In the box | Squarespace: Not available |
| KahunaCart ships with several product types built in, including grouped products, external products and kits, and add-ons can introduce further types of their own. Changing a product from one type to another is safe and reversible: the information from its old type is kept rather than deleted. | ||
Product revisions, restore and scheduled publishing |
KahunaCart: In the box | Squarespace: Partial |
| Every save of a product takes a full snapshot: variants, options, prices, media, categories, tags, attributes, kit contents and translations, all of it. You can read the list and put any earlier version back, and what comes back is the same rows under the same identifiers rather than fresh copies, so nothing else that pointed at them has to be repaired afterwards. Two things are never restored and the documentation says so out loud: stock, because rewinding it would un-sell whatever has sold since, and product files, because those point at bytes on disk. A restore writes a new version rather than rewinding, so the version you restored from is still there to go back to. A price change or a publication date you set for next Tuesday is the same mechanism with a date on it rather than a second one to learn. | ||
Cart & checkout 14 features
| Feature | KahunaCart | Squarespace |
|---|---|---|
Cart and order are the same record in different states |
KahunaCart: In the box | Squarespace: Unverified |
| A cart and the order it becomes are the same record, just at an earlier stage, so nothing gets copied or can disagree between the two. This also means an abandoned cart, a retried payment, and a payment link a merchant sends by hand are all handled the same simple way rather than needing separate systems. | ||
Guest order converts to an account afterwards |
KahunaCart: In the box | Squarespace: In the box |
| A guest shopper is offered the chance to create an account on the receipt and in their order emails. That account is only created once the order actually completes, so a declined payment never leaves a half-created account behind. | ||
Cart merge or adoption on login |
KahunaCart: Partial | Squarespace: Unverified |
| KahunaCart deliberately does not merge carts. If a customer logs in with no items already in their session and exactly one unfinished cart on file, that cart is restored. It never combines two carts together and never touches a cart already in progress, since a silent merge could change a shopper's total without warning. | ||
Multi-step checkout shipped and working |
KahunaCart: In the box | Squarespace: In the box |
| A complete, working checkout is included. For physical products, it becomes a two step checkout once you have set up shipping zones, since a shipping cost cannot be calculated before an address is known, and the button always accurately describes what it will do next. | ||
Declarative custom checkout fields with conditional logic |
KahunaCart: In the box | Squarespace: Partial |
| The checkout form is a list of fields you edit rather than a template you fork. Every field the checkout draws can be reordered, relabelled, required, hidden or switched off from the admin, and you can add your own: a VAT number, a delivery date, a purchase-order reference. Whether a field is required, whether it is hidden, and what counts as a valid answer are each written with the same rule builder you already use for sales and coupons, so "required when the billing country is in the EU and the customer is a company" is two conditions rather than code. An add-on can add a field the same way, and your edits to that field survive the add-on being switched off and back on. A value posted for a field the checkout is not currently showing is refused rather than quietly stored, so hiding a field really does hide it. Company name and a billing phone number ship as fields you switch on. | ||
Shipping/tax estimate on the cart page before checkout |
KahunaCart: In the box | Squarespace: Not available |
| The shipping and tax estimate shown on the cart page is calculated the same way checkout will actually charge, so the number a shopper sees is not a rough guess. It only asks for a state or postcode when your shipping or tax setup actually needs that detail. One known limitation: if you use a payment provider that handles tax on your behalf, the cart page still shows your store's own local estimate rather than that provider's number. | ||
Express pay (Apple Pay / Google Pay / one-click) |
KahunaCart: In the box | Squarespace: In the box |
| The express-pay region is built into both the cart and the checkout page, and every button that goes in it is drawn to one published style contract, so two wallet buttons from two different providers can never sit at different heights or corner radii. The button itself comes from your payment provider. Stripe ships one, so a Stripe store gets Apple Pay and Google Pay in the region today; on the other gateways the region stays empty until that provider adds a button. Card details still never pass through KahunaCart, which is exactly why the button belongs to the provider rather than to the store. | ||
Abandoned-cart capture |
KahunaCart: In the box | Squarespace: In the box |
| A cart is recorded as abandoned once a shopper has reached checkout and provided an email address, rather than counting every visitor who merely added something to a cart and left. | ||
Abandoned-cart recovery email |
KahunaCart: In the box | Squarespace: In the box |
| One recovery email per abandoned cart, and optionally one reminder after a delay you choose. That is the whole feature: there is no third message, no campaign builder and no scheduling screen, because longer sequences belong in a marketing tool rather than in a shop. Both messages are switched off by default and stay off through an update, so upgrading KahunaCart never suddenly emails a backlog of old abandoned carts without you choosing to turn it on. | ||
Recovery link that puts the abandoned cart back |
KahunaCart: In the box | Squarespace: In the box |
| The recovery email carries a link that puts the whole cart back in one press, so a customer does not have to find nine items again. The link opens a page listing what would come back and what it costs today, and nothing is restored until the customer presses the button, because mail scanners and link previewers follow links in an inbox and would otherwise restore carts nobody asked for. Prices are today's prices: a cart abandoned in March and restored in June is priced as June prices it, and any line whose price has moved is called out by name. A line whose product has been deleted, unpublished or sold out is dropped with a note saying so and the rest of the cart still comes back. A cart counts as recovered once, however many times its link is opened, and you can revoke a single link without affecting any other link the store has sent. The same machinery gives you a share link for a cart you built with a customer over the phone: single-use, short-lived, and it can ask for the email address on the cart before it opens. | ||
Deposits and part payment |
KahunaCart: In the box | Squarespace: Partial |
| A customer can pay part of an order now and the rest later. Each order gets one payment collection holding a row per attempt, marked as the deposit, the balance or a refund. The order is not treated as paid until the balance clears, and it carries a part-paid status of its own that reports and add-ons read rather than working it out from the amounts. The balance is collected through the same pay link the order already has, so there is nothing new for a customer to learn, and a Collect balance action chases it with a message that says what the order comes to, what has been paid and what is left, recorded on the order so anyone can see it was sent. Refunding just the deposit is an ordinary refund against that collection, and a payment notification that arrives twice cannot take the money twice. | ||
Minimum, maximum and pack-size quantities per product |
KahunaCart: In the box | Squarespace: Partial |
| A product can set the smallest quantity one order may hold, the largest, and a pack size the quantity has to be a multiple of, so beer sells by the six and tiles by the box of ten. A variant can override any of the three, and a blank box means inherit rather than no limit. One per order is a single tick that wins over all of it. The minimum rounds up to the next multiple and the maximum down, so every number the shop prints is a quantity the store will actually sell, and the maximum comes down to the stock on hand for a variant that will not sell below zero. The quantity box on the product page and in the cart carries the numbers with a sentence saying the rule in words, and the same rule is checked again at add-to-cart, at the quantity box and at checkout, so a basket built before the rule existed is refused before money moves rather than after. | ||
Quantity rules set on a category and inherited |
KahunaCart: In the box | Squarespace: Not available |
| The same three numbers sit on a category, and everything filed in it and in every category under it inherits them, so a wholesale department sold in sixes is three numbers typed once rather than three numbers typed on six hundred products. A product's own value overrides the category field by field, so a product with its own minimum in a category with a minimum and a maximum keeps its minimum and takes the category's maximum. Where a product is in two categories that disagree the stricter rule wins each field: the highest minimum, the lowest maximum, the largest pack size. One tick on a product takes it out of its categories' rules altogether, for the single-bottle sampler filed under a department sold in sixes. | ||
Store-wide minimum and maximum order |
KahunaCart: In the box | Squarespace: Partial |
| Four settings say what the whole basket has to be: the fewest and the most items across every line, and the smallest and largest the order may come to in money. All four are off until you set them. The two money rules read the merchandise subtotal after discounts and before shipping and tax, so nobody reaches a minimum by paying for postage and nobody misses one because tax is added at the last step. A basket outside the rules is told so at the top of the cart page with the checkout button left where it was, and a shopper who walks past the sentence is refused at checkout with the same words. One tick takes a product out of all four, so a store with a fifty-pound minimum can still sell a twenty-five-pound gift card on its own. | ||
Promotions & discounts 13 features
| Feature | KahunaCart | Squarespace |
|---|---|---|
Coupon codes |
KahunaCart: In the box | Squarespace: Partial |
| Coupons can give a percentage off, a fixed amount off, or free shipping, and can be scheduled, limited in how often they are used, and restricted to specific products, categories or tags. Every use of a coupon is recorded against the order it applied to, so you can always see exactly what a coupon has cost you. | ||
Automatic no-code sales / catalog promotions |
KahunaCart: In the box | Squarespace: Partial |
| A sale works like a coupon that applies automatically, with no code needed. It shows the discounted price right in the catalog listing, not just as a surprise at checkout. | ||
Usage limits, by total, per user and per email |
KahunaCart: In the box | Squarespace: Partial |
| You can cap how many times a coupon is used overall and per customer, and the store makes sure two shoppers checking out at the same instant cannot both claim the very last use. Refunding an order in full frees up that coupon use again, while a partial refund does not. | ||
Bulk coupon-code generation |
KahunaCart: In the box | Squarespace: Not available |
| You can generate a large batch of unique coupon codes at once for a campaign, using a pattern with a prefix, with per-code limits and an overall budget for the batch, and export the list as a spreadsheet for a mail merge. The codes avoid letters that are easy to misread when handwritten. Deleting a campaign frees up its codes rather than deleting them outright, since they may already be sitting in customers' inboxes. | ||
Buy-X-get-Y / BOGO |
KahunaCart: In the box | Squarespace: Partial |
| Buy one get one and similar offers work across a whole group of qualifying products at once. For example, six qualifying items under a buy one get one offer discounts the three cheapest of them, and you can cap how many times one order can earn the offer. One limitation: the free or discounted item must come from the same group of products, so you cannot set up 'buy this product, get a different one free'. | ||
Quantity-break / tiered discount |
KahunaCart: In the box | Squarespace: Partial |
| A sale's discount can get bigger the more a shopper buys, using a ladder of quantity thresholds you define, each with its own percentage or fixed discount. This is different from setting a lower list price at higher quantities: it is a bigger discount applied on top instead. The ladder is shown on the product page, and the cart nudges shoppers toward the next threshold. | ||
Free-shipping discount |
KahunaCart: In the box | Squarespace: Partial |
| Any coupon can include free shipping as part of its discount, crediting back exactly what shipping was quoted at, before tax is calculated, so a store that taxes postage never taxes shipping the customer did not actually pay. A separate free shipping threshold, if you have one, is measured against the product subtotal only, so a coupon cannot be used to reach it. | ||
Discount scoping to categories with exclusions |
KahunaCart: In the box | Squarespace: Partial |
| Sales and coupons can be scoped to specific products, variants, whole categories, or tags, and each of those can be included or excluded, with exclusions always taking priority. Coupons can also be set to skip items already on sale, or to a limit on how many items they apply to, applied to the cheapest ones first. | ||
Multiple coupons / discount stacking |
KahunaCart: In the box | Squarespace: Partial |
| A cart can hold several coupons at once, applied in the order they were added, with each one discounting what is left after the ones before it, so two fifty percent off coupons take half, then half of what remains, rather than the whole amount. A coupon marked as not combinable stays in place rather than being replaced, and free shipping is only charged once even with multiple free shipping coupons applied. Sales do not stack with each other, though a coupon can still apply on top of a sale. | ||
Gift cards or store credit |
KahunaCart: In the box | Squarespace: In the box |
| Store credit and gift cards are built in, with every change to a customer's balance recorded so you can always see what caused it. Credit can be spent at checkout as a payment method. One limitation: it must be used in full or not at all, so a balance smaller than the order total cannot be used as a partial payment. | ||
The order records **why** each price is what it is |
KahunaCart: In the box | Squarespace: Unverified |
| Every discount applied to an order is recorded in detail: which product it touched, which sale or rule caused it, and exactly how the amount was worked out. This is what turns a customer asking 'why is my total wrong' into a quick, confident answer instead of a lengthy investigation. | ||
Add-ons can register new discount types with their own admin fields |
KahunaCart: In the box | Squarespace: Not available |
| Add-ons can define entirely new kinds of discount, with the admin screen automatically building a settings form for them. One honest gap: for some settings the admin only offers a plain text box rather than a proper picker, for example asking you to type a product's identifier rather than choosing it from a list. These custom discount types work with sales only, not with coupons. | ||
Conditional / rule-based discounts with a condition builder |
KahunaCart: Partial | Squarespace: Partial |
| You can build conditional discount rules using an 'all of', 'any of' or 'none of' logic builder, checking things like what is in the cart, who the customer is, or details of the order. This currently works for sales and for controlling which payment methods are offered, but not yet for coupons, shipping or tax, which each still use their own simpler set of conditions. A sale built this way is only priced at checkout, so it will not show a sale badge in the catalog. | ||
Tax 8 features
| Feature | KahunaCart | Squarespace |
|---|---|---|
Tax zones by country / region / postcode |
KahunaCart: In the box | Squarespace: In the box |
| Tax zones can match by country, then by region or state, then by postcode, so you can charge one rate nationally and a different rate in a specific area without treating them as separate stores. A store that only sells in one country only needs to set up one zone. | ||
Multiple rates stacking (state + county) |
KahunaCart: In the box | Squarespace: In the box |
| Several tax rates can stack within one zone, for example a state rate plus a county rate, and a receipt shows each one separately rather than one combined figure. One limit: only a single zone can match an order at a time, so you cannot have two overlapping zones both apply to the same order. | ||
Tax-inclusive pricing |
KahunaCart: In the box | Squarespace: In the box |
| Whether a price includes tax is decided per line rather than once for the whole store. KahunaCart asks four questions in order: does this product say so on its own, is there a price preference for the customer's region, is there one for the currency they are paying in, and failing all three, what does the store-wide setting say. A shop selling to the UK and to the US can quote both correctly at the same time. If a customer turns out to be outside the zone whose tax was baked into the price, the store can take that tax back off, and it does that as a negative tax line rather than as a discount, so your discount figures stay right. A store can also print "incl. VAT" or "excl. VAT" under every price, worked out by the same four questions and named with the tax zone's own word for the tax, so the note never disagrees with the checkout. | ||
Tax on shipping, apportioned correctly across rates |
KahunaCart: In the box | Squarespace: Partial |
| When shipping is taxed under more than one rate, the tax on postage is split fairly between them based on the mix of goods in the order, with no rounding loss. Whether shipping is taxed is set per rate, not per zone, so within one zone you can tax postage under one rate and not another. | ||
EU VAT rate preset shipped |
KahunaCart: In the box | Squarespace: Partial |
| The standard VAT rate for every EU country can be added to your store in one step. This covers standard rates only, not reduced rates for specific product categories, and rates are not automatically kept up to date if a country changes its rate. Registration thresholds and other VAT obligations remain something you need to handle yourself. | ||
VAT-number validation / reverse charge |
KahunaCart: Partial | Squarespace: Not available |
| The reverse charge itself is there for orders you enter: staff can record the customer's VAT ID on a manual order and tick Don't charge tax, and the order is priced without VAT (a price that includes VAT is charged net) and the invoice, receipt and credit note print the VAT ID and a reverse-charge line in your own words. A checkout field can also collect a VAT number from customers. What is missing is the checking: KahunaCart does not look the number up on VIES or zero-rate a storefront order by itself, so a store selling business-to-business across EU borders still checks each number and enters those orders by hand. Automatic validation is planned as a tax add-on. | ||
Third-party tax service connector (Avalara / TaxJar) |
KahunaCart: Partial | Squarespace: Third-party |
| The connection point an external tax service plugs into is in core, and the services themselves are not. A tax engine is bound per tax zone rather than once for the whole store, so one shop can hand its US sales to an outside service and keep its own EU VAT rates for Europe. An engine that says it manages its own rates takes the zone, class and rate editors away with it, and the store stops offering to edit rates it no longer owns. What is not in the box is any actual connector: nothing talks to an external tax service until the planned tax add-on ships. A payment provider that handles tax on your behalf sidesteps the question already. | ||
Merchant-of-record providers charged with no local tax |
KahunaCart: In the box | Squarespace: Not available |
| When you use a payment provider that acts as merchant of record and handles tax on your behalf, KahunaCart recalculates the order with no local tax added on its own side, whichever tax setup you normally use. One known limitation: the cart page still shows your store's own local tax estimate before that provider is selected at checkout. | ||
Customers & accounts 7 features
| Feature | KahunaCart | Squarespace |
|---|---|---|
Customer account area shipped (orders, downloads, addresses) |
KahunaCart: In the box | Squarespace: In the box |
| Customers get a full account area covering past orders, digital downloads, saved addresses and wishlists. If your store uses two-factor login, a session still completing that second step sees nothing until it is fully verified. Access to this data is enforced centrally, so a theme cannot accidentally show one customer another's orders. | ||
Customer groups |
KahunaCart: In the box | Squarespace: Partial |
| Customers can be organised into groups, each with an optional automatic discount, and you can rename a group at any time without breaking any coupons or rules tied to it. One group can be set as the default, covering logged-out visitors too, so your shop window shows the same price a guest would actually be charged rather than a confusing mismatch. Group membership can be used to scope coupons, sales and price lists. | ||
Wishlist |
KahunaCart: In the box | Squarespace: Third-party |
| Customers can keep multiple named wishlists, for example a gift registry, a holiday list and a personal re-order list, rather than just one saved-for-later pile. Each list can be kept private or shared with a link, and a shared list is never publicly indexed, so only someone with the link can see it. A visitor without an account can still build a wishlist that merges into their account once they log in, and a customer can keep up to 20 lists of up to 500 items each. | ||
B2B (companies, purchase orders, quotes, credit terms) |
KahunaCart: Partial | Squarespace: Partial |
| Quotes are supported: you can send a customer a formal quote that they accept or decline through a link, with an expiry date, and a merchant can also record an answer for a quote that came back by phone. Orders taken by phone or email get the customer's trade prices and address, and can carry their VAT ID and the reverse charge. What is not yet supported is the rest of business-to-business selling: company accounts for buyers, purchase order numbers, and pay-later credit terms. Those are good candidates for a future add-on rather than more built into core. | ||
Passwordless / magic-link customer login |
KahunaCart: In the box | Squarespace: Partial |
| A customer can ask for a sign-in link by typing their email address, and a single-use link arrives that signs them in without a password. For a shop where most customers only return a couple of times a year, that is friendlier than asking them to remember a password or forcing account creation. The form answers the same sentence to every address, whether or not anyone shops here, so it cannot be used to find out who your customers are. The link opens a page with one button rather than signing anyone in as it is fetched, because corporate mail scanners follow links in an inbox and would otherwise use the link up before the customer clicked it. Using the link, asking for another, or setting a password each cancel any link still outstanding. Forgotten passwords, two-factor login and remember-me are still handled by Grav's own login system underneath KahunaCart, and KahunaCart never signs anyone in itself. | ||
GDPR erasure and retention scheduling |
KahunaCart: In the box | Squarespace: Partial |
| You can set up automatic data retention rules, such as removing abandoned carts after a set time or anonymising old completed orders, each with its own time window and all switched off by default, so nothing is deleted until you decide what to keep. A log is kept of what each rule removed and when, which is exactly what a data protection request needs to show, and completed orders are anonymised rather than deleted outright so your revenue and tax reports still add up correctly afterward. You can also reassign orders between customers, and erasing a customer checks first for any reason it should be blocked, such as an unresolved order, rather than deleting silently. | ||
Member-only products restricted to customer groups |
KahunaCart: In the box | Squarespace: In the box |
| A product can name the customer groups allowed to buy it, and to everybody else it is not there: absent from the shop page, from category and tag pages and the counts beside them, from search, from related-product blocks and from the sitemap. A concert can sell a member ticket at one price beside a general admission ticket at another, each with its own limits, and the member one simply is not in the shop for anybody else. Its own link still opens, on purpose, because whoever follows it is usually a member who has not signed in yet, so the page shows a members-only notice and a sign-in link where the buy button was. Add-to-cart refuses, and checkout asks again over every line before it starts a payment, because a group can change in between. Groups already kept in Grav can decide a customer's group at sign-in, so a store with a members user group does not keep a second list by hand. | ||
Payments & providers 8 features
| Feature | KahunaCart | Squarespace |
|---|---|---|
Five or more first-party payment providers |
KahunaCart: In the box | Squarespace: Partial |
| Every KahunaCart license comes with Stripe, PayPal, Polar, offline payments and a test provider for trying things out. Moneris, Mollie, Square, Paddle, Lemon Squeezy and SumUp are one-time add-ons, and four more (Checkout.com, Shopify, Invoice Ninja and Chargebee) are built and coming soon the same way. | ||
Provider capability flags that drive the admin and storefront UI |
KahunaCart: In the box | Squarespace: Unverified |
| KahunaCart knows what each payment provider can and cannot do, such as issuing refunds, handling subscriptions, or storing card details for later. The admin only shows actions a provider can actually carry out, so you never see a refund button that would simply fail. | ||
Webhook handling that verifies first, then logs |
KahunaCart: In the box | Squarespace: Unverified |
| Every message a payment provider sends back is checked for authenticity before it is used, so a forged message cannot be acted on. Repeated messages are recognised and not processed twice, and failures are logged for you to see. KahunaCart never switches a provider off automatically, so a temporary glitch cannot silently stop you taking payments. | ||
Per-cart provider gating |
KahunaCart: In the box | Squarespace: Partial |
| Some payment providers only support digital goods. If a cart contains a physical item, those providers are removed from checkout automatically, and the order is blocked rather than accepted with no way to pay. If every enabled provider is digital only and the shop also sells physical products, the admin warns you and checkout explains the problem to the customer. | ||
Saved cards / tokenisation in practice |
KahunaCart: In the box | Squarespace: In the box |
| Customers get a Payment methods tab in their account listing the cards their payment provider has kept on file, with the brand, the last four digits and the expiry, a default they can change and a Remove button. Removing asks the provider to forget the card first and tells the customer if it refused, so a card that disappears from the page is a card the provider no longer holds. KahunaCart stores the provider's reference and those display details and never a card number. Your payment provider has to support saved cards for the tab to fill up. Stripe does today; the other providers do not yet. | ||
Authorise-then-capture |
KahunaCart: In the box | Squarespace: Not available |
| A payment provider can hold the money at checkout and let you take it later, so an order that falls through releases the hold instead of needing a refund. The order reads as authorised and does not count as paid until you press Capture, and Capture and Void appear on it only for providers that can actually honour them. A capture for more than was held, a second capture and a void of money already taken are all refused before the provider is even asked. Each provider declares for itself whether it holds or takes, and no store setting overrides that, because some payment methods cannot be held at all and would quietly vanish from your checkout if one did. Stripe, PayPal and Mollie hold then capture, and Checkout.com and Shopify will once they are released. The others take the money at once, because their platforms cannot hold a payment, and each says so in its own settings. | ||
Two-way catalogue/order sync with a provider |
KahunaCart: In the box | Squarespace: Not available |
| KahunaCart can push products to a connected payment or commerce service and pull them back, keeping your catalogue in sync in both directions. Polar supports full two way sync of products and orders. The Shopify add-on, coming soon, syncs one way. One limit to know: if a product has multiple variants, only the main variant stays in sync, though the extra variant data is kept rather than lost. | ||
Merchandised payment methods over one gateway |
KahunaCart: In the box | Squarespace: Unverified |
| You can offer shoppers named payment choices, such as 'Visa', 'Klarna', 'Cash' or 'Bank transfer', built on top of your existing payment providers, each with its own label, logo, description, fee and rules about when it appears (for example, only above a certain order value or only for business customers). Any fee you add is worked out fairly and automatically taxed and refunded in proportion if the order is refunded. Your existing payment providers are unaffected. | ||
Bookings & rentals 6 features
| Feature | KahunaCart | Squarespace |
|---|---|---|
Appointment booking with available time slots |
KahunaCart: Official add-on | Squarespace: Official add-on |
| Book appointments through the Bookings add-on. Set service durations, opening hours, notice periods and buffers. Customers choose an available time and use the store checkout. | ||
Shared staff and resource availability |
KahunaCart: Official add-on | Squarespace: Official add-on |
| Bookings checks staff, rooms and equipment across services. A booking can require several resources at once, such as a therapist and a treatment room. Working hours, time off and capacity determine which slots are available. | ||
Group sessions with limited places |
KahunaCart: Official add-on | Squarespace: Official add-on |
| Bookings supports scheduled classes with a capacity for each session. Sell individual dates or a whole course, keep attendance registers and offer cancelled places to a waiting list. | ||
Nightly accommodation with check-in and check-out dates |
KahunaCart: Official add-on | Squarespace: Partial |
| The Rentals add-on requires Bookings. It adds a date-range picker, nightly stays, guest limits, minimum stays and arrival and departure rules. Sell a whole property or a pool of equivalent rooms through the existing checkout. | ||
Seasonal rates for nightly stays |
KahunaCart: Official add-on | Squarespace: Unverified |
| Rentals supports date-based rate bands and weekend prices. Add extra-guest charges and a cleaning fee for each stay. The quoted price is held while the guest completes checkout. | ||
Rental availability import and export through iCal |
KahunaCart: Official add-on | Squarespace: Partial |
| Bookings and Rentals exchange availability with listing sites through iCal feeds. Channel exports omit guest details. Updates are periodic and can leave a double-booking window; this is not a real-time channel manager. See the sync limits. | ||
Subscriptions & licensing 7 features
| Feature | KahunaCart | Squarespace |
|---|---|---|
Recurring billing / subscriptions |
KahunaCart: Official add-on | Squarespace: In the box |
| Subscriptions and recurring billing are available as a separate paid add-on rather than built into core. That way a shop that never sells subscriptions is not carrying billing and renewal logic it will never use. It is available now, not something planned for later. | ||
Every billing period is a real order |
KahunaCart: Official add-on | Squarespace: In the box |
| Each subscription renewal is created as a normal order, not a special separate record. That means receipts, invoices, tax, reporting, refunds and licence delivery all work the same way for a renewal as they do for a first purchase. | ||
Free trials |
KahunaCart: Official add-on | Squarespace: Partial |
| Free trials are real: a trial creates a genuine order with a total of zero and a clear 'free trial' line showing what happened. The first paid billing period begins automatically once the trial ends. | ||
Store-run billing calendar (no provider scheduler required) |
KahunaCart: Official add-on | Squarespace: In the box |
| The subscriptions add-on can run its own billing and reminder schedule without depending on the payment provider to handle renewals. It sends reminders before a payment is due, allows a short grace period if a payment fails, and restores a subscription automatically if payment succeeds during that grace period. Paying early extends the subscription rather than replacing the time already paid for. | ||
Software licence keys with seats and an updates window |
KahunaCart: Official add-on | Squarespace: Not available |
| Licence keys can have a limited number of seats or unlimited seats, and can carry a separate expiry date and a separate 'updates included until' date, so a licence can be permanent while updates are time limited. Renewals and add-ons extend or expand an existing key rather than creating a new one. Licence checks and downloads are protected against abuse with signed responses and rate limits, and older releases are hidden once a licence's update window has passed. | ||
Subscription grants access to pages and files |
KahunaCart: Official add-on | Squarespace: In the box |
| A subscription plan can put its subscribers in a customer group for as long as the subscription is live, and any page that asks for that group opens for them, including a page of downloadable files. Live includes a trial and the grace period after a failed payment, so a declined card does not lock somebody out the same afternoon. A customer who cancels at the end of their period keeps access for the time they paid for, and a paused or ended subscription closes the page on the customer's next click, even in the middle of a session. Nothing is stored on the account: the group is worked out from the subscription on every request, so a late webhook or a status changed by hand cannot leave anybody in a group they have stopped paying for. The same group also drives price lists, coupon conditions and member-only products. | ||
Article teaser paywall with a subscribe panel and free-article allowance |
KahunaCart: Official add-on | Squarespace: Partial |
| Mark a page as an article with a teaser and everyone can open it: they read the headline and the opening paragraphs, and anyone who is not a member sees a subscribe panel where the rest would be. The panel fills itself from your subscription plans, with a button and a price for each plan that grants the member group, and a plan that goes off sale leaves the panel. A visitor who cannot read the article never receives its body, not in the page, the feed or the search index, so there is nothing to find in the page source. You can also give everyone a few free articles a month, counted per customer or per browser, and a new subscriber is sent back to the article from their receipt. The teaser, the meter and the structured data for search engines are part of KahunaCart itself, and filling the panel from your plans needs the Subscriptions add-on. | ||
i18n, currency & multi-store 6 features
| Feature | KahunaCart | Squarespace |
|---|---|---|
Translated product content |
KahunaCart: In the box | Squarespace: Third-party |
| Product content such as titles and descriptions can be translated per field, so a product can have a German title paired with an English summary and both display correctly. If a translation is missing, the original language is shown instead of a blank space. Shops that only use one language see no extra overhead at all. | ||
Per-language product URLs |
KahunaCart: Partial | Squarespace: Third-party |
| Product URLs are the same in every language rather than translated per language. This is a known trade off for search visibility, and a fully translated URL structure is being considered as a future improvement. | ||
Emails render in the order's language |
KahunaCart: In the box | Squarespace: Third-party |
| The language a customer used while shopping is saved with their order, and it is used consistently afterwards. Shipping and tax labels, cart line titles, and every email about that order stay in the language the customer originally shopped in, even if the shop's default language changes later. | ||
Translated admin strings shipped for languages beyond English |
KahunaCart: Partial | Squarespace: In the box |
| Admin screens are only available in English today, so this is a partial rather than a tick. Everything a translator needs is in place: the translation system itself, a Crowdin project that takes contributed language packs, a command that exports the source strings and reports how complete each pack is, and a written guide for contributors. A finished pack drops into the plugin with no code change and any key it is missing falls back to English on its own, so what is left is contributors rather than work on our side. | ||
Multi-store from one install |
KahunaCart: Not available | Squarespace: Not available |
| There is no multi-store, multi-vendor or marketplace support. Several separate shops can share the same database server, but they cannot share one catalogue across multiple storefronts. This is planned as core work, and the underlying database is already partly prepared for it. | ||
Per-country address rules for layout, required fields, postcode and phone |
KahunaCart: In the box | Squarespace: Unverified |
| Each country carries its own address rules as a row you can edit: the order its address lines print in, the postcode pattern, the phone pattern, and which address fields it will not do without. A postcode rule that refuses valid post, or a required field nobody in that country has, is a save on a Tuesday afternoon rather than a wait for a release, and it changes that country and nothing else. Values ship for the thirty largest ecommerce markets plus every country your own tax and shipping zones already name; every other country gets an empty row, falls back to the generic layout and takes an order exactly as it did before. One formatter draws every address, so a German address prints its postcode before its city on the checkout review, the receipt, the invoice, the packing slip and the address book, or on none of them. The shipped phone rules are a format check rather than a national numbering plan, on purpose: refusing a valid number is worse than letting a typo through. A country's required fields only apply when the basket holds something that has to be delivered, so a cart of downloads still checks out with no address at all. | ||
The other direction
Where Squarespace offers more
Templates and the editor
Squarespace is the better choice if you want designer templates and a drag-and-drop editor. Both come with every plan, and you can lay out pages without code. KahunaCart supplies a storefront theme, but the rest of the site's design is your Grav theme's job. It does not match Squarespace's range of templates.
Hosting and support
Squarespace handles hosting, SSL, security and updates, with support available 24 hours a day. With KahunaCart, you take on a PHP host, backups and updates yourself.
One account
Squarespace brings the site, domain, email campaigns and scheduling into one account. An annual site plan includes a domain free for the first year. Core and up also include Google Workspace email free for the first year. Email Campaigns and Acuity Scheduling are separate subscriptions.
Acuity handles appointments and group classes, shared resources and calendar sync. Several calendars and packages need its Standard plan. Acuity says it is a poor fit for vacation rentals and hotels.
Subscriptions and member sites
Squarespace includes subscriptions for physical and service products, member sites and paywalls in every plan. Subscription products cannot be sold with PayPal. KahunaCart sells Subscriptions separately, and member-only products use customer groups you set up. Its Bookings, Rentals and License Keys add-ons are also separate purchases.
Admin languages
Squarespace's admin can be switched to French, German, Italian, Korean, Brazilian Portuguese or Spanish. KahunaCart's admin is English only.
Currency conversion
With Squarespace Payments or Stripe, multi-currency checkout shows international shoppers prices in their own currency, and Squarespace Payments charges a 1% conversion fee. KahunaCart does the converting itself instead of the payment provider: it fetches exchange rates every day, and each currency uses prices you type or prices worked out from the base price, with no conversion fee from KahunaCart.
Ecosystem and history
Squarespace has a much longer track record than KahunaCart, which launched in 2026. It also has a large template library and Extensions list, where KahunaCart has one theme and nine add-ons.
What it costs
Three-year costs
The table starts with Squarespace Basic billed yearly, its cheapest selling plan, without extensions. With example hosting of $180 a year for KahunaCart, Basic costs less until its 2% sales fee closes the gap. The break-even figures are below. Without hosting in KahunaCart's total, the gap closes sooner. Core removes the 2% fee and adds discounts and carrier-calculated shipping for $120 a year more. It costs less than Basic above about $6,000 of annual sales. KahunaCart's base totals exclude hosting and optional add-ons.
| KahunaCart | Squarespace | |
|---|---|---|
| CMS or platform | Grav, free | Hosted by Squarespace |
| Plan or license, year 1 | $249 one-time, including a year of updates and support | Basic: $228 ($19 a month billed yearly) or $300 ($25 a month billed monthly) |
| Year 2 and after | $99 a year, optional | Plan renewal each year |
| Higher plans | No tiers: one license per site with every core feature | Core is $348 a year ($29 a month billed yearly), Plus $588 ($49) and Advanced $1,188 ($99). Discounts, carrier-calculated shipping and sales analytics start at Core |
| Hosting | Your own PHP host, not included | Included, with SSL |
| Fee on sales | None from KahunaCart | 2% of online store sales on Basic, none on Core, Plus or Advanced. On $30,000 of sales that is $600 a year on Basic, as an example |
| Year 1, before hosting | $249 plus hosting | $228 on Basic, or $828 with the 2% fee on $30,000 of sales. Core is $348 |
| Three-year total | $447 with the $99 renewal in years 2 and 3, or $249 if you never renew, plus hosting | $684 on Basic, or $2,484 with the fee on $30,000 of sales each year. Core is $1,044 |
| Example: hosting at $15 a month | Year 1 $429 and year 3 $987 with both renewals. An example, not a quote | Included in the figures above |
| Sales at which Basic costs more than KahunaCart with that hosting | Not applicable: no fee on sales | About $10,050 of sales a year in year 1, or about $5,050 a year over three years |
| Card and PayPal payments | Stripe, PayPal and Polar included; Moneris, Mollie, Square, Paddle, Lemon Squeezy and SumUp are one-time add-ons | Squarespace Payments, Stripe and PayPal |
| Processor fees | Set by the provider you connect: Stripe, PayPal or Polar | Squarespace Payments charges 2.9% + 30 cents online on Basic and Core, 2.7% + 30 cents on Plus and 2.5% + 30 cents on Advanced, and those rates apply only with Squarespace Payments. Each processor sets its own rate, so treat this part as similar on both |
| Discount codes | Included | Not on Basic. From Core, $29 a month billed yearly |
| Appointment and class booking | $149 one-time, Bookings; core license also required | Acuity Scheduling, billed separately: Starter is $192 a year ($16 a month billed yearly) with one calendar, Standard is $324 ($27) with up to six |
| Three-year total with booking | $596 with both renewals ($249 + $149 + $99 + $99), plus hosting | $1,260 for Basic plus Acuity Starter ($684 + $576), before any 2% fee |
| Nightly accommodation | $249 one-time, Bookings + Rentals; core license also required | Acuity says it is a poor fit for vacation rentals and hotels |
| Subscriptions | $129, one-time add-on | Included on every plan; not with PayPal |
| Gift cards | Included | Included on every plan |
| Member-only content | Included: choose which customer groups may buy a product | Member sites on every plan, with a fee on membership sales: 7% on Basic, 5% on Core, 1% on Plus |
| Multiple stores | Not available: one store per install | Not available: one site per plan |
Squarespace prices recorded in October 2026 from the Squarespace pricing page, in US dollars for a US billing country. Squarespace prices per billing country, so other countries see other amounts. Acuity Scheduling prices were recorded the same month from the Acuity pricing page. The fees are described in Squarespace's transaction fees and payment processing rates guide. The Basic figures include no extensions, no Acuity Scheduling and no Email Campaigns; reviews, gift cards, subscriptions, abandoned cart recovery and add-on products are in the plan. Developers set the prices of Extensions, and Squarespace can change its plans. KahunaCart booking prices checked 21 September 2026; its other prices recorded in August 2026. KahunaCart add-on updates use the site's single optional renewal. KahunaCart figures exclude hosting, and development is extra for both. See the KahunaCart store for current offers.
Migrating
Moving from Squarespace
KahunaCart's bin/plugin kahunacart squarespace <folder> command reads four Squarespace exports and imports the store and site together. You run it on your PHP host. Follow the importing guide for the full steps.
Download four exports
- Products: Commerce → Inventory → ••• → Export all. This includes variants, options, prices, sale prices, stock, weights, categories, tags and pictures.
- Orders: Commerce → Orders → Download CSV. This includes order lines, totals, dates, payment status and fulfillment status.
- Customers: Contacts → ••• → Export all contacts. This includes each customer's email, name and joining date.
- Site: Settings → Advanced → Import & Export → Export. This gives you pages and blog posts in a WordPress export file.
Put all four in one folder. File names do not matter: the command recognizes the columns. Newsletter contacts who never placed an order are left out, and it reports how many.
Check before importing
Start with a dry run. It converts and checks the exports, then reports what it would create or update. It writes nothing to the store or pages.
bin/plugin kahunacart squarespace ~/Downloads/squarespace --dry-run
Once the report reads cleanly, run the import with your store's weight and size units. Squarespace does not include those units in the export. Use lb and in for imperial, or kg and cm for metric. If the products file has weights and you omit --weight-unit, the command stops rather than guessing.
bin/plugin kahunacart squarespace ~/Downloads/squarespace --weight-unit=lb --dimension-unit=in
What transfers
- Products: variants keep their options, prices, stock and weights. Sale prices become the selling price, with the regular price shown for comparison. Unlimited stock stays untracked. Hidden products become drafts. If you had more than one shop page, each becomes a category.
- Product addresses: slugs, the last part of a product's web address, stay the same. Addresses made from random characters or bare numbers get a slug based on the title instead.
- Pictures: the command downloads them into your site before the Squarespace links stop working. Failed downloads are listed and left off the product. Running the command again retries them.
- Descriptions: HTML becomes Markdown, the text format Grav uses for pages.
- Customers and orders: both appear under Import → Runs. Orders keep their numbers, dates, totals and lines. They are recorded under the provider
squarespace, so KahunaCart never tries to refund them through a provider that did not take the payment. - Pages and blog posts: each becomes a Grav page in its own folder. Posts keep pictures, dates, categories and tags. Content such as embedded maps stays as HTML when Markdown cannot hold it.
Product titles stay as typed. The optional --tidy-titles flag changes capitals to Title Case, moves quoted names to the front, tidies spacing and dashes, and removes an “Available in …” ending. You can also remove a brand prefix: --tidy-titles="Acme" turns ACME "SAGA" LEATHER HALTER into Saga Leather Halter.
Keep old links working
The command writes redirects for products, categories and pages to kahunacart/redirects.yaml inside your export folder. Both Squarespace 7.1 addresses (/shop/p/…) and 7.0 addresses (/shop/…) are covered. For example, /shop/p/reef-runner-tee redirects to /shop/product/reef-runner-tee. Old shop pages redirect to their new categories.
Paste the file's redirects: block into user/config/site.yaml. Set pages.redirect_default_code: 301 in user/config/system.yaml so search engines carry rankings to the new addresses. A page already at the new shop's address, such as /shop, needs no redirect.
What you must set up again
- Gift cards: set them up in KahunaCart.
- Digital files: the products transfer, but their files are absent from the export. Upload each file in the product editor.
- Passwords, saved cards and subscriptions: these cannot leave Squarespace. Invite imported customers from the Customers screen so they can choose new passwords.
- Design: your Grav theme determines how the new site looks.
The command reports anything it leaves out.
Running the import again
The import deletes nothing and emails nobody. Running it again updates existing records without duplicating them. It never overwrites an existing page folder.
A Squarespace product with the same slug as a product already in KahunaCart updates that product. The command lists these matches before importing.
Questions
Before you switch
Will I have to rebuild my whole website?
The importer brings over your products, customers, orders, pages and blog posts. Your Squarespace design does not transfer, so you need a Grav theme for the new site. See the migration steps above and the importing guide.
What happens to customer accounts and subscriptions?
Passwords, saved cards and subscriptions cannot leave Squarespace. Imported customers have no login until you invite them from the Customers screen. They choose a new password then.
Will my old product links still work?
The importer writes redirects for old product, category and page addresses. You must add them to your site settings and enable 301 redirects. The steps are in the migration section above.
Do I need special hosting for KahunaCart?
You need ordinary PHP hosting. KahunaCart runs inside Grav, a PHP content system. A first store uses SQLite, so there is no database server to set up. You pay for hosting and handle backups and updates yourself.
Can I keep using Stripe or PayPal?
Yes. Stripe, PayPal and Polar are included with every license. Moneris, Mollie, Square, Paddle, Lemon Squeezy and SumUp are one-time add-ons. If you use Squarespace Payments, you will need to connect a different provider. Stripe is currently the only KahunaCart provider with wallet buttons and saved cards.
Will switching save me money?
It depends on sales, hosting and the add-ons you need. With the table's example hosting of $15 a month and both optional renewals, KahunaCart costs less than Basic over three years above about $5,050 of annual sales. Below that, Basic costs less. Compare Core too: it removes Basic's 2% fee and includes discounts. The pricing table shows the totals.
Keep comparing
Related comparisons
Check KahunaCart before you switch
Check the docs and pricing for what your store needs.
Buy in the store