Repository navigation
3.15.0 - A listing can be moved between Auction and Fixed Price
Changing a listing between Auction and Fixed Price
A listing could not be moved from Fixed Price to Auction, or back, by any route. Pushing the change failed. Ending the listing first and pushing again failed. Setting the format with the bulk action and then pushing failed. The only way out was to republish it in the format it already had.
When a push found the old listing gone and went on to create a new one, it still used the eBay calls belonging to the format that had just ended. A replacement for a fixed-price listing was sent as fixed price no matter what had been asked for, and eBay refused it. Ending the listing by hand made no difference: the product keeps its Item ID until a new listing replaces it, and the Item ID is where the format was being read from.
The replacement is now created in the format you chose — the one set on the product, if you have set one there or through the bulk action, and otherwise the shop-wide default in Settings.
Automatic relisting is not affected. It goes through eBay's own relist call, which keeps the format by definition.
A clearer answer when the listing is still live
eBay does not allow a live listing's format to be changed, and its refusal says nothing about what to do instead. Where the format set on a product disagrees with the live listing, the push now stops before eBay is contacted and names the listing to end and where to end it.
Only an explicit choice on the product counts, so a shop whose default is Fixed Price can go on pushing price changes to auctions imported from eBay, exactly as before.
The notice after the bulk format action used to say each listing would be replaced. It now says what actually has to happen: end the live ones first, then push.
And what the product remembers
After a listing was replaced, the product still recorded the format of the listing it replaced until an import sync corrected it, so the next update was sent through the wrong eBay call. The format created is now recorded at the time it is created.
Upgrade notes: nothing to change. No setting, no live listing and no stored data is touched by updating.
tests/test-listing-format.php runs the old logic alongside the new one and requires it to get both directions wrong, so the fix is measured against the fault rather than assumed.