The wizard's binary image field wasn't being saved to the product.product record, so the public URL returned the default placeholder. Now saves line.image → variant.image_1920 first, then generates the URL with a cache-busting timestamp. Only includes image in WC data if the wizard line has an actual image uploaded. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>