Skip to content
Inte tillgänglig på svenskaEnglish
Get in touch

Subscriptions, B2B prices and multiple currencies are where standard stores run out

Standard store setups handle one currency, one price list and one-off purchases well. Adding subscriptions, business customers or new markets changes the checkout, payments and order admin. What changes and where the limits are.

A standard online store is built for one currency, one price per product and customers who pay up front, once, with a card. For many stores that is exactly right, and a good theme with a few extensions is all they need.

Three requests tend to break those assumptions: selling on subscription, selling to businesses and selling in more than one currency. Each one can be handled on its own. Combined, they affect the checkout, payments and order admin at the same time, and that is where off-the-shelf setups start to struggle.

Subscriptions

A subscription turns one order into a series of them. The store has to charge the customer again later, without the customer being there.

That changes several things:

  • Payment. The card has to be stored with the payment provider in a way that allows charges without the customer present. Not every payment method supports this, and some local methods do not support it at all.
  • Failed payments. Cards expire and get declined. The store needs a plan for retries, reminder emails and what happens to the subscription in the meantime.
  • Changes. Customers want to pause, skip a delivery, change the product or the quantity. Each of those has to produce the right next charge.
  • Stock and fulfilment. Recurring orders have to show up in the warehouse like any other order, on the right day.

On WooCommerce, WooCommerce Subscriptions is the common foundation. Shopify handles it through apps, including its own Shopify Subscriptions app, built on its subscription APIs. What no extension can know in advance is the business rules, such as which changes a customer may make, how close to the next delivery, and what a skipped month means for a discount.

Payment providers such as Stripe also offer subscription billing on their side, described in the Stripe Billing overview. Deciding whether the store or the payment provider owns the schedule is one of the first decisions to make, because running it in both places leads to double charges.

B2B pricing

Business customers rarely pay list price. They have agreements, volume discounts or a price list of their own. They often want to pay by invoice instead of card, see prices without VAT and order on behalf of several people in the same company.

On top of a consumer store that means:

  • Price lists per customer or group. The right price has to apply everywhere: the product page, the cart, emails and the order record.
  • Prices shown without VAT, while consumers on the same store still see prices with VAT.
  • Invoice as a payment method, often with a credit check and a limit per customer.
  • Company accounts with several buyers, approval steps and order history shared within the company.
  • Hiding prices or products from customers who should not see them.

Shopify has built-in B2B features on the Basic plan and up, with company accounts, catalogs and payment terms, while some features such as customer-specific catalogs and deposits require Shopify Plus. On WooCommerce the same is usually built from extensions plus custom work, because each business has its own rules for who gets which price.

The extra work lies in making sure the same price follows the order through to the invoice, the accounting system and any credit notes later.

Multiple currencies

A store that sells in several currencies, and not only displays them, has to decide:

  • Fixed prices or converted prices. Converting automatically means prices change with the exchange rate, often to odd amounts. Fixed prices per currency look better but have to be maintained.
  • Rounding rules so that 249 kronor does not become 23.47 euro.
  • Which currencies each payment method supports. Some local payment methods only work in their own currency.
  • Accounting. Orders arrive in different currencies and have to be booked correctly, with the exchange rate on the day of the sale.
  • Taxes and shipping for each market, which often differ more than the prices do.

WooPayments includes multi-currency with automatic or manual rates. Shopify handles this through Markets, which also covers domains, languages and duties per country. Both are good starting points. The details that need custom work are usually the ones in the list above that touch other systems.

The order admin is part of the job

Most of the attention goes to what customers see. The staff side changes just as much, and is easy to forget until launch.

With subscriptions, business customers and several currencies in the same store, the people handling orders need to see at a glance:

  • whether an order is a one-off purchase or a renewal, and which subscription it belongs to
  • which price list was applied, and why
  • which currency the customer paid in, and the amount in the store's base currency
  • whether the order is paid, or waiting for an invoice to be settled

Standard order screens show some of this and hide the rest in notes or metadata. Adding a few columns and filters to the order list, or a box on the order page that sums up the customer's agreement, saves time on every order and prevents mistakes such as refunding in the wrong currency or shipping before an invoice customer has passed the credit check.

Emails need the same attention. Order confirmations, renewal notices and invoices should show the price the customer agreed to, in their currency, with or without VAT as the customer expects.

When all three meet

The combinations are what cause most of the custom work:

  • A business customer in another country, on a subscription, paying by invoice in euro.
  • A price list that has to exist in three currencies.
  • A subscription renewal that has to use the customer's agreed price, not today's list price.

Extensions are each built to handle their own part, and do not always know about each other. A subscription extension may not respect a B2B price list on renewal. A currency switcher may not apply to invoice payments. These gaps tend to surface after launch, on real orders.

Where to start

Before choosing extensions or a platform, write down the rules:

  • Who pays what, in which currency, and how.
  • What a customer can change on a subscription, and when.
  • Which system owns prices, customers and invoices.

With the rules written down it becomes clear what standard features cover and what has to be built. That keeps custom work focused on what is unique to the business, instead of rebuilding what the platform already does well.

The checkout, the payment integrations and the order admin are where this work ends up. Those are the parts customers and staff touch every day, and the parts where a wrong price or a missed charge costs the most.

Sources

  • e-commerce
  • WooCommerce
  • Shopify
  • subscriptions
  • B2B
  • payments

Keep reading

More articles

All articles