Shopify or custom e-commerce software? Seven thresholds you can measure on your own store
C.E.O. Bee Engineering20 min read
Whether to choose Shopify or custom e-commerce depends not on revenue or product count but on seven behaviors of your store: customer-specific pricing, quote and approval flow, multi-warehouse stock, ERP sync, payment country and methods, the total of transaction fees, and API rate limits. An off-the-shelf platform is enough if all seven pass. You test each threshold in a trial store against the platform's own documentation. The article gives the seven tests, a red-yellow-green reading and a copy-ready worksheet.
The honest first answer: when is an off-the-shelf platform enough?
If your catalog is standard, the price is the same for everyone, stock sits in one place and the payment methods the platform offers cover your customers, an off-the-shelf platform is enough: staying on Shopify, ikas or a similar platform is the right answer, and writing custom software would be unnecessary work. If an off-the-shelf product already does the job, we will tell you so, and we say it on our custom software development page too.
The question is not "which is cheaper" or "which is more impressive." It is "which behaviors of my business does this platform pass, and which does it not." You can work out the cost side with a separate method, the total cost of ownership worksheet. This article does not repeat that; it measures platform behavior.
What this article measures, and what it does not
The Shopify or custom e-commerce question is often framed in terms of revenue, product count or traffic. We set no numeric threshold on any of those. Instead you test seven behaviors on your own platform: in a trial store, with test orders, in your own account's admin and in the platform's own documentation.
What to keep in mind:
- Platform and tool names are only the subject; we neither recommend nor criticize any of them.
- Documentation facts are dated (opened and read on November 6, 2026) and vary by plan, country and version. We give no plan limits or rates as numbers; check your own plan's current page.
- We do not claim that a platform cannot do something. We write only what the opened and read documentation says, and we know that a thing missing from a page does not mean it does not exist, so every threshold ends in a test.
- ikas's v1 developer pages describe the v1 endpoint of the API and recommend v2 to new users; v2 has its own documentation (builders.ikas.com) with customer group, price list and rate limit pages. Check the current state yourself.
- A multi-seller marketplace (each seller with their own orders and payouts) is not on this list. We did not read a platform document we could cite for it; if that is your case, look at your own payment provider's documentation on how payouts to sellers are handled.
Shopify or custom e-commerce? Seven thresholds, seven tests
Each threshold has the same five lines: the question, how to test it on your own platform, the pass criterion, the basis (document and date) and the options if it falls short. Run the tests in a trial store with made-up data, not in your live store.
Threshold 1: Customer-specific and tiered pricing
Question. Can you give different customer groups different, quantity-tiered prices for the same product, and does the order show the right price?
How to test it on your own platform. Pick two customers (companies) and the same product; define a different price and quantity tiers for each and place test orders. How many places do you manage the price in, is there a bulk import, and when the price changes, which one shows on the order?
Pass criterion. Every price you defined appears exactly as defined, for the right customer and the right quantity, on the order screen and the invoice, and you manage it in one place.
Basis. Shopify B2B documentation (November 6, 2026): prices are set through catalogs, catalogs are assigned to B2B markets or to companies and company locations, and you can define quantity rules and volume price breaks; if more than one catalog applies to a customer, a catalog assigned directly to the company location takes precedence over market catalogs, among market catalogs the more specific matching market takes precedence, and the lower price applies only when the catalogs are equally specific (when several catalogs are assigned directly to the same company location, the store shows the lowest price for the item, not counting quantity rules or volume price breaks). The plan differences are written in the documentation: B2B is not available on the Starter or Retail plans; assigning a catalog directly to a company or location is available only on Plus; on the other plans there is a cap on active catalogs.
ikas developer documentation (November 6, 2026): the admin API has price lists and an operation that updates variant prices in a price list; in the v2 documentation, the customer group record carries a price list ID and price rules (fixed price, discount rate or discount amount), so the API does tie a customer group to a price list; how this shows on the order and the invoice is not stated on the pages we read, so test it in the panel.
If it falls short. A process or plan change, an app or extension, a hybrid that keeps the pricing rules in a separate service, or custom software.
Threshold 2: Quote and approval flow
Question. A buyer asks for a quote, the seller gives a price, the buyer approves and an order is created: does that chain run on one record, with a visible trail of who did what?
How to test it on your own platform. Run one end-to-end scenario: the buyer submits an order for review, the negotiated price is entered on the seller side, the buyer approves, the order is created. At each step, who acted, where and on which record?
Pass criterion. Every link in the chain shows on one record, and the agreed price does not change on its own afterward.
Basis. Shopify B2B draft order documentation (November 6, 2026): a negotiated price can be entered as a custom price on the line item; if you turn on the option to submit all orders as drafts for review, buyers see a Submit for approval button at checkout, the orders land in the seller's drafts list with prices locked by default, and a price lock keeps the quoted price even if the product price changes later. We read no ikas document for this threshold, so we write nothing about it.
If it falls short. If you need several rounds of negotiation, an approval hierarchy or rules from your own systems: a process change, an app, a hybrid or custom software.
Threshold 3: Multi-warehouse stock
Question. If the same variant sits in several warehouses in different quantities, which warehouse fills an order, and by what rule?
How to test it on your own platform. Hold the same variant at two locations in different quantities. Place a test order for a quantity one location can fill alone, then one that no single location can fill. Which location was the order assigned to, was it split, did stock go negative?
Pass criterion. The order goes to the location you expect, or is split by your own rule; you know how stock behaves when it goes negative and can set it the way you want.
Basis. Shopify Help Center, order fulfillment for locations (November 6, 2026): with several active locations, online orders are assigned based on the order routing configuration and available inventory; if one location can fill the whole order, inventory comes from it; if none can, the order is split across locations or the highest-priority location oversells the product (in the page's example, stock goes negative); there is a routing rule for minimizing splits. The order routing page says it requires two or more active locations.
ikas documentation: the admin API has stock locations, and stock can be defined and updated per location; the behavior that decides which location fills an order is not described on the pages we read, so test it in the panel.
If it falls short. Rebuilding the routing rules, an app or extension, a hybrid that keeps stock logic in a shared data layer, or custom software.
Threshold 4: ERP and stock sync
Question. Does a stock or price change in your ERP reach the store correctly, once and in order, and who finds out if something goes wrong?
How to test it on your own platform. Make a stock or price change in the ERP and write down when and by what route it shows in the store. Then stop the integration temporarily, send the same event twice, and send two events out of order. Was a duplicate record created, did the final state end up wrong, who noticed the failure?
Pass criterion. The change shows by the expected route and consistently; a missed event is caught by a regular reconciliation; a failure reaches a person.
Basis. Shopify webhook documentation (November 6, 2026): duplicate deliveries should be filtered by webhook ID; the page makes no promise about order within a topic or across topics for the same resource (a product update event can arrive before the create event), and timestamps are recommended for ordering; it also says delivery is not always assured, so reconciliation jobs that periodically fetch data from Shopify are recommended. Shopify B2B external integration page: there are direct integrations, integration-platform services and custom API routes for ERP, CRM and similar systems; some apps may not be fully compatible with B2B company and catalog data, so confirm compatibility with the provider. ikas webhook documentation: if the endpoint is unreachable or returns an error, ikas tries to send a few times and then stops sending; the v2 documentation also lists blocking rules for webhook endpoints with a high error rate and asks you to answer ikas with HTTP 200 before running your flow.
If it falls short. Add a reconciliation job, an integration platform service, or a small service that stores event IDs (a hybrid). For how repeats and ordering are tested, see the first two thresholds in our n8n and Zapier article.
Threshold 5: Payment country and payment methods
Question. In the country where your business is located, can you use the platform's built-in payment solution; if not, how do you add the payment methods your customers use?
How to test it on your own platform. Start with the platform's supported countries page: is your country on the list, is your business category accepted? If not, test by what route you can add each payment method your customers use, and how manual methods such as bank transfer mark the order.
Pass criterion. Every payment method your customers use can be added by some route, and the order's paid or unpaid status is marked correctly; you know the added cost (threshold 6).
Basis. Shopify Help Center, Shopify Payments supported countries and eligibility pages (November 6, 2026): your business must be in one of the supported countries and your business type and products must not be prohibited; if your country is not listed or your category is not supported, a third-party payment provider is used. In the list we read on November 6, 2026, Türkiye was not included; the list can change, so open it and look yourself. Your provider's own documentation is your basis.
If it falls short. Continue with a third-party payment provider (counting the extra fee in threshold 6), a hybrid that builds the payment flow in a separate service, or custom software.
Threshold 6: Total cost of platform fees and transaction fees
Question. What do the plan fee, payment processing fee, third-party transaction fee and app subscriptions add up to, and how does that total behave as sales grow?
How to test it on your own platform. Put your own plan's pricing page next to the order export for one real month. Write the total as a formula and fill in the numbers yourself: plan fee + payment processing fee + third-party transaction fee + app subscriptions + custom development. We give no rates or amounts in this article.
Pass criterion. You can write every line from its own source with a date, and the total can be read next to the alternatives in the same worksheet.
Basis. Shopify "Fees and costs" page (November 6, 2026): the Shopify Payments processing fee varies by card type and location; third-party transaction fees vary by Shopify plan and are charged when a third-party payment provider is used. If you use Shopify Payments, orders processed with Shopify Payments, Shop Pay, Shop Pay Installments and manual payment methods such as cash on delivery or bank transfer are not charged this fee; however, on stores created on or after May 12, 2025, the amount paid with store credit or gift cards is charged the third-party transaction fee even when you use Shopify Payments. If your customer's currency differs from your payout currency, a Shopify Payments currency conversion fee also applies; its scope depends on the payment provider. The rates are on the page, not here.
If it falls short. A plan or payment provider change, a hybrid, or custom software. To weigh cost line by line, see our worksheet article; we do not repeat its lines here.
Threshold 7: API and rate limits
Question. What happens when your own sync or bulk import hits the platform's limit at its busiest moment?
How to test it on your own platform. Replay the busiest moment of your sync or bulk import in a test environment. What happens at the limit: a queue, an error, a wait? Does the limit depend on your plan? Was data lost or duplicated?
Pass criterion. Hitting the limit creates no lost or duplicate records; your application waits and retries; the length of the busiest moment is acceptable for the business (you set the standard).
Basis. Shopify API limits page (November 6, 2026): most APIs are rate limited; how limits are calculated and the figures vary by API and plan; limits use a leaky bucket method, and when the bucket is full you get a throttle error and have to wait; the page asks that applications be built to handle limits gracefully and says Shopify may temporarily reduce limits to protect the platform; stores with very large numbers of variants also have a daily cap on creating new variants (not applied on Plus). ikas's v2 developer documentation has a rate limits and blocking rules page: it describes a general request limit within a time window, a 429 Too Many Requests response, and temporary automatic blocking when the error rate is high; we give no figures here, so read the page and confirm in writing with the vendor that it covers your integration.
If it falls short. Queue and split the jobs, use an integration service, a hybrid, or custom software.
Reading the result: red, yellow, green and the decision
Put the thresholds into seven rows and give each a color. This reading is our engineering judgment, not a standard.
| Color | Condition | Decision |
|---|---|---|
| Red | Threshold 1, 2 or 5 failed, and an app, process change or plan change does not solve it either | An off-the-shelf platform alone is not enough: evaluate a hybrid or custom software |
| Yellow | Threshold 1, 2 or 5 failed but an app, process change or plan change solves it; or threshold 3, 4, 6 or 7 failed | An app or extension, a process change or a hybrid; write a task with an owner for each remaining threshold |
| Green | All seven passed | Stay on the off-the-shelf platform |
There are four decisions: stay on the off-the-shelf platform, off-the-shelf plus an app or extension, hybrid (off-the-shelf storefront, custom back end) and custom software. We described how to build a hybrid in two articles: an off-the-shelf core with a custom layer and the tool runs the flow, a small service handles the critical step.
Two real patterns
Two entries in our portfolio show how these thresholds look in real systems. In neither do we say whether an off-the-shelf platform was tried or whether it was enough; the cards do not say.
In the B2B / C2C e-commerce platforms entry, the B2B side works with tiered pricing, bulk orders and quote requests that route to the right rep: that is the system counterpart of thresholds 1 and 2. The C2C side pairs buyer-seller matching with in-platform messaging and ratings; this article does not treat that side as a threshold. The B2C e-commerce stores entry says that variants and stock spread across warehouses break naive inventory models fast, which is why pricing and stock logic live behind a shared data layer: the counterpart of threshold 3. Payment integration also appears as a highlight in the same entry.
What moves when you leave an off-the-shelf platform?
If one of the thresholds is red and you are considering leaving, plan the exit from the start. What you will carry over:
- product and variant data, images and descriptions,
- customer and order history,
- addresses and redirects for old URLs (otherwise search visibility is lost),
- saved payment methods: whether they can be moved is a question for the payment provider, and we do not write an answer,
- app and integration settings.
You do not have to move everything overnight; to slice the move, see our article on software modernization. How code, infrastructure and handover work is covered in the "Source code, infrastructure and handover" section of our custom software development page, and leaving an off-the-shelf product in the exit section.
The threshold worksheet
Copy the table below and fill it in for your own store. In the Result column write "pass," "fail" or "unknown"; in the Evidence column put the screenshot, the documentation page and the date you opened it.
| Threshold | Test (one sentence) | Result | Evidence | Business impact | Decision | Owner |
|---|---|---|---|---|---|---|
| 1. Customer-specific and tiered pricing | Define different tiered prices for two customers; verify on the order | |||||
| 2. Quote and approval flow | Run quote, approval and order end to end | |||||
| 3. Multi-warehouse stock | Order a quantity no single location can fill | |||||
| 4. ERP and stock sync | Send the event twice and out of order; who learned of the failure | |||||
| 5. Payment country and methods | Look up your country; add every payment method | |||||
| 6. Total of transaction fees | Add plan, processing, transaction fee, subscriptions and development | |||||
| 7. API and rate limits | Replay the busiest moment in a test environment | |||||
| Total cost (formula) | Plan + processing + third-party + subscriptions + development |
In the business impact column write low, medium or high; in the decision column write stay, app, hybrid or custom. Fill the cells in the last row with your own numbers; we suggest no values. Have the business owner, the e-commerce manager and the engineer each fill it in separately; the rows that differ are the rows to discuss. If an agency or software firm recommends custom software, see whether it can point to which row of this table turned red.
How we do it
Every project is a paid engagement that starts with a written quote you approve. Scope, timeline and cost are in your hands in writing before anything is billed; nothing is charged until you approve. If an off-the-shelf product already does the job, we will tell you so. Then we write down what will be built, in what order and what it costs; work does not start until you approve. We write down the reasoning behind every technical decision. You talk directly with the engineer writing your code. Ownership of the delivered work transfers on full payment, as set out in our terms. Nothing we run for you is a reason you can't leave. The first step is one real conversation, not a form; we are honest about whether it is the right time and the right fit. The scope is set out in a written quote. We describe the steps on our Process page and the software side on our custom software development page. Tell us about your project.
Frequently asked questions
When should you consider custom software instead of Shopify?
Three of the seven thresholds are decisive: customer-specific and tiered pricing (1), quote and approval flow (2) and payment country and methods (5). If one fails on your own platform and an app, a process change or a hybrid route does not solve it, custom software comes into the picture. Revenue or product count alone is not a threshold; do not decide before running the tests.
How does a move from an off-the-shelf platform to custom software work?
First list what moves (data, history, URL redirects, integrations), then slice the move: you do not have to move everything overnight. For the slicing method, see our article on software modernization. The scope is set out in a written quote.
Can B2B pricing and a quote flow be built on an off-the-shelf platform?
We cannot give an absolute answer; it depends on the platform, the plan and the details of your flow. Shopify's B2B documentation describes structures such as catalogs, quantity tiers, negotiated prices and draft orders for approval, and ties some of them to specific plans. Test thresholds 1 and 2 in your trial store and check your own plan's page.
Can I keep my current store and change only the back end?
That is a hybrid route: the off-the-shelf storefront stays and the critical logic runs in a separate service. The cost is two things to operate; the gain is that you keep your store and fix only the threshold that failed. For how it is built, see an off-the-shelf core with a custom layer.
How do platform commissions and transaction fees affect total cost?
The plan fee, payment processing fee, third-party transaction fee and app subscriptions are the lines of total cost; which of them apply depends on your plan and payment provider. Write the total as a formula (threshold 6) and fill it from your own plan's current pricing page. For the full set of lines, see the total cost of ownership worksheet.
Sources
The pages below were opened and read on November 6, 2026. Pages that carry plan, fee, limit and country information change over time.
- Shopify Help Center: Shopify Payments supported countries · Shopify Payments eligibility · Fees and costs · Shopify B2B · B2B features by plan · Catalogs and pricing in B2B · Catalogs and markets in B2B · Creating catalogs · B2B draft orders · Integrating external systems with B2B · Order fulfillment for locations · Order routing
- Shopify developer docs: API limits · Webhooks
- ikas developer portal: introduction · products · price lists · stock locations · webhooks · v2: price lists · customer groups · rate limits
— Related serviceCustom Software Development