BunStackDocs

Payments

Checkout settings per storefront

The Checkout tab: checkout provider, prices with or without VAT, delivery countries, countries you do not sell to, the cart mode and the payment methods shown.

Last updated · 10 min read

The Checkout tab controls the checkout in a storefront. Here you choose the checkout provider, the cart mode and how prices show.

Where: Storefronts › [storefront] › Checkout.

The cards

SettingWhat it doesDefaultLimits
ProviderWhich checkout the storefront usesNative (test only)Kustom (hosted) is required for go-live
Price displayPrices include VAT (B2C default): prices in the storefront show with VATOn–
Sells toThe countries the storefront sells to–See Shipping methods, delivery countries and prices. Cannot be saved empty
Not sold toCountries that see the storefront but cannot buyNoneNever a country that is in Sells to
CartWhat the cart icon opens: Cart page or DrawerCart page–
Payment methods shownThe logos in the footer and under the buy buttonSet by ProviderYou cannot change it here

Press Save changes. The storefront uses the change within a minute.

Provider

  • Kustom (hosted): Kustom's checkout window inside BunStack's checkout. You can pick the row when Kustom is Connected under Stack › Kustom. Otherwise it shows NOT CONNECTED.
  • Native (test only): a test checkout without payment. It creates orders that nobody pays for. The go-live check Checkout provider stops the storefront.
  • A live storefront cannot pick Native (test only). The row says "Pause the shop first — native takes no payment."

Warning: A storefront that is already live on Native takes unpaid orders. The top of the tab shows This shop is live on Native: it takes orders nobody pays for. Switch to Kustom and save, or pause the shop under Go live. Pick Kustom (hosted) and press Save changes, or pause the storefront under Go live.

Until then the tab saves nothing but the Cart card. See The checkout as the customer sees it for what happens when a change gets through anyway.

Price display

Prices include VAT (B2C default) is on by default. The price on the product is then what the customer pays. Turn the box off in a storefront that sells to businesses. The checkout then adds VAT to the price. The checkout summary shows "Prices incl. VAT" or "Prices excl. VAT — VAT is added".

Not sold to

The Not sold to part is in the Sells to card, under the countries. A country here sees the storefront but cannot buy. Together with Sells to that gives three modes per country:

ModeThe visitor seesThe checkout
The country is in Sells toThe storefront as usualTakes addresses in the country
Prices shown, no buy buttonThe prices, but no buy button and no quick add on the cardsDoes not open
Prices hiddenNo prices and no buy buttonDoes not open
  1. Type the country in Add a country and pick it. The search covers every country, also those not in the grid. The country is taken out of Sells to.
  2. Pick Prices shown, no buy button or Prices hidden.
  3. Write a line of your own in Own line (optional) if you like, for example where the customer can buy instead. Link (optional) makes the line a link: an address starting with https:// or a page in the storefront, such as /find-a-dealer.
  4. Press Save changes.

The card shows the notice as a visitor from the country reads it, in the storefront's language.

  • A country is in Sells to or under Not sold to, never both. In the grid such a country is struck through. A click on it moves the country back to Sells to and removes the rule. ✕ removes the rule without adding the country to Sells to.
  • The presets EU 27, All EU + EFTA, Nordics only and Sweden only skip the countries under Not sold to and say which, for example Skipped NO: it is under Not sold to.
  • Sells to cannot be saved empty: an empty list lets the checkout take every country. The page says Sells to cannot be empty: an empty list lets the checkout take every country. Pick at least one country.
  • A country in neither list works as before: the cart works and the checkout refuses the address.
  • A rule for the US gives a warning: Google reads the storefront from the US, and Merchant Center can refuse your products.

Warning: The EU's geo-blocking rules also cover Norway and Iceland, because they are in the EEA. You are the seller, and you carry that risk. The card shows a line about it for every country in the EU and the EEA.

What the visitor sees

The country is the bs_country cookie when the visitor has picked one, otherwise the country of their IP address. An unknown country, for example in a preview, gets the storefront as usual.

  • At the top of every page, above the header, it says for example "We don’t sell to Norway. Prices and buying are not shown here.", your own line and "Shopping for an address in another country? Choose country". On a phone the line is shorter. The announcement bar is not affected. With Transparent over hero the line is fixed at the top of the home page, and the header sits under it.
  • The product page shows "Not sold to Norway", your own line and Choose country in place of the quantity, the add-ons, the buy button and the delivery rows. The wishlist stays.
  • Choose country opens a list of the countries in Sells to. The pick is stored in the bs_country cookie and comes before the IP country. The currency follows the chosen country, as when the storefront picks the currency by country. At checkout the address must be in a country you sell to. On a phone the list opens without the keyboard. Tap the search field to search.
  • The cart has no checkout button, no add-ons and no suggestions. Items already in it stay. /checkout shows the notice instead of the checkout.
  • With Prices hidden the prices are removed on the server: from the page's HTML, from Google's product data on the page (JSON-LD and product:price) and from the search's product list. No prices show in the menu, the search, Recently viewed, the cart or the footer's currency switcher. The view_item event is not sent to GA4. A product opened then is not added to Recently viewed, so the prices already stored there stay.

A storefront with at least one rule is never served from the shared cache, because the page differs per country. A storefront with several currencies already works that way.

The rule only covers what the visitor sees. The Google and Meta feeds and the API keep the prices.

Who can buy

Under Sells to, the Who can buy table shows each saved country: the currency a customer from there sees first, whether the payment provider takes the pair, and which shipping methods go there. The heading counts the countries that can buy, for example Who can buy · 25 of 27 ready.

ColumnWhat it shows
CountryThe country.
Pays inThe currency the customer sees first. It follows Auto-pick by visitor country under Pricing rules. The customer can switch currency, and the checkout then offers one that works.
PaymentWhat Kustom answered. Kustom said no and Not in the Kustom list are red and link to Stack › Kustom. not asked yet means Kustom has not had the question yet.
ShippingThe shipping methods that go to the country. No shipping method is red and links to Settings › Shipping.
  • The table cannot be edited. Each red row links to where the gap is fixed.
  • Pairs nobody has asked Kustom about go to Kustom when the tab opens and after Save changes.
  • A storefront on Native (test only) shows Native · no payment under Payment.

Cart

ModeThe cart iconThe discount code is entered
Cart pageOpens the cart page /cartOn /cart or at checkout
DrawerOpens the cart as a panel from the rightAt checkout

In both modes a panel opens when the customer adds an item to the cart.

  • With Cart page the panel shows items, quantities and subtotal, and the buttons "Continue shopping", "Checkout" and "View full cart".
  • With Drawer the panel is the cart. It shows image, quantity, "Remove", what is left to free shipping, whether prices include VAT, and "Checkout" with the subtotal.
  • The panel slides in from the right over 300 ms and back out when it closes. A product added while it closes turns it round where it is.
  • In both modes the panel checks the items the first time it opens on a page. The cart page does the same when it opens.
  • An item the storefront no longer sells is removed. The panel names it, for example "Blue shirt is no longer available and was removed from your cart."
  • An item that is sold out stays, marked "Sold out". Above "Checkout" it says "Blue shirt is sold out. Remove it from your cart.", and "Checkout" cannot be pressed until the customer removes the item.
  • With Drawer, /cart opens the home page with the panel open. The link's parameters are passed on, so a code in ?code= reaches the checkout. The code does not stay in the address: the storefront moves it into the tab when the page loads.

The same choice is in the designer on the Header component, under Content. Put this on the live shop sends the choice to the storefront. Custom headers with data-bs-action="open-cart" use the same choice.

Payment methods shown

The card shows the logos the storefront shows in its footer and under the buy button on the product page. Provider decides them:

  • Kustom (hosted): Visa, Mastercard, Swish, Apple Pay and Google Pay.
  • Native (test only): none, because the test checkout takes no payment.

A stored selection of your own overrides the provider's. The card then shows This shop has a stored selection, which overrides the provider default. Show only payment methods your Kustom agreement has.

See also