DEV Community

王磊
王磊

Posted on

A CSV Cross-Check Before Receiving Shopify Purchase Orders

When Shopify purchase orders rely on linked transfers, the records can drift even when each screen looks reasonable on its own. A quantity changed on the PO may not match the transfer, and incoming stock may stay invisible until the transfer reaches the right status.

That creates a practical risk: a buyer sees no incoming quantity, assumes the order is missing, and places another order.

Here is a lightweight CSV cross-check I would run before receiving stock or making another purchasing decision.

1. Keep the source files separate

Do not overwrite the supplier sheet or the transfer import worksheet. Save an immutable copy of each, then create a review file.

At minimum, keep these fields:

  • PO number
  • supplier SKU
  • Shopify SKU or variant ID
  • destination location
  • ordered quantity
  • transferred quantity
  • received quantity
  • unit cost
  • PO status
  • transfer status

2. Build a stable row key

A product title is not a reliable identifier. Use a composite key such as:

PO number + Shopify SKU + destination location

If SKU is missing, stop and review the row manually. Matching by title alone can merge different variants.

3. Compare quantities, not just totals

Calculate three differences for every row:

ordered - transferred
transferred - received
ordered - received

Then flag rows where:

  • ordered quantity is positive but no transfer row exists
  • transfer quantity differs from the current PO quantity
  • received quantity is greater than ordered quantity
  • the PO and transfer point to different locations
  • the same SKU appears twice for the same PO and location

A grand total can balance while individual variants are still wrong.

4. Treat status as data

Status is part of the reconciliation, not decoration. Keep PO status and transfer status in separate columns.

For example, an ordered PO paired with a draft transfer should not be interpreted the same way as an in-transit transfer. If your replenishment process uses incoming inventory, document exactly which transfer status makes a quantity count as incoming.

5. Re-run the diff after every PO edit

If someone changes quantity, cost, destination, or SKU mapping after the transfer is created, regenerate the comparison. Do not assume the linked transfer inherited the edit.

The review should end with a short exception table, not another giant spreadsheet. Each exception needs an owner and one next action: correct the PO source, rebuild the transfer row, verify the location, or confirm the receipt.

6. Test with a small receiving batch

Resolve the exceptions, then receive a small set of SKUs first. Confirm that the expected incoming and on-hand quantities appear before processing the whole delivery.

If you want a browser-side schema and row check before import, the Shopify purchase order and transfer CSV preflight can help normalize a worksheet and surface missing SKU, quantity, supplier, tax, and location fields. It does not change Shopify or repair the native PO/transfer workflow; it is simply a safer checkpoint.

Top comments (0)