1.11.16
⚙️ Patch 1.11.16 — FBM UVP wins over wave; Base Articles FBM display¶
🚀 Summary¶
Setting UVP on FBM no longer gets overwritten by penner/renner wave heal on the next recalc. UVP also creates missing min_bound / max_bound (e.g. DE with null bounds). Base Articles expand now reads FBM as an array and shows DE prices from international_pricing.
✨ Details¶
| Area | Behavior |
|---|---|
| UVP vs wave | FBM/FBA profit-only recalc pins UVP targets and skips wave history heal when min_uvp / max_uvp are set |
| Null bounds | set_uvp and UVP recalc create min_bound / max_bound when they were null (or empty pricing → DE), so UVP can be applied without a prior SP-API run |
| All FBM rows | set_uvp updates every FBM detail for the article (get_multi_fbm_details), not only the first |
| Base Articles UI | Expanded FBM block uses primary FBM from the array and DE min_bound / max_bound target_price (Price / Min / Max / Expected Profit / Status) |
Example that motivated the fix (RitualsYozakuraGeschenkSetL2025, renner, UVP 79.90 / 94.90): after set UVP, background recalc had rewritten DE to wave prices (~65.90 / 74.90). With this patch UVP stays.
📌 Notes¶
- Redeploy service-multi-repricer and frontend.
- Re-run Set UVP (with FBM checked) on affected SKUs so DE bounds are rewritten correctly.
- Multi-component bundles /
(2)variants still do not inherit UVP automatically (1:1 peers only) — set UVP on those SKUs separately if needed.
✅ Verify¶
- On a renner article with FBM + wave history (e.g.
RitualsYozakuraGeschenkSetL2025), set UVP min/max for DE with FBM enabled. - After background recalc, FBM DE
min_bound/max_boundmatch UVP (not wave history). - An FBM row with
min_bound/max_bound=nullgets bounds created and pinned to UVP. - Base Articles → expand article → FBM shows Price / Min / Max / Expected Profit / Status (not dashes) when
fbm[]data is present.
📁 Files¶
backend/service_multi-repricer/app/services/wave_pricing.py—pin_uvp_targets_to_international_pricingbackend/service_multi-repricer/app/api/v1/endpoints/fbm_articles.py— UVP pin + skip wave when UVPbackend/service_multi-repricer/app/api/v1/endpoints/fba_articles.py— same for FBAbackend/service_multi-repricer/app/api/v1/endpoints/repricer_articles.py—set_uvpall FBM rows + create null boundsbackend/service_multi-repricer/app/tests/test_wave_pricing.py,test_uvp.py,test_recalculate_channels.pyfrontend/src/pages/MultiRepricer/Tabs/BaseArticles/BaseArticles.jsx— FBM array + DE bounds displaydocs/docs/patchnotes/1.11/1.11.16.md— this file