You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
sales-documents: POST /fiscal-registrations now answers 202 Accepted with AcceptedFiscalRegistrationResponseDto instead of 200 with FiscalRegistrationResponseDto. Callers must poll the registration-status read to learn the outcome.
oms: the locationId propagation skip is retired (#2324). An inventory write naming a locationId now propagates to marketplaces; previously it logged inventory_write_propagation_skipped_non_default_location and enqueued nothing, so the channel kept whatever a pooled write last sent. No adapter in this repository is affected — WooCommerce and PrestaShop both emit locationId: undefined. Only an in-house or out-of-tree InventoryMaster adapter returning a real locationId changes behaviour; such connections have had their channel stock silently frozen, and their next write publishes the true aggregate, possibly as a large single-step correction in either direction. Opt out per adapter by returning locationId: undefined. Full procedure and the detection query: docs/operations/inventory-location-propagation.md.
web: POST /fiscal-registrations now answers 202 Accepted with AcceptedFiscalRegistrationResponseDto instead of 200 with FiscalRegistrationResponseDto. The endpoint's own Swagger description previously told callers to read status/failureMode from the response body to learn the registration outcome - those fields no longer exist on the response. Callers must instead poll the registration-status read (GET .../registration-status) to learn the outcome.
Features
analytics: the analytics page now shows shipping-excluded GMV, a full order cohort for Units Sold/AOV/Median, a shipping-excluded net-of-VAT Cancelled Value, a trend chart that follows the selected date range, and a page-level Net/Gross VAT-basis toggle wired end to end (including the headline Revenue card and channel table units), plus a display-currency picker, a Data Coverage panel with real remediation actions, and exclusion annotations across the KPI strip and channel/product tables — verified live against real order data via two independent full accuracy re-reviews, with sections reordered to sync -> needs attention -> data coverage and the metrics spec updated to document the toggle (#2452, #2457, #2463, #2467, #2479, #2892, #2893, #2894, #2895, #2899, #2903, #2906, #2907, #2908, #2909, #2910) (#2668) (a707e16)
fulfillment: enqueue fulfillment.work.dispatch for routed work (#2955) (#2974) (0906ceb)
fulfillment: wire the fulfilment router through one resolver port (#2958) (ad6c2d1), closes #2942#2869
oms: sourcing-rules admin API for the router's ordered ruleset (#2953) (#2973) (2048c2a)
perf: stand bootstrap for the measurement programme (#2872) (608813d)
returns: order-detail returns panel and the return activity timeline (#2960) (d5fbd36)
sales-documents: routing-first market table, rebuilt order-detail panel, and e2e coverage for all three surfaces (#2809) (f85e177), closes #2563#2806#2807
shipping:shipment_lines — line-grain shipment records (#2727) (#2959) (e3d9604)
web: make Analytics the landing page, rename Dashboard to Insights (#2742) (5ab31e4)
web: order detail shows invoice and fiscal-receipt lifecycle, not just a badge (#2763) (df46c64)