The Webgility Blog | Ecommerce Content To Help Grow Your Business

How to Stop Backorders from Posting as Completed Sales in QuickBooks

Written by Nikita Sikri | Apr 6, 2026 6:28:45 AM

Key Takeaways:

  • A backorder is not a completed sale, payment received ≠ revenue earned
  • Most sync tools post on "order created," not "order shipped," that's where the problem starts
  • Partial shipments need partial revenue recognition, not a full-order posting
  • Fixing this is a configuration decision, not a month-end cleanup job
  • The only sale worth recording is one where the goods have actually left your warehouse

A customer orders three items. Two ship today. One is backordered for next week. Your sync tool doesn't wait, it posts the full order to QuickBooks as a completed sale. Right now.

Revenue is overstated. Inventory is off. And your books show a transaction that operationally isn't done yet.

This is a data timing problem, and it's one of the most common ways to prevent incomplete orders from being recorded as sales correctly.

In this blog, we cover why it happens, what it costs your books, and a step-by-step fix, including how to make it automatic so it never hits your close again.

 

What is a backorder, really?

A backorder is an order placed by a customer for an item that isn't currently in stock, or that can't be fully fulfilled right away. The customer has paid. The order exists. But the product hasn't shipped.

This creates a critical accounting distinction that most ecommerce systems ignore:

Order placed ≠ Order fulfilled ≠ Revenue earned.

For example, if a customer pays $300 for a three-item order and only $200 worth of product ships this week, posting the full $300 as completed revenue today can misstate your books.

Revenue should be recorded when goods are delivered, not when the order is created or payment is received.

This breaks most commonly on Shopify, Amazon FBA, WooCommerce, and BigCommerce, platforms where payment and order creation happen in the same instant, making it easy for sync tools to treat every new order as a completed transaction.

Suggested Read: Gross vs. Net Revenue: Why Your $100K/Month Might Actually Be a Loss

 

Why backorders get recorded as completed sales (Root causes)

There isn't one cause, there are five, and they stack.

1. The wrong trigger starts the sync

Most ecommerce platforms emit an "order created" or "payment received" event to connected tools. They don't wait for a "shipped" confirmation. So your sync tool receives a signal that says "order exists + payment collected" and posts it to QuickBooks as a sale.

2. Generic connector behavior

Basic sync tools are built for the clean case: order comes in, post it. They don't have logic to hold an order in a pending state because one SKU is on backorder. Every order looks the same to them.

3. Manual entry creates status mistakes

Teams entering orders by hand under time pressure will mark statuses incorrectly. A "processing" order becomes a "completed" sale in QuickBooks because someone was moving fast.

4. Partial shipments confuse the workflow

When an order ships in two parts, most connectors can't split the recognition. They either post the full value on the first shipment or wait for the second, and whichever choice they make, it's usually wrong for at least one scenario.

5. The accounting entry never updates later

A common edge case is when the item is eventually restocked and fulfilled automatically, but the original accounting entry stays untouched. That leaves a “ghost sale” in the books that was posted at the wrong time.

 

The real-world impact on your books

 When incomplete orders are recorded as completed sales, the problems ripple across your financials:

  • Overstated revenue. You're recognizing income before delivery. If you're running month-end reports, your revenue figures are higher than they should be, which affects every decision downstream
  • Tax exposure. If sales tax or income tax is calculated against those premature entries, you're paying tax on money you may not have fully earned yet. That's a real cash leak
  • Inventory discrepancy. COGS gets recorded against units that haven't shipped. Margins look wrong. Reorder decisions get made on bad data
  • Cash flow confusion. Your payout from Shopify or Amazon reflects real fulfilled orders. Your QuickBooks balance reflects total orders including backorders. They don't match , and reconciliation becomes a guessing game
  • Month-end firefighting. Instead of a clean close, your finance team spends hours tracking down which orders actually shipped, reversing premature entries, and correcting inventory counts. That's not accounting, that's damage control

Suggested Read: How to Prevent QuickBooks Reconciliation Discrepancies: A 2026 Guide

 

Manual triage: How to stop the damage now

If you want to prevent incomplete orders from being recorded as sales, start with the workflow that sends ecommerce data into QuickBooks

Step 1: Audit your current order sync settings

Open your sync tool settings and find what event causes an order to post to QuickBooks. Is it "order created"? "Payment received"? Or "order fulfilled/shipped"? If it's anything other than fulfillment, you have a timing problem.

For example, if your Shopify order is paid on Monday but ships on Thursday, posting on Monday creates a timing mismatch.

Step 2: Set posting rules based on fulfillment status

Configure your sync to only post orders to QuickBooks when the status is Fulfilled or Shipped. For backorders, the order should sit in a pending/clearing state until fulfillment is confirmed. Map your statuses explicitly: Pending → Unfulfilled → Partially Fulfilled → Fulfilled.

Step 3: Handle partial shipments correctly

If two of three items ship today, only two-thirds of the order value should be recognized today. Don't let a partial shipment trigger a full-order posting. Split shipment = split recognition.

For example: a $300 order with items at $100, $80, and $120. Item 3 ($120) is backordered. Only $180 should be posted today. The remaining $120 posts when it ships.

Step 4: Reconcile backorders separately during month-end

Before closing the books, pull a list of all open backorders.

Review:

This gives you a simple backorder clearing process and helps confirm that deferred or pending amounts are not leaking into completed sales.

Step 5: Set up alerts for status mismatches

Create exception rules for situations like:

  • Payment received, but not fulfilled after 7 days
  • Partially fulfilled orders posted as complete
  • Backordered orders pushed to QuickBooks without a shipment update

These alerts help catch problems early, before they create month-end cleanup work.

 

How Webgility handles this automatically

Manual triage may work for a while. But once you're handling hundreds of orders across Shopify, Amazon, or WooCommerce, you need a system that fixes the issue at the source. Webgility syncs based on fulfillment, not just order creation, so shipments, backorders, and partial orders flow into QuickBooks accurately.

What that looks like in practice:

  • A 3-item order with one backordered SKU posts $X to QuickBooks when items 1 and 2 ship, and the remaining amount when item 3 ships, automatically, with no manual intervention
  • Open backorders are visible in real time, so nothing falls through the cracks at month-end
  • Exception workflows surface status mismatches before they become accounting errors, not after
  • Your books reflect only what has actually shipped, which means your close is clean, your revenue is accurate, and your tax exposure is real

Suggested Read: How to Configure Default Shipping Settings

 

Real customer story: The Wine Cellarage

The Wine Cellarage, a New York wine retailer with 15,000+ cases in warehouse, was manually tracking inventory between their online store and QuickBooks Enterprise, creating persistent mismatches between what had shipped and what was recorded.

After switching to Webgility, orders are tracked from purchase through fulfillment before posting to QuickBooks, with real-time inventory sync and automatic mismatch alerts.

The result: 10+ hours saved per week, $400+ saved monthly, and full ROI within a few months.

 

Conclusion

Backorders are real orders, but not always real sales. When orders post before items ship, revenue, inventory, and tax reporting can all go off track.

The issue isn’t QuickBooks, it’s when the data gets posted. Aligning posting with fulfillment fixes this at the source.

With Webgility, you go beyond sync, so your team can stop guessing and close with confidence.

Book a demo today!

 

FAQs

 

Why do backorders create revenue problems?

Because the order may be accepted and paid before the product is actually shipped. If the sale is posted too early, revenue can be overstated.

What is the best way to prevent incomplete orders from being recorded as sales?

Use posting rules tied to fulfillment status, not just order creation or payment received.

Can QuickBooks manage backorders correctly on its own?

QuickBooks can record the transactions it receives, but the bigger issue is when and how those transactions are sent from your ecommerce platform or connector.