1.11.19
βοΈ Patch 1.11.19 β FBA/FBM export OOS & zero-bound guards; full FBA stock sync¶
π Summary¶
Nightly base-repricer export could push min=0 max=0 to Sellerlogic for articles already marked OOS (or with stale Plenty stock=0). Full FBA sync only fetched Sellerlogic stock for the first seller SKU, so other ASINs kept wrong stock until a manual single-SKU sync. Export now skips OOS / stockβ€0 and min=max=0; full sync paginates all Sellerlogic stock/dims.
β¨ Details¶
| Area | Behavior |
|---|---|
| FBA export | Skip article when detail status is OOS or base stock <= 0 |
| FBA export | Skip region when both bounds are 0 (not counted as export failure) |
| FBM export | Same OOS / stockβ€0 / min=max=0 skips before Sellerlogic/Plenty push |
| FBA sync (full) | Stock + package-dims lookup uses sku=None (all pages), not the first product SKU only |
| FBA sync (single) | Unchanged: still looks up that articleβs live seller SKU |
| Logging | Merge count for Sellerlogic stock; skip reasons for OOS / zero bounds |
π Notes¶
- Redeploy service-multi-repricer.
- Incident pattern: recalc correctly skipped OOS, but export still queued zeros β Sellerlogic βForced fixed UVP price: 0β (any
min==max, including 0). - After deploy, a full FBA sync (or next base cron) should refresh stock from Sellerlogic for all FBA SKUs; re-export will no longer push OOS / zero bounds.
β Verify¶
- Article with FBA status
OOSorstock=0β export logs skip, no Sellerlogic batch update. - Bounds
min=0 max=0on all regions β skip, not infailed. - Mix of zero + real bounds β only non-zero regions export.
- Full FBA sync (
skuunset) β log shows stock merge for many product rows (lookup_sku=ALL), not one SKU. - Manual single-SKU sync still updates that SKUβs stock correctly.
pytest app/tests/test_exports.pyβ OOS / zero-bound cases green.
π Files¶
backend/service_multi-repricer/app/api/v1/endpoints/fba_articles.pyβ export skips; full sync stock/dims lookupbackend/service_multi-repricer/app/api/v1/endpoints/fbm_articles.pyβ export skipsbackend/service_multi-repricer/app/tests/test_exports.pyβ OOS / stock0 / min=max=0 coveragedocs/docs/patchnotes/1.11/1.11.19.mdβ this file