Last Week: Source Product Channel Values and Smarter Change Logs (June 17, 2026)

A new page to compare a source product's values across every channel, richer change log entries that show who and what triggered each change, source marketplace names in the marketplace explorer, and a cleaner badge for orders with returns in progress.

New Features

  • Source product channel values page — open any source product or variant and use the new "Channel Values" tab to see how every field value looks across each channel that's listing it. Filter by channel, field, parent vs. variant level, or whether the value is shared, so you can compare and spot inconsistencies in one place.

Improvements

  • Richer change log entries — the change log table now shows who initiated each change (a user, channel, or integration), what triggered it (a sync, import, or a manual edit), and links straight to the related listing, variant, channel, or integration so you can jump to the source of a change in one click.
  • Source marketplace names in the marketplace explorer — category, field, and option pages in the marketplaces section now show each item's original name from the source marketplace alongside Osello's normalized name, making it easier to recognize what reviewers and external systems are referring to.
  • "Return in progress" badge on orders — when a return has been started but not yet closed, the order keeps its delivered/fulfilled status and a separate warning badge surfaces the open return, instead of mislabelling the order as refunding.
  • Stuck order returns recover automatically — a background job now sweeps order returns that get stranded in transitional states and gets them moving again so refunds don't quietly stall.

API Updates

Version: 5.2.0

New endpoints

  • GET /api/stores/:store_id/products/:product_id/listing_field_values — list a source product's field values across every channel that's listing it.
  • GET /api/stores/:store_id/products/:product_id/variants/:variant_id/listing_field_values — same, scoped to a single source variant. Both endpoints accept filters for channel_ids, taxonomy_field_handles, levels (variant / parent), and same_value_as.

Updated/removed endpoints

  • Change log endpoints (.../change_logs) — response shape changed. Removed: initiated_by_event, initiated_by_id, and the top-level user association. Added: nested initiated_by_user, initiated_by_channel, and initiated_by_integration (exactly one is present per row), plus initiated_via_type and the nested initiated_via_sync / initiated_via_import mechanism so consumers can see which sync or import a change came from. (Breaking.)
  • Listing summary variant_product_ids renamed to product_idsGET /api/stores/:store_id/channels/:channel_id/listings now exposes product_ids on each listing variant summary; the old variant_product_ids key is gone. (Breaking.)
  • Taxonomy field, category, and option responses — now include an external_name field showing the original name from the source marketplace.
  • Order responses — now include has_open_return (boolean) and open_returns_count (number), so you can tell at a glance whether an order has a return in flight without fetching its returns collection.

Notes for API consumers

  • This is a major api version bump (4.5.0 → 5.2.0). The change log response shape change and the listing summary's variant_product_idsproduct_ids rename are breaking — update any integration that reads those fields. The new taxonomy external_name, order has_open_return, and order open_returns_count fields are additive.