Inventory management

Inventory reconciliation

Compare your Cratebase inventory against what a sales channel actually holds, review every difference, and fix them in bulk. Cratebase reads the channel, works out where the two sides disagree, and shows you a list. Nothing changes until you approve it.

What it does

Inventories drift. Someone edits a listing directly on the marketplace, a sale never makes it back, a sync fails quietly, a record is deleted on one side and not the other. The longer you sell, the more small differences accumulate — and until now the only fixes were blunt: import everything, or push everything.

Reconciliation is the middle path. It fetches the channel’s own record of your inventory, compares it item by item, and lists only the differences. You decide what to do with each one, in bulk if you like, and Cratebase applies your choices through the same paths a manual edit would use. Anything already in agreement is counted and never shown.

Running a reconciliation

  1. Open the reconciliation page. From Inventory, choose Reconciliation.
  2. Pick the channel. If you only have one, it is chosen for you.
  3. Start the reconciliation. Cratebase asks the channel for a full export of your listings. This is generated on the channel’s side and can take up to about fifteen minutes for a large inventory. You can leave the page and come back — the run continues without you.
  4. Review the differences. Results are grouped into tabs by type of difference, with a count on each. Choose an action per row, or select several rows and set them at once. Apply to all matching filter sets every row in the current tab, however many there are.
  5. Review & execute. A summary shows exactly what is about to happen, broken down by action, with anything destructive called out. Confirm, and Cratebase works through the list.

You do not have to decide everything in one sitting. Your choices are saved as you make them, so you can close the page and finish the review later.

What it compares

Every listing on the channel is matched to your Cratebase inventory by its listing ID. Four kinds of difference are reported.

Tab What it means
Missing in Cratebase The channel has a listing you have no record of
Missing on Discogs You hold a listing ID for the channel, but that listing is no longer there
Status mismatch Both sides have the item, but its state differs
Sold on Discogs The channel says it sold; Cratebase still has it on sale

Two things are deliberately not flagged. Price, condition and comments are not compared. Neither is quantity: a channel listing represents one physical copy, so an item with four copies and one live listing is correct, not a mismatch.

Historic sales are also left out. If you sold records on the channel for years before using Cratebase, those old sold listings are not reported as missing — they are not something you need to act on.

Your options, case by case

Every row can always be ignored, which marks it reviewed and changes nothing. The other options depend on the kind of difference.

Missing in Cratebase

The channel is offering a record that Cratebase does not know about. Usually it was listed directly on the marketplace, or created before you started using Cratebase.

  • Create Cratebase item builds a new item from the listing: artist, title, price, conditions, comments and location all come across, and the item is linked to the existing listing so the two stay in step from then on. The item takes the same state the listing has, so a draft listing becomes a draft item. Quantity is always one, because one listing is one copy. Release details and artwork are fetched in the background straight afterwards, so a new item can look sparse for a minute or two before it fills in.

Missing on Discogs

You are holding a listing ID for something the channel no longer has — normally because the listing was deleted there.

  • Clear Discogs listing ID keeps the item and its stock exactly as they are, and simply forgets the dead listing ID. The item is marked out of sync so you can re-list it cleanly whenever you want. Nothing is sent to the channel.
  • Delete Cratebase item removes the item from Cratebase altogether, along with its listings on every channel. Use it when the record is genuinely gone, not merely unlisted.

Only items you would expect to be live are reported here. If an item is inactive, sold out, or has that channel switched off, both sides already agree it should not be listed, so it is not treated as a difference.

Status mismatch

Both sides have the record, but they disagree about its state. Cratebase expects a channel listing to reflect the item like this:

Cratebase item Expected on the channel
Active For sale
Draft Draft
Paused Expired
Inactive, sold out, or channel switched off Not listed at all
  • Adopt Discogs status changes the Cratebase item to match the channel. Worth knowing: an item’s status is global, not per channel, so adopting a status affects the item everywhere and your other channels are updated to match. This option only appears when it would actually change something.
  • Push Cratebase status to Discogs does the opposite and sends your Cratebase state to that channel’s listing, leaving every other channel untouched. When Cratebase’s view is that the item should not be listed at all, this removes the listing from the channel.

Sold on Discogs

The channel reports the record as sold while Cratebase still has it available. This is the most valuable difference to catch, because it usually means a sale that never reached you.

  • Record sale treats it as a genuine sale: one copy comes off stock, it appears in your sold history and sales figures with the price the channel recorded, and your auto-relist setting decides whether the next copy goes back up if you had more than one. No order is created, so check Orders if you think a real order should exist for it.
  • Mark sold out simply takes available stock to zero without recording a sale, so nothing is added to your sold history. Use it when the remaining copies are gone too, or when you do not want the sale in your figures. The item stays active with nothing available, which is how Cratebase represents sold out, and its listings come down accordingly.

Every option at a glance

Case Option What it does
Missing in Cratebase Create Cratebase item Creates a linked item from the listing, quantity one, with the listing’s own state and details. Artwork and release data fill in shortly after
Missing in Cratebase Ignore Nothing changes
Missing on Discogs Clear Discogs listing ID Keeps the item and stock, forgets the dead listing ID, marks the item out of sync for re-listing. Nothing is sent to the channel
Missing on Discogs Delete Cratebase item Deletes the item and its listings on every channel
Missing on Discogs Ignore Nothing changes
Status mismatch Adopt Discogs status Sets the Cratebase item to the channel’s state. Status is global, so other channels follow
Status mismatch Push Cratebase status to Discogs Updates that one channel listing to match Cratebase. Removes the listing if Cratebase says it should not be listed. Other channels are untouched
Status mismatch Ignore Nothing changes
Sold on Discogs Record sale Sells one copy: stock down by one, entry in sold history and sales figures, auto-relist applies. No order is created
Sold on Discogs Mark sold out Available stock to zero with no sales record. Item stays active and sold out, listings come down
Sold on Discogs Ignore Nothing changes
Any row Reset to pending Undoes your choice and leaves the row undecided

Rows you can only ignore

A few rows arrive with a short note instead of a full set of options, and Ignore is all they offer. This happens when the difference cannot be resolved safely without a look from you — two Cratebase listings sharing one channel listing ID, a listing the channel has flagged for a policy problem, or a status the channel reports that Cratebase does not recognise. They are shown rather than hidden so nothing disappears silently.

What happens when you apply

Reviewing can take a while, and inventory keeps moving while you work, so every row is re-checked against live data at the moment it is applied.

If something has changed since the comparison — the record sold, someone edited the item, another import already created it — that row is skipped and marked stale rather than applied to a situation that no longer exists. Start a new reconciliation to pick those up with fresh information.

Rows are applied one at a time and a failure only affects its own row. Work that has to reach the channel is queued at background priority, so a large batch never crowds out everyday listing updates. A big run keeps working through the queue for a while after the page says it is done.

Reading the result

When the run finishes you get a count of everything that happened.

Result Meaning
Applied Done as you asked
Failed Something went wrong on that row. The reason is listed underneath
Stale Skipped because the situation changed during your review
Ignored You chose to leave it alone
Not reviewed You never chose anything for it. Nothing happened, and it will appear again next time

Not reviewed is worth a second look on a large first run. Leaving thousands of rows untouched is a perfectly reasonable way to work — deal with what matters, ignore the rest — but those rows are not resolved, only postponed.

Starting again

One reconciliation runs per channel at a time. You can stop the current one whenever you like:

  • Cancel while the export is being prepared abandons the run and returns you to the start.
  • Cancel & start over during review discards the choices you have made and requests a fresh export.

Once a run has finished, returning to the page starts you at the beginning again, with View last result to look back at what the previous run did.

Good to know

  • Nothing is changed without your approval. Everything up to the confirmation step only reads.
  • Runs are per channel. Reconciling one channel never touches another, though adopting a status changes an item everywhere by nature.
  • Reconciliation does not create listings on the channel. It creates items in Cratebase, updates state in either direction, and removes listings — re-listing is done from your inventory as usual.
  • Very large differences stop the run. Above fifty thousand differences on a single run, Cratebase asks you to get in touch rather than working through a list that size.
  • Your review survives a break. Runs and choices are stored, so closing the tab, losing connection or signing back in all leave your work intact.

Quick reference

If you… Then
Want to know what is out of step without changing anything Run a reconciliation and read the tabs. Reviewing changes nothing
Find listings on the channel you never had in Cratebase Create Cratebase item brings them in, one copy each
Find a listing ID for something the channel deleted Clear Discogs listing ID keeps the record and drops the dead link
See a sale the channel knows about and you do not Record sale to get it into stock and your figures
Want stock to zero without a sales record Mark sold out
Disagree with the channel’s status Push Cratebase status to Discogs
Agree with the channel’s status Adopt Discogs status, remembering it changes the item everywhere
Leave a row for another day Leave it alone. It counts as not reviewed and returns next run
Want to abandon a run Cancel, or Cancel & start over for a fresh export

Old sold listings from before you used Cratebase are never reported, so a first reconciliation on a long-running shop is smaller and quieter than you might expect.

Still stuck? Get in touch — we're happy to help.