Solve v7.5

Prev Next

Fix: Progress Counter Not Displayed During Campaign Export (EBS-7266)

A bug in the campaign export workflow caused the progress view to show a blank status instead of displaying how many items were being exported. Although the export itself completed successfully, users were unable to see the live progress indicator (e.g., 120 / 120), making it unclear whether the export was running or stuck.

This issue has now been fixed. The export process correctly reports the number of items being processed, and the progress view updates continuously throughout the export. Users can once again monitor campaign export progress in real time.

Fix: Stopping NOBB Imports Now Works Correctly (EBS-7982)

It is now possible to reliably stop running NOBB imports. Jobs that previously remained stuck in a stopping state are now properly terminated, ensuring they no longer block the queue.

Queued jobs will continue to run as expected, and users can start new NOBB-related imports without being prevented by jobs that failed to stop earlier.

Fix: Corrected Item Group Counting Logic During Import (EBS-8314)

A defect in the item group import logic caused the system to count only the over‑group level when processing item groups.

Previously, the importer incorrectly used only the top‑level group for counting, resulting in misleading progress information and inconsistent validation.

This issue has now been resolved. The import module correctly identifies and counts items based on the bottom‑level item group (7 positions), ensuring accurate progress tracking and correct handling of item group data.

Enhancement: Migrated NOBB Price Import to New NOBB API v2 (EBS-12095)

The NOBB price import has been fully migrated from API v1 to the new NOBB API v2. The new integration now uses cursor‑based pagination to retrieve all price data reliably and supports the updated response structure in v2.

The import now:

  • Uses the new /v2/prices endpoint

  • Fetches all pages using the pageToken returned in each response

  • Captures x-total-hits for accurate logging and progress tracking

  • Applies improved error handling during paginated imports

  • Continues to run automatically every day at 00:10, as before

All legacy v1 logic has been removed, and the system now imports price data exclusively using the NOBB API v2.

Implementation: Block or warn on import of reused products from NOBB (EBS-12377)

Developed an option for filtering out items with type "reused" from NOBB.

Contact EG if you want to order this feature.

If user would like to allow such items, it will be displayed in job-log like this:

If the user want to block such items completely from import, it will show in job-log like this:

Fix: Incorrect PurchasePriceIncShipping Calculation in Price Export (EBS-12963)

The price export contained an incorrect value for PurchasePriceIncShipping, where the field appeared lower than PurchasePriceExShipping.

The root cause was that the system subtracted shipping costs instead of adding them when calculating PurchasePriceIncShipping.

Resolution:

PurchasePriceIncShipping is now correctly calculated as PurchasePriceExShipping + Shipping for all exported items. All exports will now contain accurate values, ensuring correct downstream calculations.

Module for Prices and Agreements in new design (EBS-13058)

Summary

The Prices & Agreements module has been fully redesigned and rebuilt. All tabs in the module now run on the modern frontend stack, backed by new REST APIs. The old frontend remains accessible from within the price calculation module's top bar until client testing is complete.

What's New

Purchase Conditions

  • Main table view rebuilt in new design with shared filtering across all tabs (price group, supplier, item group, module, article). Filters persist when switching between tabs.

  • Selected filter values are displayed as chips in the search field.

  • Activate / Deactivate actions presented as buttons. Multi-select with checkboxes supported.

  • Standard pagination added, consistent with the rest of the application. Table scroll is contained within the grid (page does not scroll).

  • Add new condition opens a dedicated modal. Modal header changes context when editing an existing record.

  • Import dialog supports drag-and-drop file upload (XML, CSV, XLSX depending on customer configuration). Three new config UI rules introduced: purchase_condition_import_xlsx, purchase_condition_import_xml, purchase_condition_import_cs

  • Date fields repositioned in the form to align with updated design.

  • New delete capability for one or more purchase conditions.

  • New REST APIs: GET (list with filters + pagination), POST (create/update), PUT (activate/deactivate), DELETE.

Cost Price Markups

  • Main table view rebuilt in new design with consistent shared filtering and chip display.

  • Add / Edit dialog with context-aware modal header (different title for add vs. edit).

  • New REST APIs: GET (list with filters + pagination), PUT (activate/deactivate), DELETE, POST (create/update), GET by ID.

Sales Price Markups

  • Main table view rebuilt in new design with consistent shared filtering and chip display.

  • Add / Edit dialog with context-aware modal header (different title for add vs. edit).

  • Import dialog for importing sales price mark-ups for given price groups from file.

  • Bug fix: When creating a new sales price markup, the main supplier is now correctly defaulted. If no supplier was set at creation, reopening the record for editing no longer incorrectly injects a main supplier.

  • Duplicate validation: The system now prevents saving a sales price markup that duplicates an existing entry on all key fields (price group, supplier, item group, module, article, validity period, calculation type). A clear validation message is shown, and the record is not saved.

  • Export refactored: Sales price markup export moved to a new dedicated Camel export route (SalesPriceMarkupExportRoute) with a new REST endpoint /api/export/salesMarkups, aligned with the campaign export pattern.

    New REST APIs: GET (list + activate/deactivate), DELETE, POST (create/update), GET by ID.

Rounding Rules

  • Main table view rebuilt in new design.

Add / Edit dialog introduced.


  • New REST APIs: GET (list), DELETE, POST (create/update), GET by ID.

Shipping Agreements

  • Main table view rebuilt in new design.

  • Add / Edit dialog for shipping agreements and shipping markup conditions, including:

  • Delivery condition shown as a dropdown (no search, arrow icon only).

  • Shipping Conditions drawer with full action bar (activate, deactivate, delete, new condition — all with icons, disabled when no selection).

  • Table includes a refresh icon in the header to reset column configuration to default; manually hidden columns are restored.

  • Article, Module, and Article Group filters with search functionality.

  • Article field displays NOBB number and article name; Module field displays module number and module text.

  • New REST APIs: GET (shipping agreements + markup conditions), DELETE, PUT (activate/deactivate markup conditions), POST (create/update agreement and conditions), GET by ID.

Enhancement: Migrated NOBB Item Import to New NOBB API v2 (EBS-13446)

The NOBB item import has been fully migrated from API v1 to the new NOBB API v2. The new integration uses cursor‑based pagination to fetch all item data reliably and supports the updated response format from NOBB.

The import now:

  • Uses the new /v2/items endpoint

  • Handles pagination via pageToken until all pages are retrieved

  • Captures x-total-hits for accurate logging and progress tracking

  • Applies improved fallback and error handling during multi‑page imports

  • Continues to run automatically every day at 00:10, as before

Enhancement: Item Type Now Set from NOBB During Import (EBS-13823)

Items imported from NOBB are now automatically tagged with their corresponding item type. The following five types are supported: Standardvare, Display vare, Sammensatt vare, Spesialvare, and Tjenestevare.

Fix: Main Supplier Not Updated When Using Mass‑Maintenance Replace Function (EBS-14339)

A defect in the mass‑maintenance tool prevented users from updating the main supplier on items when using the “set to → replace” operation. Although the operation appeared to execute without errors, the main supplier on the article card remained unchanged.

This issue has now been resolved. The mass‑maintenance process correctly applies the selected main supplier to all affected items, and the article card immediately reflects the updated supplier data after execution.

Fix: Duplicate Assortment Entries Created When Replacing an Existing Assortment (EBS-14340)

A defect in the mass‑maintenance “assortment replace” function caused incorrect handling when users attempted to replace an assortment with another assortment that was already assigned to the same item.

When the replacement was executed, the system correctly closed the old assortment by setting a valid to date. However, instead of recognizing that the target assortment already existed for that item, the system created a second, duplicate entry for the same assortment with a new valid from date. This resulted in the assortment appearing twice on the article card, even though only one version should have remained.

This issue is now resolved. The mass‑maintenance logic correctly detects when the “new” assortment already exists for the item. In such cases:

  • No duplicate assortment is created

  • The operation is prevented from executing

  • The user is shown an informative validation message identifying the item number and explaining why the replacement could not be completed

This ensures clean assortment data and prevents unwanted duplication when performing bulk maintenance.

Enhancement: Added Downloadable Templates for Import Files in Solve (EBS-14582)

Users can now download ready‑made templates for the different Excel import types in Solve, making it easier to prepare data in the correct format before importing.

On the import page, each import section (e.g., Import of Items from Excel and Import of Dealer Prices from Excel) now includes a dedicated button to download the corresponding template. The templates contain the required column structure and can be filled in directly by the user, reducing formatting errors and speeding up the import process.

This improvement helps users quickly get started with data imports and ensures higher data quality across import operations.

Fix: Multiple GTINs per unit now supported (EBS-15203)

It is now possible to add more than one GTIN per unit. This accommodates vendors who operate as wholesalers and may require multiple GTINs for the same unit in certain situations.

Fix: Sales Price Markups — Future-dated entries excluded from export (EBS-15308)

Issue: When downloading sales price markups, entries with a future valid-from date were incorrectly excluded from the export file. Since the import overwrites existing markups, re-importing the downloaded file would effectively delete all future-dated entries from the system.

Fix: All sales price markups are now included in the download regardless of valid-from date. The valid-from date is added as a visible column in the exported file, and future-dated entries will retain their valid-from date upon re-import.