Skip to content

1.4.0

🚀 New Features

  • Introduced the new Base Articles layer for Multi-Repricer as a central source of truth across Shopify, FBM, Kaufland, and Otto.
  • Added the unified repricer_articles backend with dedicated detail records per marketplace, UVP handling, pricing history, bundle metadata, and consolidated sync/recalculation flows.
  • Added a dedicated FBM module with Amazon credential management, Sellerlogic credential management, FBM article APIs, international pricing data, and export workflows.
  • Reworked the Multi-Repricer frontend into clearer platform tabs: Base Articles, Otto, Kaufland, Shopify, and FBM.
  • Added new Base Articles UI capabilities including article quick view, inline platform visibility, bundle/component inspection, UVP controls, package mappings, and per-platform navigation.
  • Added n8n and n8n runner services to the Portainer compose stack.

🔧 Improvements

  • Reorganized the service_multi-repricer API surface around dedicated endpoint groups for base articles, package mappings, Otto margin rules, Amazon credentials, Sellerlogic credentials, Shopify articles, Kaufland articles, Otto articles, and FBM articles.
  • Replaced older Google/Sheets-oriented pieces in the Multi-Repricer flow with the new Amazon, Sellerlogic, FBM, and Base Articles structure.
  • Added a database migration path from the legacy marketplace tables into the new unified repricer schema.
  • Improved article management screens with shared table patterns, search/filter flows, stats, cron controls, and clearer split between configuration and article operations.
  • Extended existing Amazon and Sellerlogic credential tables with active_multi so the Multi-Repricer can manage its own active credential independently.

🐛 Bug Fixes

  • Base article sync and cron now support update_prices as an explicit option, so imports can run with or without pushing price updates to connected marketplaces.
  • The Base Articles frontend now exposes that update_prices behavior through checkbox controls and tooltips for both manual sync and cron setup.
  • Added a status normalization migration so legacy uppercase/external values such as ACTIVE and AVAILABLE are converted to the lowercase enum values expected by the new repricer models.

SQL

Run the new SQL scripts in this order:

  1. docker/postgres/updates/multi_repricer_credentials.sql Adds active_multi to sellerlogic_credentials and amazon_credentials. Apply this before using the new Multi-Repricer credential activation flow.
  2. docker/postgres/updates/repricer_articles.sql Creates the new core schema: repricer_articles, shopify_details, fbm_details, kaufland_details, otto_details, and otto_pricing_history. This must run before any backfill migration.
  3. docker/postgres/migrations/001_populate_repricer_tables.sql Backfills the new repricer tables from the legacy sources kaufland_articles, item_monitor, and shopify_articles.
  4. docker/postgres/migrations/002_normalize_status_values.sql Normalizes copied status values after the backfill so they match the lowercase ArticleStatus enum values used by the new service.

Reason for this order:

  • Credentials update first, so the new Multi-Repricer credential toggles work correctly.
  • Core repricer tables second, because the migration scripts depend on them already existing.
  • Data backfill third, so legacy data is copied into the new schema.
  • Status normalization last, because it should run on the migrated data after the inserts/updates are done.