Skip to content

3.17.0 - The Listings screen works, and you can link to a listing eBay already has

Choose a tag to compare

@SurefireStudios SurefireStudios released this 09 Sep 15:21
· 22 commits to main since this release

The Listings screen works

TCGiant Sync → Listings has been empty on every site since the screen was added. It reads a database table that was never created: the plugin asked WordPress to create it at a moment WordPress had already gone past, so the request was dropped and nothing said so. Every symptom of it looked like "you have not imported yet".

The table is created when you update, and the products already linked to eBay are filled in behind you. On a large catalogue that happens a few hundred at a time across several admin page loads rather than all at once, so nothing stalls waiting for it.

Pushing a product now puts it on that screen. Only importing ever did, so a shop that lists by pushing from WooCommerce saw nothing there however much it had listed — and End Listing, Relist and bulk Push all live on that screen, which put them out of reach for exactly the products the plugin had created.

Ending a listing now shows there too, whichever way you end it: the button, the bulk action, the hourly check, or a sale that empties the stock. The row used to go on saying Active.

The message on the empty screen told you to run a "Full Sync from the Import page". There is no button by that name. It names Fetch Inventory now, which is the one that exists.

Listing something eBay already has

A product can now be linked to a listing that already exists on eBay. Open the product → eBay Listing tab → Push to eBay. If the product has never been listed, there is a box for the eBay item number. Give it the number, and pushing updates that listing from then on instead of creating a second one.

This answers a question we had no good reply to: "I pushed an item that was already in eBay and it created a duplicate. What is being compared?" One thing was, and still is — the eBay item number stored on the product. Nothing about the product is compared with anything on eBay, not the title and not the SKU, so a product built in WooCommerce for something you had already listed by hand had no way of knowing. Now you can tell it.

We check with eBay that the number is a real listing on your account before linking, so a mistyped number is refused rather than quietly attached to a stranger's item. Unlink now sits in the same place, so a link made in error can be undone. Unlinking only forgets the connection here; your eBay listing is not touched.

Two things that would have gone wrong once the table existed

  • Automatic relisting would have relisted trashed and draft products — live, on eBay, where their owner cannot see them in WooCommerce. That path reads the new table and never checked whether the product was still published, which did not matter while the table was never there.
  • Relisting an auction recorded it as Fixed Price, which then blocked the next push with an instruction to end and re-create an auction that already was one. Any update naming one field was writing every other column too, including a listing format nobody had asked for. An update now writes only the fields it was actually given.

Upgrade notes: nothing to do. Open your WordPress admin after updating and the Listings screen fills itself in. No setting, no live listing and no stored data is changed.

Covered by tests/test-listings-table.php, including assertions against the plugin's own source — a table that is never created is silent, and nothing else would notice it going missing again. Four of the fixes in this release came out of an adversarial review of the first two rather than from testing by hand, among them a first version of the backfill that would have run roughly 80,000 queries inside a single admin request on a large catalogue.