Release note 3.34 - English

Ændret den Wed, 24 Jun kl. 3:54 PM

Table of contents

                                                       


Expected release date: June 24th 2026


New setting: Automatically fetch shipping label after picking

A new option has been introduced for when shipping labels are retrieved from the carrier: "Order picked".

With this setting, the label is automatically fetched in the background as soon as an order has been picked. This means that in most cases, the label is already ready when the packing operator scans the order at the packing station – eliminating the need to wait for the label to be generated.


How does it work?

  • The picker notices no difference – picking is completed as usual, and the label is fetched in the background without delay.
  • The packing operator scans the order at the packing station. If the label is ready, packing continues immediately. If it is still being fetched, a message will prompt the operator to scan again shortly.
  • If something goes wrong during the automatic retrieval, the system will fetch the label as a fallback – ensuring that packing never stops.


When is this setting relevant?

This setting is suitable for shipping products that do not require weighing or measuring during packing. If you use shipping products that require weight or dimensions at packing (e.g. for shipments to countries requiring customs), you should continue using the label retrieval setting in "Pack".


The setting is activated by an administrator in the shipping method configuration under Settings > Integration > Forwarder configurations.


Returns: Language translations for products and return portal

If you ship goods to customers in other countries, you may have experienced that product descriptions and texts in the return portal were only shown in the language in which the product was originally created. For example, a German customer opening the return portal might see all product names in Danish.


You can now create language translations per country for products and customize all texts in the return portal to the relevant language.


Product translations

You can create translations of product fields (SKU, description, brand, size, and color) per country code. Translations can be maintained in three ways:

  • In PeakWMS – via a new translation dialog directly on the product (Product translations).
  • Via Excel import – upload a file containing translations matched by SKU and country code. Existing translations are updated, and new ones are created.
  • Via OpenAPI – a new endpoint for creating and retrieving translations, allowing integration with your ERP or PIM system.

When a translation exists for the relevant country, it is used automatically:

  • On the packing slip – product descriptions are shown in the destination country’s language.
  • In the return portal – end customers see product names and descriptions in the correct language.


If no translation exists for the country, the original values are shown as before.


Return portal texts

All UI texts in the return portal (buttons, headings, info texts, etc.) can now be translated per return portal. Administrators can find the new "Translations" section under return portal settings, when editing the return portal, where original texts are shown alongside fields for translations. Empty fields retain the default text.


Additionally, the image display in the return portal has been improved so that all product images are now shown in a consistent square format for a cleaner and more uniform look.


Warehouse setup: Select multiple locations and racks at once

Previously, in the warehouse setup (Warehouse Editor), you could only work with one location or rack at a time. For example, moving an entire row of racks required selecting, moving, and placing each rack individually – which was time-consuming for larger changes.


What’s new?

You can now select multiple locations and/or racks at once and move or copy them together:

  • Multi-select – select multiple locations or racks simultaneously.
  • Move – move the entire selection to a new position.
  • Copy – copy selected locations/racks, e.g. to quickly create an identical section elsewhere in the warehouse.

This significantly speeds up building and adjusting warehouse structures – especially during major changes, expansions, or when setting up new warehouses.


Barcode scanning with GS1 codes now works consistently across all workflows

If you use GS1 barcodes (e.g. GS1-128 or GS1 DataMatrix), errors could previously occur where the system rejected the barcode during packing, putaway, or stock transfers – even though it worked during picking.


This was because some workflows compared the scanned code directly with the stored barcode without correctly interpreting the GS1 format. This has now been fixed so GS1 barcodes are handled consistently across all workflows: picking, packing, putaway, transfers, and replenishment.


Standard barcodes (non-GS1) work exactly as before.


Manual pack during pick: New "Park" option for missing items

When manually picking orders using the "Manual pack during pick" process, and one or more items were missing, you previously only had two options: ship what was picked or put everything back. A third option is now available: Park the order.


This allows the already picked items to be set aside in a designated parked location using a printed parked label, while the system automatically creates a new picking task for the missing items. When those items become available and are picked, the system prompts the operator to combine the two parts so the order can be shipped as one.


In short: you no longer need to choose between shipping incomplete orders or starting over – orders can now be parked and completed later.

Note: This feature only applies to picking groups using "manual pack during pick". In other picking processes this feature is already standard.


Replenishment: Fewer duplicate tasks and option to combine picks

The replenishment calculation has been improved in three areas:

  1. Higher priority first
    If a high-priority configuration requires items already reserved for a lower-priority task, the system can now reassign the reservation.
  2. Fewer duplicate tasks
    If a recalculation finds an existing task covering the same need, the quantity is increased instead of creating a new task.
  3. New icon during picking
    When picking a replenishment task, an icon indicates if other tasks exist for the same stock. Operators can view and take over those tasks to pick them together. The system prevents simultaneous takeover by multiple users.


Cross-docking: Select number of labels and define shipment dimensions

Previously, cross-docking only allowed either one label for the total quantity or one per item (pick-alone). You had no control over label count or shipment dimensions.


What’s new?

  • A new "Number of labels" field allows operators to define how many labels should be created.
  • Quantities are distributed as evenly as possible across labels (e.g. 7 items across 3 labels → 3, 2, 2).
  • Shipment dimensions (width, length, height, weight) can be entered per label.


If not provided, dimensions are calculated automatically during label printing.


Receiving: Import serial numbers via file upload

Previously, serial numbers had to be scanned one by one. This was time-consuming for large deliveries.


What’s new?

Serial numbers can now be imported via a text file (.txt or .csv) with one serial per line.


Key points:

  • File must match the remaining quantity
  • Validation includes format, duplicates, and existing inventory
  • All-or-nothing import: errors reject the entire file (up to 20 invalid entries shown)
  • Manual and imported entries can be combined
  • Imported serials are counted but not individually listed for performance


AutoStore updates

All barcodes are now included in product export

If a product has multiple barcodes, all are now sent to AutoStore – ensuring recognition regardless of which barcode is scanned.


Orders correctly sent after pick group recalculation

Orders moved into automation pick groups are now automatically sent to the automation system, preventing them from getting stuck.


Pick date now based on planned shipping date

Pick date now uses the planned shipping date instead of order date, ensuring proper prioritization.


Error messages during receiving now localized

Error messages for automation containers are now shown in the user’s language and include specific container and location details.


Order date and time sent to AutoStore

Pick lists now include order date and time, enabling better prioritization and visibility in AutoStore.




OpenAPI

Product update (PATCH) via OpenAPI: New endpoint for partial updates

If you use PeakWMS OpenAPI to update products, a new endpoint has been added that allows you to send only the fields you want to change—without including all other product data.


Previously, the update endpoint required all product fields to be included, even if they were not being changed. With the new endpoint, you can, for example, send just a new price or description while leaving the rest of the product unchanged.


What does this mean in practice?

  • Product update integrations become simpler and more reliable—there is less risk of accidentally overwriting fields you did not intend to change.
  • The old endpoint still works but is marked as deprecated and will be phased out over time.


This change is only relevant if you have an integration that updates products via PeakWMS OpenAPI. Daily use of PeakWMS is not affected.


Faster creation and updating of purchase orders via OpenAPI

Previously, sending purchase orders with many lines via integration could be unnecessarily slow. The system looked up each item line individually—for example, an 80-line purchase order could require up to 100 separate database lookups.


Now, all item lookups are grouped and executed in a single query per type (SKU, barcode, etc.), regardless of the number of lines. This significantly improves performance, especially for large purchase orders.


This improvement happens behind the scenes and does not affect how integrations are used. Everything works as before—just faster.


Faster handling of purchase order lines via API

When updating purchase orders with many lines, the system previously processed each line individually, resulting in multiple database lookups.


Now, lines are handled collectively in memory instead of being looked up one by one. This greatly improves performance for large orders.


This change applies only to purchase orders received via OpenAPI integration. Other integrations (e.g. Business Central, Stocky, Uniconta) are not affected.


Planned shipping date can now be updated and cleared on existing orders

Previously, when an order with a planned shipping date was created via OpenAPI, the date could not be properly changed or removed afterward:

  • Full update (PUT): The planned shipping date was ignored, and the original date was retained.
  • Partial update (PATCH): The date could be changed but not cleared—sending an empty value had no effect.


This caused issues for customers who rely on the planned shipping date for prioritization (e.g. AutoStore workflows).


What has been fixed?

  • Full update (PUT): The planned shipping date is now always updated. If no date is provided, the field is cleared—consistent with other fields.
  • Partial update (PATCH): The date can now be both updated and cleared by setting it to null.

This change applies only to OpenAPI updates. Other integrations are unaffected.


OpenAPI: Delivery note comment can now be set via sales orders

Warehouses using OpenAPI sales orders could previously not set a delivery note comment on outgoing orders. This free-text note (e.g. instructions for delivery drivers) had to be entered manually in PeakWMS.


What’s new?

A new field DeliveryNoteComment has been added to the sales order endpoint:

  • Optional free-text (max. 2,000 characters)
  • Stored on the order and printed on the delivery note

How it works:

  • POST: Set the comment when creating an order
  • PUT: Replaces the comment; omitted field clears it
  • PATCH: Updates only the comment; empty value clears it
  • GET: Returns the comment for validation
  • Validation: Comments over 2,000 characters are rejected

The field is optional—orders without it work as before.


OpenAPI: Long response times for purchase orders eliminated

Customers with large purchase orders experienced very long response times when creating or updating via OpenAPI—sometimes exceeding 100 seconds.


Cause

Heavy per-line operations and repeated database lookups caused poor scalability, especially for orders with many lines, expected delivery dates, or pre-order statuses.


Fix:

The creation and update processes have been optimized:

  • Heavy operations have been streamlined
  • Performance now scales efficiently, even for large orders

This fix applies to both POST (create) and PUT (update) endpoints.


OpenAPI: Picked serial number, expiration date, and lot number now available on pick order lines

Previously, integrations retrieving pick orders could not see which serial number, expiration date (BBD), or lot number was actually picked per line.


What’s new?

Three new fields are now included in pick order lines:

  • PickedSerialNumber – the serial number picked
  • PickedBestBeforeDate – the expiration date of the picked stock
  • PickedLotNumber – the lot number of the picked stock

Details:

  • Nullable fields – return null if not relevant
  • Available for archived pick orders as well
  • Fully backward compatible
  • No configuration required—fields are included automatically and documented in Swagger



Performance updates

Faster generation of packing slips and order documents

If a webshop logo had a very high resolution, generating order documents such as packing slips could previously take a long time—in some cases up to 5 seconds per document.


We have now optimized image handling so that even large logos are processed quickly. This results in noticeably faster document generation in daily operations.


Searching for products in stock—e.g. by barcode, SKU, or description—is now significantly faster. We have optimized how search results are retrieved, greatly reducing response times.


In practice, this means search results appear almost instantly instead of requiring several seconds of waiting.


Purchase demand: Faster and more stable calculation

Previously, recalculating purchase demand for customers with many products could cause the system to freeze or fail—especially when many purchase lines already existed. The progress bar could show 100% while the system was still deleting old calculations in the background, which could take a long time or time out.


This has now been resolved with a new approach:

  • New results are created immediately
  • Cleanup of old data occurs automatically in the background

This means:

  • Calculations feel faster since you no longer wait for cleanup first
  • Fewer errors and timeouts, even for large assortments
  • Cleanup happens automatically—no action required


Inventory value report: Faster balance calculation

The calculation of inventory balance by date has been optimized, making the report generate significantly faster—especially for warehouses with many items and movements.


Improved performance for bundle product inventory adjustments

When orders with bundle products were created or updated, the system previously fetched each related product individually, resulting in many database calls.


Now, all related products are retrieved in a single query, and inventory adjustments are processed collectively. This significantly improves performance, especially for customers with many bundle products.


The change happens behind the scenes—functionality remains the same, just faster.


Other updates

Table settings: "Show all" and "Hide all" columns with one click

Previously, administrators had to move columns one by one between visible and hidden lists.

Now two new buttons are available:

  • Show all – makes all columns visible
  • Hide all – hides all columns

Example: Instead of manually hiding 37 out of 40 columns, click "Hide all" and add the 3 needed columns.


Bundles: Search field now clears automatically

When adding sub-products to a bundle, the search field is now automatically cleared after selecting a product—making it easier to add multiple items without confusion.


Receiving: All packaging types can now be selected—including single units

Previously, only packaging levels like cartons or pallets could be selected during receiving.

A new setting "Storage relevant" allows administrators to define which packaging levels can be selected.


System behavior:

  • No stock-relevant units → no selection shown
  • One → selected automatically
  • Multiple → user must choose

Applies to receiving, returns, stock counting, and stock transfers.


Homerunner: Extended dangerous goods setup and automatic submission

Previously, only hazard class and UN number could be set.

Now full dangerous goods information can be configured, including:

  • UN number and hazard class
  • Proper shipping name
  • Packing group
  • Tunnel restriction code
  • Packaging details
  • Environmental hazard indicators

All data is automatically sent with shipments via Homerunner.


Lot-controlled items: Partial picking now possible

Previously, you could only pick the full quantity or mark a shortage.

Now, partial pick is available (if no specific lot is required):

  • Pick available quantity
  • System creates a new task for the remaining quantity from another lot

If a specific lot is required, behavior remains unchanged.


New option: Ship available items at first release

Orders are normally only released when all lines are in stock.

With the new setting, orders can be partially released on first release:

  • Available items are picked and shipped immediately
  • Remaining items are released later

The setting is off by default and must be configured per order.


Webshipper: Configure shipping products via Host ID

You can now enter a Host ID directly instead of selecting from a list.

  • Enter Host ID → product auto-filled
  • Select product → Host ID auto-filled
  • Fields remain synchronized


Homerunner: Shipping cost now included for customs

Shipping cost is now included in shipment data sent to Homerunner:

  • Sent with currency
  • Includes VAT and discounts
  • Supports zero-value shipments

Return labels are not affected.


Returns: Separate delivery address for exchanges

Exchange shipments can now be sent to a different address than the original order.

  • Supports API-defined addresses and parcel shop IDs
  • Default behavior copies return address
  • Address can be edited later

All shipping integrations now use the exchange address.


Move load carrier: Select specific carriers

When moving load carriers:

  • Select none → all moved (as before)
  • Select specific ones → only those are moved

The UI shows how many are selected.


Pallet picking: Print packing slip and label together

New completion option: "Delivery note and order label"

Both documents are printed in one step when finishing a pallet.


Renamed field + new field

  • "Planned shipping date" renamed to "Planned release date"
  • New field: "Planned shipping date" (informational only)


Pallet picking: Show pending add-on lines

Consolidation screen now shows pending pick lines from other orders—helping workers decide whether to consolidate or wait.


Pallet picking: Customer name now shown

Customer name is now displayed on the order info screen when starting pallet picking.


Empty locations report: Item numbers now shown

New column shows which SKUs are assigned to empty fixed pick locations.


Shipped units report: Lot and expiry data added

New columns:

  • PickedLotNumber
  • PickedBestBeforeDate

Improves traceability.


Serial numbers in stock: New fields

Two new optional fields:

  • SupplierComment (max 512 characters)
  • Affiliation (max 256 characters)

Available in UI and via OpenAPI.


Pallet receiving: Button renamed

"Print label" → "Print Stock Item label"


Return order lines: All fields now available

All fields are now visible, searchable, and filterable in the overview.


Product import: ExternalLocation now supported

The ExternalLocation field can now be imported via Excel—enabling bulk updates.



Bug fixes

Order release: Fixed issue with duplicate item numbers across lines

If an order contained the same item number on multiple lines—e.g. across different delivery groups—the system could incorrectly put the order on hold, stating that stock was reserved for older orders.


The issue occurred because reservations for older orders were counted multiple times—once per order line—instead of once per order. This made the system believe less stock was available than actually existed.


This has now been fixed so reservations are only counted once, regardless of how many lines contain the same item. Orders previously placed on hold incorrectly will now be released as expected.


Partial picking: Shipping label now correctly regenerated when splitting orders

When an order was partially picked and split into two shipments, the original shipping label was previously reused for the first shipment. This caused mismatches between the label (weight/content) and the actual package.


Now, a new shipping label is automatically generated when an order is split. The label correctly reflects the package contents and ensures accurate freight calculation.


Returns: Fixed error when returning bundle products

Returning items that were part of a bundle could previously result in a system error (HTTP 500), especially if a return order already existed.


This has been fixed so bundle returns now work correctly—even with existing return orders. Return reasons and actions are still properly propagated to sub-items.


Picking: Correct release rule used for alternative locations and short picks

When release rules were merged, the system lost track of the original rule for order lines:

  • Alternative pick locations could show too few options
  • Short pick logic could incorrectly flag items

Now, the system tracks the original rule and evaluates the entire rule chain:

  • Alternative locations show all relevant stock
  • Short pick logic searches correctly across rules

Applies only to new pick orders.


Dialogs: Date filters now correct across time zones

Relative date filters (e.g. "last hour", "today") could previously show incorrect results due to UTC-based calculations.


Now all calculations use local time, ensuring consistency with dashboards.


Homerunner return labels: Fixed issue with two address lines

Customer address lines were previously merged into one, exceeding carrier limits.

Now, they are sent as separate fields—ensuring labels are generated correctly.


Inventory adjustment: Pick orders with picked lines no longer deleted

Previously, reducing stock to zero could delete entire pick orders—even if some lines were already picked.

Now:

  • If at least one line is picked → the order is preserved
  • If no lines are picked → the order is removed as before

This ensures picked work is never lost.


Consolidation: Canceled main order no longer blocks child orders

If a main order in a shipment group was canceled after picking:

  • Child orders became stuck
  • Packing could not proceed

Now, during scanning:

  • Main order is canceled
  • Stock is restored
  • Child orders are released

No manual intervention required.


Webshipper: Customer name no longer duplicated

For private addresses, the customer name could appear twice on labels.

Now:

  • Company name is only filled if present
  • Customer name appears once


Packing station: Resend orders no longer block workflow

"Resend" orders previously prevented the packing station from resetting.

Now:

  • The system correctly distinguishes resend vs split orders
  • Workstation is reset after completion


Consolidation: Canceled lines no longer block packing

Canceled lines were incorrectly included during consolidation.

Now, they are excluded—ensuring orders can complete properly.


Pallet picking: Zero-count only triggered when location truly empty

Zero-count verification was incorrectly triggered even when stock existed on other load carriers.

Now, it checks all stock at the location before triggering.


Business Central: Failed postings no longer block adjustments

Previously, failed journal postings could permanently block inventory adjustments.

Now:

  • Old journal lines are cleared automatically
  • Errors trigger alarms in PeakWMS


3PL: Goods owner deletion no longer blocked

Shared freight configurations previously blocked deletion.

Now:

  • Cross-references are cleaned up automatically
  • Deletion completes successfully


Picking groups: Archived orders no longer block deletion

Archived pick orders previously prevented pick group deletion.

Now:

  • References are cleared automatically


Rack deletion: Counting lines no longer block deletion

Pending stocktake lines could block rack deletion.

Now:

  • These lines are automatically removed


Location deletion: Inactive workstations no longer block

Inactive workstation references previously prevented deletion.

Now:

  • References are cleared automatically


Shipmondo: Customer name no longer duplicated on parcel shop labels

Duplicate names on labels have been fixed—customer name now appears once.


POS adjustments: Alarm when adjusting QA stock

Adjustments on QA (blocked) stock were silently ignored.

Now:

  • A clear alarm is triggered
  • No automatic adjustment is made


Receiving: "Close inbound delivery" button now accessible

After receiving the last line, the user is now kept on the correct screen where the delivery can be closed directly.


Purchase/Credit note: "Create" button always enabled

Orders created via API without forecast method blocked credit note creation.

Now:

  • Default value is set automatically
  • Credit notes can be created normally


Shopify: Integration fields preserved during OAuth

Previously, retrieving an access token reset all other fields.

Now:

  • Existing values are preserved


Zone picking: Premature box scan fixed

Box confirmation was triggered too early due to missing logic for load carrier paths.

Now all paths are considered correctly.


Menu: Right-click on "Settings" now works

The settings button now behaves like a proper link, allowing standard browser actions.


HostedShop: "Test connection" now respects language setting

Previously, language setting was ignored during testing.

Now:

  • Correct language is used
  • Errors reflect actual configuration


External warehouse movement: Quantity display fixed

Rapid +/- clicks did not update the UI correctly.

Now:

  • Display always reflects actual quantity


Employee performance: "Select all" fixed

Multiple issues with employee selection have been resolved:

  • Toggle works correctly
  • Search works properly
  • Admin users excluded
  • Selection persists after reload









Var denne artikel nyttig?

Fantastisk!

Tak for din feedback

Beklager, at vi ikke var nyttige

Tak for din feedback

Fortæl os, hvordan vi kan forbedre denne artikel!

Vælg mindst én af grundene
Captcha-bekræftelse er påkrævet.

Feedback sendt

Vi sætter pris på din indsats og vil forsøge at rette artiklen