Skip to content

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

  1. Article with FBA status OOS or stock=0 β†’ export logs skip, no Sellerlogic batch update.
  2. Bounds min=0 max=0 on all regions β†’ skip, not in failed.
  3. Mix of zero + real bounds β†’ only non-zero regions export.
  4. Full FBA sync (sku unset) β†’ log shows stock merge for many product rows (lookup_sku=ALL), not one SKU.
  5. Manual single-SKU sync still updates that SKU’s stock correctly.
  6. 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 lookup
  • backend/service_multi-repricer/app/api/v1/endpoints/fbm_articles.py β€” export skips
  • backend/service_multi-repricer/app/tests/test_exports.py β€” OOS / stock0 / min=max=0 coverage
  • docs/docs/patchnotes/1.11/1.11.19.md β€” this file