Skip to content
Custom software

From online order to accounts: How to stop retyping the same data

An order arrives in your online store. Someone retypes it into the accounting package, while the warehouse checks availability in another spreadsheet. A customer changes one item and the same work starts again. An integration can take over these steps, provided it also handles outages, part payments and cancellations. Here is how to define the job before commissioning it.

Orders without retyping. Key points from the practical guide.

01Follow one order all the way through

Start with a real, completed order. Record who picked it up, when stock was allocated, where the invoice was created and who matched the payment. Then add an order that was changed or cancelled. This second example often exposes work that a proposal for “automatic order transfer” does not cover.

For each step, identify the input, the expected result and the person responsible for exceptions. “Connect our accounting software” is not a complete brief. You need to decide, for instance, whether an invoice is prepared when the order is received, after payment or at another agreed point. Confirm the applicable accounting and tax configuration with your accountant.

02Decide which system owns each piece of information

We recommend choosing one authoritative source for each group of data. It need not be the same application for everything. The store can receive orders, the warehouse system can control availability and the accounting package can assign invoice numbers. Other systems receive the copies they need.

InformationDecision to include in the briefException owner
Order and line itemsRetain the identifier and terms confirmed when orderedSales or customer service
Availability and allocationChoose the system authorised to allocate stockWarehouse manager
Invoice and its numberDefine where it is issued and how corrections workAccountant
Payment and refundMatch confirmed bank or payment-provider recordsFinance
Failed transferShow the last successful step and the next actionNamed integration owner

Agree how product codes, currencies, units and delivery charges map between systems. A pack of ten must not become a single item at the destination. A later catalogue price change should not overwrite the price of a confirmed order without an explicit rule. These details belong in the brief alongside the technical connection method.

03Keep order, stock, invoice and payment states separate

A single “completed” status tells you too little. Track the commercial order status separately from stock allocation, dispatch, invoicing and payment. An order can be fully paid while one item is still awaiting supply.

Physical stock is not necessarily available stock, either. For example, Shopify distinguishes inventory states, including units committed to unfulfilled orders. An integration needs more than an unexplained number labelled “stock”.

Define the condition for each transition: who can allocate stock, when it is released and what happens if there is not enough. If several channels sell the same inventory, test simultaneous orders for the last item. The implementation must respect which system has final authority to allocate it.

Five separate states. Track order, stock, invoice, payment and cancellation separately. Your rules determine their sequence.
Track order, stock, invoice, payment and cancellation separately. Your rules determine their sequence.

04A retry must not create a second invoice

Consider this illustrative scenario. The accounting package creates an invoice, but an outage prevents its confirmation reaching the integration. The integration sees a failure and tries again. Unless it recognises the original operation, it could create another invoice.

Ask for idempotency: repeating the same operation should have the same business effect as performing it once. Stripe uses idempotency keys for this purpose. The capabilities and limits of each connected application's interface still need checking.

Your brief should require a stable operation identifier, a recorded link between order and invoice, and a procedure for uncertain outcomes. When an accounting response is late, the integration should first check whether the invoice already exists. A retry is also different from a subsequent amendment to the order, which represents a new operation.

Notifications may arrive more than once or out of sequence. Stripe's webhook documentation, covering automated notifications between systems, explicitly describes both duplicate delivery and the absence of guaranteed delivery order. Ask the supplier how a late message is prevented from moving a record back to an obsolete state.

When a transfer goes wrong. Three situations an integration needs to handle without duplicate invoices or outdated records.
Three situations an integration needs to handle without duplicate invoices or outdated records.

05Break cancellation into explicit actions

Cancelling an order, releasing stock, correcting an invoice and refunding payment are separate actions. Record the outcome of each. Stripe documents pending and failed refunds, for example; submitting a request does not by itself prove that the refund has completed.

Define partial cancellation as well. Staff should be able to see which items are cancelled, how much is being refunded and what still needs attention. The integration should not quietly close the entire order while one of its follow-up steps remains unsuccessful.

06Launch a smaller scope and reconcile the results

Limit the first release to a clearly defined order type. Before launch, ask the supplier to demonstrate:

  • a normal order with confirmed payment;
  • duplicate message delivery and an outage after invoice creation;
  • an unavailable item and simultaneous orders for the last unit;
  • a part payment, an order amendment and a partial cancellation;
  • an invalid product code or unsupported currency;
  • recovery after an outage and processing of waiting transfers.

During the initial rollout, we recommend a daily discrepancy report covering missing invoices, unmatched payments, stuck stock allocations and unfinished refunds. Assign every exception to a person. Measure time spent fixing problems and supervising the connection, as well as the number of orders processed automatically.

07Questions to settle before commissioning the work

Will an existing connector be enough?

Often, yes, if it supports your statuses, corrections and failure scenarios. Compare licensing, implementation, supervision and manual exception handling. A custom integration becomes relevant when a standard connector cannot support an important operating rule.

Do we need a new online store?

Not automatically. Check the current platform's interfaces and available extensions first. If its limitations also affect purchasing, include them in the brief for your online store. Assess the complete workflow instead of deciding on the basis of one missing field.

Send us a list of your systems and anonymised examples of one routine order and one problematic order. We can discuss which transfer to address first and what it needs to handle before going live.

LISTIFY teamWebsites, apps and marketing from Prague since 2008

More articles

All articles →
Custom softwareOctober 11, 2026 · 7 min read

Facebook and Instagram APIs: Connect your own CRM

Custom softwareOctober 11, 2026 · 5 min read

The enquiry came in. Who owns the reply?

Custom softwareOctober 7, 2026 · 20 min read

Custom construction management software: 30 reasons (and when it isn’t worth it)

Share this page

By email

Got an idea?

On a short call, we'll find out what you need and suggest the next step. Then you'll get a proposal with a fixed price and a timeline.

+420 771 166 199Mon to Fri, 8:30 a.m. to 4:00 p.m. (Prague time) · info@listify.cool

When should we call you?

Pick a day and a time window. We'll call you, and it takes about 15 minutes.

Day