Inventory & Order Operations

Manual CSV imports are used to keep channel stock aligned

A daily stock file works until the range grows. Why CSV uploads fall behind, what they cannot tell a channel, and how to replace them with a process that scales.

Mellorca Discovery2026-11-01

A merchant adds forty new products in a week, and by Thursday the stock sheet has three tabs, two of them named "final". Every morning someone exports a file from the warehouse system, opens it in a spreadsheet, trims columns, and uploads it to the online shop, the marketplace listing and the wholesale portal. When the upload is done, the numbers are already a few hours old. This article is about that routine: manual CSV imports used to keep channel stock aligned, and why they stop being adequate when the range grows.

The problem in plain language

A comma-separated file is a sensible way to move a list from one place to another. It becomes a problem when it is the only thing keeping several selling channels honest. Each upload is a snapshot. Between one snapshot and the next, orders arrive, returns are booked, a pallet is counted short, and none of that reaches the channels until somebody repeats the routine. With two hundred products the gap is tolerable. With two thousand, and three channels, the routine takes longer, runs less often, and breaks in more ways.

The symptom is easy to recognise: customers order items that the warehouse cannot ship, a marketplace suspends a listing for cancellations, or the team keeps a standing rule that nobody sells the last five units of anything.

What the buyer is actually trying to solve

An operations manager typing this problem into a search engine does not want a lecture on file formats. They want to stop spending the first two hours of the day on uploads, stop apologising for oversold orders, and be able to add products without the stock routine growing in step. They also want to know whether a connector or an integration is genuinely needed, or whether a tidier version of the current process would do for another year.

Evidence and system mechanism

A CSV file has no memory and no guarantees

The published description of the format, RFC 4180, documents the common conventions for comma-separated values and registers the MIME type, but it states that the format had never had a single formal specification. In practice this means that quoting, line endings, character sets and number formats vary between the tools that create and read files. A product name with a comma, a code with leading zeros that a spreadsheet turns into a number, or a decimal comma instead of a point can change what the receiving system reads without any visible error.

The format also says nothing about when the data was true. A file carries rows, not a timestamp or a sequence number, so a receiving system cannot tell whether it is applying today's counts or last Tuesday's file that someone re-uploaded by mistake.

Modern commerce platforms expect changes, not whole lists

Shopify's developer documentation for the inventory quantities mutation shows how an application is expected to talk to the platform: it names the inventory item, the location and the quantity type, and it records a reason for the change. Quantities belong to specific locations, and changes carry a reason that can be audited later. A spreadsheet upload that overwrites a column with a new number loses all of that context. It tells the channel what the quantity should be, not why it moved.

Channels use stock to decide what customers see

Google's product data specification for availability treats availability as an attribute that must match what the customer finds on the landing page. If your feed says an item is in stock and the page says otherwise, the listing can be disapproved. Stock accuracy is therefore not only an internal matter. It affects whether a product is shown at all.

Why this becomes urgent

The routine fails when the number of products, variants or channels grows faster than the number of people doing uploads. A new marketplace, a bundle range, a second warehouse or a seasonal peak each multiply the number of rows and shorten the time the team has to correct them. Rapid growth in the range is the usual trigger, because it quietly turns a thirty-minute job into a half-day job, with more room for a slip.

Economic consequence

The direct cost is labour: hours of skilled people each week moving numbers between systems. The larger cost is usually lost or damaged sales. An order taken for stock that no longer exists leads to a refund, a delayed apology, a poor review or a marketplace penalty. The opposite error costs as much: stock held back from sale because nobody trusts the count, which ties up working capital in goods the customer could have bought. Both are visible when you compare sales lost to stock-outs with the inventory that was physically available at the time. For a view of how this shows up in an operation, see inventory that does not update across sales channels.

Root cause

  • No single source of truth for available stock. Each channel keeps its own number, and the CSV is the courier between them. This is the same underlying condition described in why inventory numbers disagree across systems.
  • The upload replaces rather than adjusts. Overwriting quantities erases sales that happened after the file was exported.
  • Product identity is held in free text. Codes, variants and units are re-typed or re-formatted at each step, so matching depends on the person doing it.
  • There is no check after the upload. Nobody compares what the channel now shows with what the warehouse holds.

Practical intervention

The right answer depends on volume. A business with one warehouse and a handful of channels often needs scheduled, automatic stock pushes from the system that holds the truth, rather than a custom platform. A larger operation may need a central inventory service that channels read from. The common steps are the same.

  1. Name the system of record for available stock. Typically it is the warehouse or inventory system, not the shop or the marketplace.
  2. Replace overwrites with adjustments where the channel allows it. Send changes with a reason and a location, in the way the platform interfaces expect.
  3. Fix product identity first. One code per variant, held in one place, and used by every channel. Without this, automation just moves errors faster.
  4. Add a buffer rule per channel. A small, deliberate reserve on the fastest-moving lines is better than an informal rule held in someone's head.
  5. Monitor the difference. A daily report of products where the channel quantity differs from the system of record shows whether the new process works.

Trade-offs

Automatic synchronisation moves faster than people can check, so a bad count in the source now reaches every channel within minutes. That is why the data clean-up and the post-update check matter more, not less, once the manual step is removed.

Diagnostic questions

  • How many hours a week does the team spend preparing and uploading stock files?
  • What is the longest time between a warehouse change and the matching channel update?
  • Do all channels use the same product code for the same item?
  • Who would run the upload if your regular person were away for a week?
  • When did you last compare channel quantities with physical counts?

What good looks like

Stock changes reach every channel in minutes, without a person in the middle. New products are added once and appear everywhere with the same code. The team looks at a short exception report instead of a spreadsheet, and the rule about not selling the last few units is gone because the numbers can be trusted. When the range doubles, the process does not.

Practical next actions

  1. Time the current stock routine for one week, including clean-up and corrections, and record how often a channel showed a wrong quantity.
  2. Decide which system holds the truth about available stock, and write that down in one sentence.
  3. Audit product codes across the warehouse system and each channel for a sample of one hundred items, and list every mismatch.
  4. Check what each channel accepts: scheduled feeds, an application interface, or file upload only, and how frequently it accepts changes.
  5. Set up a daily comparison of channel quantity against the system of record, and review the differences for two weeks before changing anything else.

Related reading on the same family of problems: online channels selling stock the warehouse no longer has, and why warehouse corrections take hours to reach the online shop.

Where Mellorca fits

Mellorca helps operations teams map how stock actually moves between warehouse, shop and marketplaces, identify the point where the manual file enters, and design a replacement that fits the volumes involved. That includes product-code clean-up, update rules and the exception report that keeps the new process honest.

Method note

The sources describe the CSV format, how one commerce platform records inventory changes and how product feeds treat availability. They do not measure how common manual stock files are.

Sources and further reading

Related Mellorca reading

Article summaryA daily stock file works until the range grows. Why CSV uploads fall behind, what they cannot tell a channel, and how to replace them with a process that scales.