1.5.7
⚙️ Patch 1.5.7 — Base Repricer: Cron webhook wiring, FBA/FBM sync, backend fixes & WS visibility¶
🚀 Summary¶
- Frontend: Cron dialog now forwards an optional Discord webhook URL to the backend when scheduling the base repricer cron.
- Backend: several fixes to FBA handling and recalc flow (persisting explicit
ignoreflags, safe JSON updates, and re-enabled recalc on FBA updates). - Operational: base repricer cron now syncs FBM details in addition to FBA, and FBA sync/export flows are more resilient when the base product pull is skipped.
✨ New Features¶
- UI: Cron dialog captures and forwards an optional Discord webhook URL when creating/updating the
base_repricer_cronjob. This allows the background sync to publish an evaluation summary to Discord when provided. - Backend: Base repricer cron now also syncs FBM details (stock, package dimensions and related metadata) alongside FBA, making the cron a single-source sync for both fulfillment types.
🔧 Improvements¶
- Observability: Confirmed how
notifications.notify_clients()maintains an in-memoryrunning_mapsnapshot so new WS clients can see active tasks; documented why very short or very long running tasks can be invisible in the widget. - FBA sync fallback: implemented a DB-backed fallback in
process_sync_fba_skusso when the base product pull is skipped (sync_base_articles=False) we iterateFBADetailsand applystock_mapanddim_mapdirectly — creating base articles by ASIN when needed. This ensures stock and dimension updates are applied reliably. -
backend ratelimiter increased to 1000 request per minute
-
UVP propagation: Manual UVP edits made via the base repricer UI now recursively apply to all related SKUs (bundle components, explicit child SKUs, and variant postfix matches). The backend discovers child SKUs via a breadth-first traversal and persists UVP changes to each affected SKU.
- Immediate export: After a manual UVP change, the background task now recalculates and immediately exports the base SKU and all affected child SKUs to enabled platforms (Shopify, Kaufland, Otto and FBM). Each SKU is processed individually so websocket task notifications, per-SKU error handling, and export status updates are accurate.
🐛 Bug Fixes¶
- Frontend: The
CronDialoginBaseArticles.jsxnow receives and forwardsdiscordWebhook/onDiscordWebhookChange, ensuring optional webhooks are persisted and sent to scheduled jobs. - Backend:
PUT /articles/{sku}/fbanow triggers a recalculation after persisting changes so updates tointernational_pricing(includingignoretoggles) are reflected immediately in the UI and export phase. - Backend: Hardened
crud.repricer_article.update_fba_detailsto preserve arbitrary region-level keys (e.g.,hazmat,order_fee), coerce and persist explicitignoreboolean values reliably, and replace the fragile raw SQL fallback with a safe ORM-level update to avoid psycopg2 binding/syntax errors. - Recalculation: when
use_min_max_rulesis enabled we now compute profit/margin fields from the existingtarget_price(min/max/manual overrides) without making unnecessary SP-API calls to derive a new target price. - Export:
international_pricing.ignoreis now respected consistently during export; regions markedignore: trueare skipped. - Recalculation/Export: Preserved pending export status (
UPDATE_NEEDED) across recalculations for FBM, Shopify and Kaufland so that pending updates are not unintentionally downgraded toACTIVE. This prevents concurrent or subsequent recalculation runs from clearing export flags and ensures exports remain queued until an explicit successful export occurs. - UVP export fix: Fixed an issue where manual UVP updates on base SKUs were not exported to variants and bundle children. The UVP workflow now includes recursive DB propagation and per-SKU exports so platform syncs happen immediately for all affected SKUs.
📁 Files changed¶
- frontend/src/pages/MultiRepricer/Tabs/BaseArticles/BaseArticles.jsx — Pass
discordWebhookandonDiscordWebhookChangeprops intoCronDialogso webhook URLs are saved and forwarded. - backend/service_multi-repricer/app/api/v1/endpoints/repricer_articles.py — Re-enabled FBA recalculation after
PUT /{sku}/fbaand ensured cron args forward webhook values. - backend/service_multi-repricer/app/crud/repricer_article.py — Hardened
update_fba_detailsmerge logic and safe JSON persistence ofinternational_pricing. - backend/service_multi-repricer/app/api/v1/endpoints/fba_articles.py — Implemented DB fallback for
process_sync_fba_skus(applystock_map/dim_mapwhenitemsempty) and adjusted recalc logic to update profit fields whenuse_min_max_rulesis used. - docs/docs/patchnotes/1.5/1.5.7.md — This patchnotes file (updated).