Custom Inventory Management Software | When Off-the-Shelf Fails

10 min read Written by Yitz Lieblich, Founder and CEO, SkuNexus

Most inventory software is configurable. You toggle settings, pick from dropdowns, choose a preset workflow. That is not custom.

Custom means the system does what your operation needs, not what the vendor decided to support.

The phrase custom inventory management software gets attached to almost anything. This page is about the mechanics behind it: which changes an operations manager makes alone, which ones need a script, which ones need the source code, and where the ceiling actually sits. Any page that says everything is possible without saying who does the work is selling you an adjective.

SkuNexus came out of Web Solutions NYC, a Magento agency that kept watching the same failure. The storefront was fine. The inventory, order, and warehouse layer underneath it was not, and no product on the market bent to the way those clients actually shipped. The platform runs on PHP and MySQL, single tenant, with a development environment and a production environment per customer.

What "Custom" Actually Means Here

Customization happens at three separate layers. They have different owners, different tools, and different costs. A vendor who says "fully customizable" is usually describing one layer and letting you assume the other two.

Layer What you change Who does it
Configuration Order routing rules, custom attributes on products and orders, label and packing slip templates, shipping option mappers, per-warehouse pick and pack methods, connector sync direction and conflict strategy Your operations admin, in the app, no code
Scripts Business logic that fires on a system event and reads your own custom fields A tenant admin under Settings > Customizations, with an AI generator that drafts from a plain-language description
Source code Core behavior, new modules, connections to systems nobody has integrated before Your developers on an enterprise license, or ours

Most of what buyers call "custom" turns out to live in layer one and never touches code. That is the part worth checking before you compare anything else, because it is the part that decides whether a change takes an afternoon or a quarter.

What the scripting layer hooks into

The script generator lives under Settings > Customizations. Scripts attach to system events, and the documented extension points include before order creation, after order creation, after fulfillment completes, and on inventory change. The generator has context on your custom fields and extension points, so a description in plain language produces a draft you edit rather than a blank file.

The shape that fits this layer is always the same: on this event, look at these fields, then do this. If your requirement fits that sentence, it is a script. If it does not, it belongs in layer one or layer three, and the useful thing a vendor can do is tell you which before you sign anything.

Where source code access actually sits

This is where our own marketing has historically overstated things, so here is the version we say on live calls. The open source is available at the enterprise level, and we only recommend it if you have your own developers in house. If you do not have developers, you do not need enterprise, because we do that work for you. The common path is to start on cloud, have us do the heavy build, then move to enterprise and take over the smaller changes yourself.

New Look Vision Group's implementation partner described the codebase as "akin to working with legos," which is the practical version of the same point: the value of code access is that the modules come apart. For the longer technical treatment, see source code access in a WMS.

Who Configures What: One Recorded Example

Anthony is director of operations at a model train retailer, roughly 30,000 SKUs, around 200 orders a day, 27 people between office and warehouse. He came in with a specific problem, not a category question.

The requirement

Their storefront already calculates the correct box at checkout across about 26 standard box sizes. That decision never reached the packing bench, so packers picked a box by eye. In his words, they had "been struggling for like over a year to try to figure this out" through their existing shipping tool.

What it took: pull the shipping method value down as a custom attribute, then build shipping option mappers that tie each value to a carrier, a service, and a parcel. The packer is then told which box to use. That is a settings screen, not a code change, and the same mechanism is what runs dry ice calculations for an ice cream shipper on this platform.

Who does it: an operations admin. Not a developer, not a professional services engagement.

The same call covered order decision rules directly: condition groups on order attributes, a choice between single and multiple fulfillment so a partially available order either splits or waits, and a rule reading "if shipping method contains pickup, route it to the pickup workflow." Recorded on that call, Fathom 626193618.

How Integration Actually Works

Integration depth is where "customizable" usually collapses, so here is the actual sync model rather than a logo wall. Each connector has a sync config tab, and every entity type gets its own direction.

Entity Typical default Direction options
OrdersInboundInbound, Outbound, Bidirectional, Disabled
ProductsInboundInbound, Outbound, Bidirectional, Disabled
InventoryOutboundInbound, Outbound, Bidirectional, Disabled
CustomersInboundInbound, Outbound, Bidirectional, Disabled
FulfillmentOutboundInbound, Outbound, Bidirectional, Disabled

Order ingestion is polling-primary. A background worker checks the channel on a configured interval, five minutes by default for Shopify and sixty for other platforms. Webhooks are registered where the platform supports them, but they supplement polling rather than replace it, and their real job is catching changes made directly on the channel between polls. Plan for up to one poll interval of latency between a customer clicking buy and the order appearing.

When the same field changes on both sides before a sync runs, the conflict strategy decides the winner: Source Wins, Newest Wins, or Manual Review, which routes the record to a review queue for a human. Inventory will not push to a channel at all until you map external locations to warehouses, and one external location can sum stock across several warehouses.

Two honest limits. Working connector adapters exist today for Shopify, BigCommerce, Magento 2, WooCommerce, Shopware 6, Walmart, and QuickBooks Online. Amazon and eBay appear in some internal lists but have no active adapter, so selling there is an integration to build, not a switch to flip. That is exactly the kind of thing worth asking every vendor on your list, because the answer is usually buried.

Custom Workflow Logic, Step by Step

"Custom workflow" is the phrase that most often means nothing. Here it means the Decision Engine, and it works in a sequence you can inspect.

  1. An order is created manually or arrives from a sales channel.
  2. The engine evaluates your routing rules in priority order. Lower number wins. Each rule carries condition groups built on order value, SKU, shipping method, customer type, and your own attributes.
  3. The first rule whose conditions match assigns the warehouse, the fulfillment method, and the shipping service. Evaluation stops there.
  4. A Decision Plan is created showing which warehouse or warehouses fulfill the order, which method applies, and which items go where if the order splits.
  5. The plan moves Draft, then Confirmed, then Executed, creating fulfillments. Cancelled is the fourth possible end state.

Two details matter more than the sequence. A rule simulator tests a rule against sample orders before you activate it, and Dry-Run Routing on any order detail page shows which rule would match, what it would assign, and which conditions failed on the rules that did not match. Dry-run never changes the order. If no rule matches at all, the order sits unrouted in the review queue rather than guessing.

That is the difference between a workflow you configured and a workflow you can prove before it touches a customer order. More on the mechanics in how to automate order routing.

When a No-Code App Builder Is the Right Call

Search this topic and you will land on no-code app builders. They rank here honestly enough, and for some readers they are the correct answer, so it is worth drawing the line properly instead of pretending they are competitors.

Buy the app builder if what you need is a shared database with a decent interface. Tracking assets, tools, or supplies. A stock list a small team maintains by hand. A form-driven internal app that replaces a shared spreadsheet. You will have it running this week, your team will maintain it themselves, and nothing on this page is worth reading first.

You need an operations platform when the software has to run the floor rather than record it. Scan-validated picking with short-pick handling, pack verification, carrier rate shopping and label generation, allocation and reservations across warehouses, compliance printed onto the label itself, plus a sync contract with the channels you sell on. Those are not features you add to a database tool. They are a warehouse core, and building one from scratch is a multi-year project you would then own forever.

The test is one sentence. If the requirement is "record this," an app builder is the cheaper right answer. If the requirement is "run this on the warehouse floor and push the result back to the channel," you need the core first, and then the question becomes how far that core bends. Customization is only worth paying for when there is something underneath it worth customizing.

What Buyers Say Before They Go Looking for Custom

We keep recorded demo calls and count what buyers raise in their own words, separately from what we say. Across 78 buyer-eligible calls, buyers themselves described running spreadsheets or a manual process alongside their software in 44 of them, and named at least one bolted-on third-party tool in 35. Both figures are buyer-only counts, not any-speaker. The patterns behind them, and the 78-call denominator, are published in our mid-market WMS buying benchmark.

Neither number describes a software shortage. It describes the gap between what the software does and what the operation does, filled in by a person. Casey, evaluating a replacement for Brightpearl, put the mechanism plainly: the platform had a decent framework but missed on a handful of things, and "we've basically kind of continuously tried to put in numerous feature requests for such simple, simple things, and it basically goes to deaf ears." That is the whole failure mode. Not a missing feature. A closed road to getting one.

The "Customization Costs Extra" Objection

It comes up on most calls, and the honest answer is a question back: which layer is your requirement in?

Layer one is configuration. Routing rules, attributes, templates, mappers, sync settings. Those are not change orders, they are screens, and your team keeps making them after go-live without asking anyone. Layer two is scripts, written by a tenant admin against documented events, with an AI generator doing the first draft. Layer three is source code, which is either your developers' time on an enterprise license or ours.

So the tradeoff is real and it is not a secret: a platform that bends costs more effort to stand up than a platform that does not. What you are buying is that the second, third, and tenth change do not each become a negotiation. Before you sign with anyone, take your three hardest requirements and make the vendor place each one in a layer. A vendor who cannot, or who answers "everything is possible" to all three, has told you something.

Where This Has Limits

A page about customization that lists no limits is not credible, so here are ours, from recorded calls rather than a positioning deck.

Dynamic stock cover and predictive reordering are not built. Asked on a call whether the system could hold a rolling stock-cover target and recalculate optimal levels continuously, the answer was "It's doable. It's a customization. We don't have that built out yet." Industry-specific workflows are frequently the same story: the platform is configured to fit them, it does not ship with them. And as noted above, Amazon and eBay have no working connector today.

None of that is an argument against customization. It is the reason to ask what "custom" costs in your specific case rather than accepting it as a category claim.

Decision Framework: Do You Need This at All?

Before you shortlist any custom inventory software, answer these honestly. Each yes is one point.

  • Have you already hit a wall with an existing system, where workarounds consume real hours every week?
  • Do you run routing logic, fulfillment rules, or a process that is genuinely specific to your operation rather than standard pick, pack, ship?
  • Do your channels have different fulfillment requirements from each other?
  • Will you add channels, locations, or complexity in the next eighteen months?
  • Do you need deep integration with an ERP, a POS, or a system nobody has connected before?
  • Have you ever filed a feature request that went nowhere and mattered?
  • Do you have access to developers, internal or agency, if you want them?

Four or more, a standard platform will frustrate you inside twelve to eighteen months. Two or fewer, buy the simplest thing that works and revisit this when it breaks. If you are somewhere in the middle, the evaluation process itself matters more than the shortlist, and a look at where rigid platforms hit their ceiling or what Brightpearl users run into will tell you more than any feature grid.

Proof: Three Operations That Needed Real Customization

Specifics beat claims. All three of these are published case studies with named companies.

Carewell: zero inventory, dozens of vendors

The operation: a home health retailer that holds no stock at all. Every product ships from the vendor directly to the customer, which makes the vendor data flow the entire business.

Why off-the-shelf failed: vendor data flows were inconsistent, purchase order generation was manual and error-prone, and each new vendor added manual work rather than removing it. What worked for five vendors would not work for fifty.

What was built: an order arrives from BigCommerce through a native integration with no middleware, the system identifies the correct vendor per item and generates the purchase order instantly, the vendor ships direct, and tracking flows back. Every vendor is managed in one place and gets access to manage incoming goods without exposing Carewell's proprietary data.

The part that matters here: onboarding a new dropship partner is a configuration task, not a development project. That is the difference between customization that scales and customization that becomes a maintenance bill.

New Look Vision Group: the ERP integration that was not a nightly dump

The operation: a multi-location optical retailer across 477 locations, with eCommerce growth straining manual pick, pack, and ship.

What was built: the implementation connected the platform to a Magento 2 storefront, their ERP, their POS, their CMS, and Canada Post, with full automation of pick, pack, and ship. Their implementation partner ran workshops to map every integration point and the full product and data flow before writing anything.

The result: nine months from analysis to go-live, five integrated systems, zero days of downtime, and an order management layer they can extend to new carriers, warehouses, or countries. If you are weighing this against an ERP-first approach, how a WMS and an ERP divide the work is the next thing to read.

How Implementation Runs

Custom does not mean slow, because this is a platform being fitted rather than a build starting at zero.

  1. Discovery. We map your current workflows, integrations, and the specific things that broke your last system. If it is not a fit, we say so on that call.
  2. Configuration. Core deployment, then your rules, workflows, and connectors. You are in it throughout, because the person who knows the workflow has to be the person defining it.
  3. Parallel operation. Run alongside your current system against real orders before cutover. No single-day switch.
  4. Go-live, then keep going. Workflows get refined against real usage. Every customer above is still adding to theirs.

We do not publish a typical go-live duration. We have made contradictory implementation-time claims across our own pages before, and none of them were measured. What we can point at is a named project with a date on it: the New Look build ran nine months from analysis to go-live across five integrated systems. Ask for the range that fits your own integration list and we will answer it on the call, not on a page.

For Technical Evaluators

The backend is PHP and MySQL on Laravel, deliberately chosen so that any competent agency developer can read it. Each customer runs a single-tenant installation with its own development and production environments, so a change is testable somewhere that is not production. The API is REST and the platform is usable headless, as the operational layer behind whatever frontend you run. Deployment is cloud or on-premise. Source code access comes with the enterprise tier, and as covered above, it is only worth taking if you have developers who will use it.

The customization surface you will actually work against is the custom attribute engine, which extends products, orders, and other entities with your own typed fields, and those fields are what routing rules, scripts, templates, and mappers all read from. If you are evaluating architecture, that is the thing to probe: not whether an API exists, but whether your own data model reaches the parts of the system that make decisions.

Frequently Asked Questions

Who is source code access actually available to?

It comes with the enterprise tier, and we only recommend it when you have developers in house who will use it. If you do not, you do not need enterprise, because our team does that work. A common path is to start on cloud, have us do the initial build, then move to enterprise and take over smaller changes yourself.

Do I need a developer to change how the system works day to day?

Usually no. Routing rules, custom attributes, label and packing slip templates, shipping option mappers, and connector sync settings are all configuration screens an operations admin uses. A tenant admin can go a layer further with scripts on system events, drafted by an AI generator that already knows your custom fields. Developers matter for core changes and for integrations to systems nobody has connected before.

What can a custom script actually hook into?

Scripts attach to system events. Documented extension points include before order creation, after order creation, after fulfillment completes, and on inventory change. You write them under Settings, then Customizations.

Which platforms have working connectors today?

Shopify, BigCommerce, Magento 2, WooCommerce, Shopware 6, Walmart, and QuickBooks Online for accounting. Amazon and eBay do not have an active adapter, so selling on those marketplaces is an integration to build rather than a connector to enable. Anything with an API can be connected, but that is a project, not a checkbox.

How fast do orders actually arrive from my store?

Order ingestion polls rather than waiting on webhooks. The default interval is five minutes for Shopify and sixty minutes for other platforms, and you can set it lower for near-real-time ingestion or higher to reduce API usage. Expect up to one poll interval of latency.

What if my requirements change after go-live?

That is the design assumption. New rules are configuration, new logic on an existing event is a script, and anything deeper is code you or we can write. Graeter's has been adding to their implementation for eight years, which is a better answer than any promise we could make here.

Bring the workflow that broke your last platform

Not a generic demo. Walk us through the specific process your current system cannot do, and we will place it in a layer on the call: configuration, script, or code. If it is none of those, we will tell you.

Schedule a Technical Walkthrough
About the author. Yitz Lieblich is founder and CEO of SkuNexus. He has worked in eCommerce since 2007, founded Web Solutions NYC that same year and still leads it, and founded SkuNexus in 2018. He has worked with merchants from mom-and-pop startups to Fortune 100 across auto parts, food and beverage, apparel, B2B wholesale, and retail and D2C, on operations shipping 50 to 20,000 orders a day. The demo excerpts on this page are from calls he ran. LinkedIn