Shopify is today’s default answer to “where do we put the store”. And it answers that question very well: going live takes days rather than months, you never see the infrastructure, and the Shop Pay checkout converts better than anything you would build yourself. Since April 2026, the foundational B2B features (company profiles, price catalogs, quantity rules and payment terms) have been available on the Basic, Grow and Advanced plans at no extra cost. For plenty of distributors that is enough, and there is no point looking further.
This article is about where “enough” runs out.
The difference between these platforms starts at the point of origin. Shopify built an excellent retail model and is adding a B2B layer on top of it: a company is an extension of the customer account, company pricing is an assigned catalog, and the order still travels the cart-to-checkout path. Endora Commerce went the other way: the buyer is an organization, the price comes from a contract, an order can be the outcome of a negotiation, and retail selling runs as an extra channel on the same model. Below is where that difference stops being theoretical, and where it makes no difference at all.
The short version
| Criterion | Shopify (Basic → Plus) | Endora Commerce |
|---|---|---|
| Time to launch | Days or weeks | Prototype in 4 weeks, rollout in a few months |
| Infrastructure | None on your side, 99.99% uptime | One VPS that somebody has to look after |
| Cost to start | From USD 39 a month, B2B included in the plan | Roughly PLN 60–80k for the rollout, no licence |
| Cost at scale | Grows with revenue: Plus from USD 2,300/mo, apps, gateway surcharge | Flat: a VPS plus development, no fee tied to revenue |
| B2B model | Good and improving, but no RFQ and no order approval | Quote requests, organization hierarchy and credit limits in the core |
| Order lifecycle | Fixed; you cannot define your own statuses | Your own statuses and transitions, configured in the admin panel |
| Extending the platform | Apps, Functions and themes within the limits Shopify sets | Code in your repository, no limits beyond your own time |
| Integrations | About 18k apps, but ERP through a connector or middleware | Partner API and webhooks: any ERP, CRM, WMS or OMS through an adapter |
| Polish e-invoicing (KSeF) | Not supported natively; via an app or an external system | In the platform core, FA(3) format |
| Code and data ownership | None, it is SaaS | Code in your repository, data in your database |
If you only read three sentences: pick Shopify when you want to be selling as fast as possible, your processes fit the standard, and retail matters as much as wholesale. Pick Endora when business-to-business selling is the main business: prices are negotiated, the order process has steps of its own, and the ERP integration is the heart of the puzzle rather than an add-on. If you already sell on Shopify and everything works, migrating without a specific, costed reason is a bad investment.
What each platform actually is
Shopify and its B2B modules
Shopify is SaaS: you pay a subscription and the platform runs on the vendor’s side. You have no server access, no code and no database. You have an admin panel, a theme, apps and an API.
The plans today are: Basic USD 39, Grow USD 105, Advanced USD 399 a month (cheaper paid annually), and Plus from USD 2,300 a month on a three-year term, or USD 2,500 on a one-year term.
The most important change for B2B came in April 2026: the foundational B2B features moved down to the Basic, Grow and Advanced plans at no extra cost. In practice you get:
- Company profiles: one company can hold up to 50 locations, each with its own price catalog, address, payment terms and contacts. Contacts are assigned roles that decide whether they see prices, place orders, or only browse history.
- Catalogs and pricing: custom and volume pricing, quantity rules and case packs, assigned to a company or to one of its locations.
- Payment terms: Net 15, 30, 60 and variants, with invoices and the buyer’s purchase-order number.
- Draft orders, quick order lists and self-serve reordering, plus a distinct checkout experience for business buyers.
Plus still holds the things you need exactly when the business grows: unlimited catalogs instead of three, direct catalog assignment to companies and locations, partial payments and deposits, permission scoping for sales reps, and deeper checkout customization. That is a real cost threshold, which I come back to in the cost section.
Endora Commerce
Endora Commerce is a B2B platform written in TypeScript: a Fastify backend with MikroORM and Zod contracts, a server-rendered Next.js storefront, and a React admin panel. Data in PostgreSQL, cache and queues in Redis, search in Meilisearch. Over 60 modules ship as standard: from catalog and price lists to KSeF e-invoicing, product feeds and an AI assistant in the admin panel.
B2C selling runs on the same installation and the same data model: registering an individual customer quietly creates a one-person organization, so orders, quote requests, invoices and addresses follow the same path as in B2B. B2C is switched on per sales channel.
The delivery model is the opposite of Shopify’s: you do not pay a subscription, you get a platform rolled out around your processes, with the code in your own Git repository and the data in your own database. The first working prototype takes four weeks, and an average rollout lands in the region of PLN 60–80k, excluding integrations with external systems, which are quoted separately.
Performance
Two things get blurred into one here, so let us separate them: the speed of the platform itself, and the speed of your particular build.
The platform itself
Shopify wins and there is nothing to argue about. A global CDN, a declared 99.99% uptime, infrastructure proven at a Black Friday scale no single company will reproduce. Then the Shop Pay checkout, which independent studies put ahead of standard checkouts by anywhere from 15% to 36% on conversion, with over 150 million saved buyer profiles. You do nothing to make that work, and nobody calls you at night.
Endora renders the storefront server-side in Next.js, with Core Web Vitals targets written directly into the platform requirements (LCP under 2.5 s, INP under 200 ms, CLS under 0.1) and search under 200 ms at the 95th percentile. The target scale is hundreds of thousands of SKUs and hundreds of orders and quote requests a month on a single VPS: 4 vCPU and 8 GB RAM minimum, 8 vCPU and 16 GB recommended. The demo runs on a catalog of over 120k SKUs, and generating a feed for 100,000 products produces a 38 MB file with peak memory use under 20 MB, because serialization streams.
Those are good numbers, but it is still a server somebody has to monitor, patch and back up. Shopify does not have that problem by definition, and that is a genuine advantage rather than a marketing line.
Your particular build
Here it gets more complicated, because on Shopify a store’s speed depends heavily on how many apps you pile onto it. Each one adds its scripts to the storefront and its calls to the API. A store with a dozen apps can be noticeably slower than the same store without them. And that is precisely the road you take with unusual B2B, because missing features get filled in with apps.
On top of that come the API limits, which got tighter in 2026: alongside the per-second limit (50 points on standard plans, 100 on Advanced, 500 on Plus) there are now daily quotas priced by request cost, with queuing and rejections above the limit. Syncing a large catalog with an ERP in both directions turns that from an abstraction into a planning constraint.
Endora does not have that limit, because the API is yours and runs on your server. It has a different one: the performance ceiling is set by hardware you pay for, not by a contract with a vendor.
Cost
This is the section worth reading the whole piece for, because intuition misleads in both directions here.
What exactly you pay on Shopify
| Item | How much |
|---|---|
| Subscription | USD 39 / 105 / 399 a month (Basic / Grow / Advanced), Plus from USD 2,300 |
| Revenue-based fee (Plus) | Above roughly USD 800k monthly GMV: 0.35% on a 3-year term or 0.40% on a 1-year term, capped at USD 40k a month |
| Third-party gateway surcharge | 2% / 1% / 0.6% per transaction (Basic / Grow / Advanced), 0.20% on Plus — zero if you use Shopify Payments |
| Card processing | Around 2.9% / 2.7% / 2.5% + USD 0.30 on Shopify Payments |
| Apps | Usually tens to hundreds of dollars a month, rising with every unusual requirement |
| Theme and build | One-off, from a few to a few tens of thousands of PLN |
Two things deserve to be said plainly. First, you pay card processing on every platform: that is the cost of taking payments, not a Shopify cost. Second, Shopify Payments is available in Poland and supports BLIK, so the third-party gateway surcharge is avoidable. But if you need PayU, tpay or Przelewy24 for some reason (how your settlements are set up, a particular BLIK flow, a finance department decision), the surcharge comes back and applies to every transaction.
What exactly you pay on Endora
| Item | How much |
|---|---|
| Licence | None |
| Revenue-based fee | None |
| Per-seat fee | None |
| Rollout | Roughly PLN 60–80k; integrations with external systems quoted separately |
| Infrastructure | One VPS, in the region of a few thousand PLN a year |
| Development after launch | As needed, with a partner or your own team |
| Card processing | Your gateway’s rates: Stripe, PayU or tpay, with no intermediary surcharge |
How it adds up
Take a B2B company with PLN 10m in annual online revenue, at roughly PLN 3.7 to the dollar. I am leaving card processing out, because it applies on both sides.
| Scenario | Annual platform cost |
|---|---|
| Shopify Advanced, Shopify Payments, 6 apps at about USD 50 | About PLN 31k |
| Shopify Advanced, third-party gateway (0.6% surcharge), 6 apps | About PLN 91k |
| Shopify Plus, Shopify Payments, 6 apps | About PLN 116k |
| Endora Commerce after the rollout | About PLN 5–10k of infrastructure |
And here is what follows from that — including the inconvenient part.
In year one Shopify is usually cheaper. An Endora rollout is PLN 60–80k up front, and a Shopify Advanced store with a decent theme goes live for a fraction of that. If your horizon is “find out whether a B2B channel pays for itself at all”, that is a real argument for Shopify.
By year three the picture flips, because Shopify’s costs recur and grow with you, while Endora’s are one-off plus infrastructure. Over three years at the revenue above: Shopify Advanced with Shopify Payments comes to about PLN 93k, the same setup with a third-party gateway to about PLN 273k, and Plus to about PLN 346k. Endora over the same period is PLN 60–80k of rollout plus PLN 15–30k of infrastructure.
The sharpest threshold is the jump to Plus. If your business needs more than three price catalogs, deposits and partial payments, or permission scoping for sales reps, there is no middle path: you go from USD 399 to USD 2,300 a month. That is an order-of-magnitude jump triggered by features that are entirely ordinary in B2B. On Endora, unlimited price lists and sales-rep permissions are not a pricing tier, they are what the platform does.
Fairly, on the other side: the Shopify bill covers hosting, security, updates, the CDN and PCI compliance. On Endora those things do not disappear: somebody has to do them, and that costs too, though usually well below the difference in subscriptions. You can take that on yourself, or contract it to us or to a partner firm under an SLA covering both administration and development. And one more thing: PLN 60–80k is a starting point rather than a ceiling. Integrations are quoted separately, and development after launch has its own price.
Ease of extending the platform
The cleanest way to test this criterion is a single question: how long does it take to add your own “in production” order status and a “contract number” field on the order?
On Endora you do both in the admin panel. Order statuses and the transitions between them are configurable, with a business event attachable to every transition. Custom fields are added to orders, organizations, customers, categories, products and quote requests as data, with no database migration and no code deployment.
On Shopify you cannot do the first one at all. The order lifecycle belongs to the platform: you get fulfilment and payment statuses defined by Shopify, and you model your own process alongside them, using tags, metafields and automations in Shopify Flow. It works, and plenty of companies run that way, but it is a workaround rather than a model. The second one is easy: metafields and metaobjects are genuinely good on Shopify and need no developer.
| Task | Shopify | Endora Commerce |
|---|---|---|
| Custom order status with logic | Not available directly; tags, metafields and Shopify Flow | Admin configuration |
| Extra field on the order | Metafield, in the admin panel | Admin configuration |
| Custom pricing rule | Catalogs and quantity rules; beyond that Functions or an app | Rule builder in the admin panel |
| Changing checkout logic | Checkout Extensions and Functions; the deepest level is Plus only | The checkout code is yours |
| New local payment method | An App Store app or Shopify Payments | An adapter module, core untouched |
| An unusual feature nobody has built | A custom app within Shopify’s model, or you go without | A module in your repository |
Generalising: on Shopify you extend the platform within the limits Shopify sets. Those limits are well thought through, well documented and regularly widened, and Functions, Checkout Extensions, metaobjects and Flow give you a great deal. But they are still somebody else’s limits, moved at somebody else’s pace. On Endora the limit is your time and budget, because the code sits in your repository.
Shopify has two advantages here that cannot be argued away. Platform updates are free, automatic and never a project: there is no such thing as “migrating to a new version of Shopify”. And the talent market is enormous: you will find a Shopify partner in any larger city, and swapping agencies does not mean rewriting the store. Endora hands you the code, but you will not find a team that knows this platform inside out from the first job ad. It is softened by the fact that the code is ordinary TypeScript with Zod contracts rather than a bespoke framework. It does not remove the problem entirely, though.
One thing only runs in one direction: the Endora admin panel ships with an AI assistant. You open the command palette, describe in plain language what should happen, and the assistant shows the plan and executes it after your confirmation, within your permissions and with an entry in the audit log.
There is a number behind that, because “fast” on its own means nothing: a less complex module takes 1-3 days in Endora, a larger one up to a week. That excludes integrations with an ERP, WMS, CRM, PIM or OMS: those are always heavily bespoke, and writing one takes up to two weeks. Those are always heavily bespoke and can take considerably longer. The difference against a subscription model is not really about the days, though. It is that there is somebody to ask at all: on SaaS a missing feature joins the vendor’s wish list and arrives when they decide, not when you do.
Integrations with external systems
In B2B this is usually the deciding criterion, because the platform is almost never the source of truth: the ERP is, and next to it the CRM, the WMS and increasingly an OMS.
Where Shopify wins
The number of ready-made apps. The App Store now holds over 18,000 of them. Whatever you want to plug in (marketing, shipping, subscriptions, reviews, inventory), somebody has probably built it and sells it on a subscription. Installing takes minutes and needs no developer. That advantage cannot be recreated quickly.
Where Endora wins
Start with the part that is weaker than the size of the App Store suggests: Shopify does not sync natively with any serious ERP. Not SAP, not Dynamics, not NetSuite, and certainly not Comarch Optima or Subiekt. It all goes through a third-party connector, middleware, an iPaaS or a bespoke integration. Which means that for the ERP integration you pay for code or for yet another subscription anyway. Except that you work inside somebody else’s data model and under somebody else’s API limits.
Endora’s integration layer is generic. There is no roster of “supported ERPs”, there is a documented contract: a partner API, signed webhooks and encrypted provider configurations. Any ERP, CRM, WMS or OMS is wired up as an adapter module, whether it is Comarch, SAP, a bespoke system written in-house twenty years ago, or a platform nobody has heard of yet.
The specifics this layer rests on:
- Comarch ERP Optima and Subiekt GT: adapters as standard, covering item records, stock, prices and sales documents.
- KSeF in the platform core: invoices and corrections in the FA(3) format sent through a durable queue, the KSeF number on the document, the official receipt downloadable and a verification QR code on the PDF. On Shopify, KSeF does not exist as a concept: you handle Polish e-invoicing through an external system or an intermediary app, and with it mandatory in Poland in 2026, that is not a detail.
- A partner API with a live OpenAPI document: generated from contracts in the code, with no daily quotas imposed by a vendor.
- API keys pinned to an organization and a channel: the integration sees exactly that company’s prices and limits, and can do no more than its own buyer.
- Idempotent orders: a repeated request returns the same order, never a second one.
- Webhooks signed with HMAC-SHA-256, up to eight attempts with growing back-off, and a separate view of failed deliveries with manual retry.
- Bulk pricing: one request prices up to 200 lines for a specific organization, guaranteed to match the cart.
- Credentials encrypted with AES-256-GCM, tested on save and masked on read.
It comes down to this: on Shopify you buy marketing and logistics integrations in minutes, and commission the integration with the system you actually run the company on anyway. On Endora you buy nothing in minutes, but the ERP integration is ordinary work in your own repository, with no daily quotas and no risk of the connector vendor disappearing.
B2B: where Endora Commerce genuinely stands out
Let me start with what there is no point hiding: Shopify’s B2B modules are good and improving fast. Company profiles with locations, contact roles, price catalogs, volume pricing, quantity rules, case packs, Net terms, purchase-order numbers, quick ordering and self-serve reordering: that is a complete set for a company selling wholesale from a price list. If your B2B fits the sentence “regular customers buy at their own prices and pay on terms”, Shopify will handle it, and it will be cheaper and faster than anything custom-built.
The difference shows up where selling stops being a variant of retail.
1. Quote requests as a full negotiation loop. Shopify has no native RFQ and no price negotiation mechanism. If your buyers ask for a price before placing an order, that process simply does not exist out of the box. You handle it with an app, over email, or with a draft order a sales rep raises by hand. On Endora it is the core: the customer submits a request, the sales rep quotes with a lead time and validity terms, both sides can revise the terms, and an accepted quote becomes an order without re-keying a line. Add to that the none price-display mode, which hides every price element and routes purchase intent into a quote request. That is the option for the range you never sell from a price list on principle.
2. Order approval on the buyer’s side. Shopify has no native approval layer in the order path. If a buyer has an internal procedure requiring a manager’s sign-off, that needs an app or an integration with a procurement system. Endora has cart approval enabled per organization, with a full submit-for-approval path and a decision carrying a reason.
3. An organization hierarchy that inherits terms. Shopify models a company as a profile with a list of locations, up to 50 per company. That is a flat structure: locations have their own catalogs and addresses, but there is no tree for commercial terms to flow down. On Endora, headquarters and branches form a tree: order visibility flows downwards, while the price list and credit limit are inherited from the nearest ancestor. A group with several levels does not need its configuration duplicated.
4. A credit limit, not just payment terms. Shopify gives you Net terms, that is, “pay within 30 days”. Endora gives you a credit limit granted to an organization, reserved atomically at order placement and released once the invoice is paid or the order is cancelled, with payment methods filtered out when the limit runs out. That is the difference between a deadline and actual control of trade-credit risk.
5. Your own order lifecycle and fields that come out of contracts. Statuses, transitions and business events are configured in the admin panel, and custom fields are added to orders, organizations and quote requests with no deployment. On Shopify, order status belongs to the platform.
6. The sales channel as a first-class dimension. Storefront, marketplace, distributor portal, mobile app and POS are separate channels of the same installation, with separate products, prices, promotions, content, settings, analytics and search index. On Shopify the equivalent is expansion stores and Shopify Markets. It works, but it usually means the Plus plan and separate stores to maintain.
There is also something a feature list does not show: every sensitive operation lands in the audit log with the state before and after the change, and a sales rep can step into the customer’s context to see their prices through their eyes, with a visible banner and an audit entry.
Where Shopify has the edge within B2B itself: the checkout. Shop Pay and a heavily refined purchase path work for business buyers too, and that is an experience nobody builds in a quarter. Mixing B2B and retail in one store is trivial on Shopify, and the B2B modules come with a plan starting at USD 39 a month. Endora needs a rollout project here.
When Shopify is the better choice
1. You sell wholesale from a price list, without negotiation. Regular customers, assigned prices, payment terms, repeat orders. Shopify’s B2B modules cover that completely, and it will be faster and cheaper than a build.
2. Retail matters as much as wholesale. A store for companies and a store for consumers in one place, with one checkout and one inventory. Shopify has always done this, and does it very well.
3. You do not have, and do not want, a technical back office. No servers, no updates, no on-call. The subscription buys you out of the entire operational layer: that is real value, not a false economy.
4. Time to first sale is what counts. Weeks rather than months. If you are testing a channel rather than building it for a decade, speed beats flexibility.
5. Your processes fit the standard. The order travels the cart-to-checkout path, Shopify’s statuses are enough for you, and integrations come down to App Store tools.
6. You want an easily replaceable vendor. The Shopify partner market is deep, and changing agencies does not mean rewriting the store.
7. You sell retail across several markets. Shopify Markets, currencies, taxes and international logistics are thought through and ready here.
When Endora Commerce is the better choice
1. Selling runs through negotiation. Quote requests are the main path, not an add-on. Part of the range shows no price at all. This is the scenario Shopify does not cover natively.
2. The order process has steps of its own. Technical review, sign-off at the buyer, production, picking, partial releases. If your order lifecycle does not fit Shopify’s fulfilment statuses, working around it with tags starts costing more than a platform of your own.
3. The ERP is the heart of the puzzle. Since you cannot buy the Comarch, Subiekt or in-house-system integration off the shelf either way, it is worth costing out whether to write it inside somebody else’s data model under their API limits, or inside your own repository.
4. You work in a Polish context. Mandatory KSeF, invoices with your own numbering, credit limits, settlement through PayU or tpay with no intermediary surcharge. On Endora that is native; on Shopify it is a layer assembled from apps and external systems.
5. You are approaching the Plus threshold. More than three price catalogs, deposits, partial payments, sales-rep permissions. Before you pay USD 2,300 a month for features that are ordinary in B2B, it is worth comparing that against a one-off rollout.
6. Your customer structure is complex. Groups of companies, branches inheriting terms, credit limits held at headquarters, order visibility flowing down the tree.
7. You want to own the code and the data. No lock-in, no migration if the vendor’s terms change, no dependence on whether a feature survives the platform’s next release.
8. You are building a distributor portal or several channels at once. Separate range, prices and content per channel from one admin panel, with no duplicated stores and no multiplied subscriptions.
What Endora Commerce does not have
This section is here so the piece can be used to make a decision, not just to feel convinced.
- Upkeep bundled into a single price. Somebody has to maintain the server, the backups and the updates. Shopify takes all of that off you, and that is a real difference in day-to-day work. You can run that yourself, or contract it to us or to a partner firm under an SLA.
- A checkout on the level of Shop Pay. 150 million saved buyer profiles and years of conversion testing are an asset you will not replicate.
- An App Store with 18,000 apps. You will not add a feature in five minutes for USD 20 a month. Every unusual thing is development work.
- Free, automatic platform updates. Developing Endora means your deployments in your repository.
- A deep market of specialists. Shopify partners number in the thousands. Endora is developed with a partner or your own TypeScript team.
- References at Black Friday scale. If your requirement is a documented retail case with tens of thousands of sessions per minute, Shopify has one.
- Ready-made multi-market retail selling. Shopify Markets solves currencies, taxes and international logistics in a few clicks.
A short checklist
Answer these questions. The pattern usually lines up on one side.
- Do your customers ask for a price before ordering, or buy at prices they already have assigned?
- Does the order process have steps that cannot be called “paid” and “shipped”?
- How many price catalogs do you actually need, and do you fit inside three?
- Do you need deposits, partial payments or permission scoping for sales reps?
- Are KSeF and a Polish ERP integration hard requirements for you?
- What is your horizon: testing a channel for a year, or building it for five?
- Do you have somebody to look after a server, or does that have to be somebody else’s problem?
- Is owning the code and the data a requirement for you, or just a nice extra?
A majority of “we negotiate prices”, “unusual process”, “Polish ERP and KSeF”, “we are building for years” and “we want to own the code” points to Endora. A majority of “selling from a price list”, “retail matters just as much”, “no technical back office” and “speed is what counts” points to Shopify.
In summary
Shopify and Endora Commerce solve different problems, even though at first glance they look like competitors. Shopify gives you the most polished store on the market, zero technical overhead and B2B modules that since 2026 come with the entry-level plan. You pay for that with a subscription that grows alongside the business, limits set by the vendor, and no code of your own. Endora gives you a platform designed around business-to-business selling, with quote requests, credit limits and your own order lifecycle in the core, for a one-off rollout and no fee tied to revenue. You pay for that with running a server, the platform’s youth and a narrower market of specialists.
The simplest test: if your B2B can be described as “wholesale from a price list”, Shopify is probably enough and will be cheaper. If the description contains the word “we negotiate” or “our orders go through”, the second option is worth costing out.
The Endora admin panel and storefront run online, so the fastest route is to click through the demo yourself or book a free workshop where we walk through your processes and systems, then put a number on the first rollout, integrations included.
And if the conversation points to Shopify being the better fit — we will say so plainly. A failed rollout is not a good reference for anyone.