New Feature Highlights
Barcode Templates — Configurable GS1 & Custom Barcode Parsing
Logiwa IO now supports Barcode Templates, letting Warehouse Admins define how a scanned barcode should be broken into individual fields — Product, Lot/Batch, Expiry Date, Production Date, and Serial Number — instead of relying on a simple barcode-to-product match.
Templates support standard GS1-128 Application Identifier parsing as well as custom formats, using either positional rules (Identifier or Start Position, with Fixed or Variable length) or regex pattern matching, configurable per rule.
New Barcode Templates screen with full search, filter, and Excel export support, plus dedicated permissions configurable per role.
Two-step template builder: define template-level settings (Name, Warehouse, Priority, Start Method, Status), then add one or more parsing rules per field, each independently configurable as positional or regex-based.
Test Barcode tool: validate a sample barcode against a template's active rules and see a pass/fail result per field before relying on it in live operations.
Auto-fill across mobile workflows: once configured, a matching scan automatically populates tracking attributes during Receiving, Replenishment, Transfer & Directed Putaway, Count, Lookup, Sorting, and Picking. (51833)
Replenishment LP Swap
Pickers working replenishment tasks can now substitute a different LP than the one originally assigned — covering both Full LP and Pick-from-LP scenarios — across the mobile Pick & Put and Direct Put flows.
A new “Enable LP Swap” toggle and contextual threshold field on the Replenishment Job Type screen control when a swap is permitted, and the Replenishment Task Details screen now shows new columns tracking swap activity for audit. (52237)
Please check this article for more details.
Receiving-Only Lot Expiry & Production Date Tracking
You can now mark Lot, Expiry, or Production Date as receiving-only on a product. Receivers capture the value during mobile PO Receiving and it shows on the Receiving History report, but inventory isn't split by it and it isn't required downstream. (52291)
For more information, please check the article: Receiving-Only Lot, Expiry, and Production Date Tracking
Soft-Allocation Logic for Standard LP & Product Putaway
Building on the soft-allocation protection already available for Replenishment, this release extends the same soft-reservation logic to standard Product Putaway and closes two related gaps in how putaway and replenishment suggestions account for capacity that's already claimed but not yet transacted.
Soft allocation for Product Putaway: Standalone Product Putaway suggestions — including repeated Suggest Another requests and the Receiving screen's "Suggest Putaway Location" toggle for products — are now tracked with the same soft-reservation mechanism already used for LP Putaway. A location an operator is mid-decision on is treated as occupied capacity for every other operator's suggestion, and Suggest Another updates that same reservation rather than creating an unrelated new one.
Volume Based Putaway integration: Volume Based Putaway's remaining-volume calculation now also accounts for other in-progress Putaway sessions and open Replenishment tasks that have already claimed capacity at a candidate location — closing the gap where two operators could be suggested the same location because the precomputed volume figure hadn't yet caught up to pending reservations.
Full LP integrity for Replenishment: When a Replenishment Job Type's "Only Replenish Full LPs" setting is enabled, the system now evaluates and suggests a destination for the entire LP as a single unit instead of one inventory line at a time, so every task under the LP lands on the same location instead of being silently split or cancelled.
Volume Based LP Putaway - New Parameter for Volume Calculation
Logiwa IO already supports calculating LP Putaway / Sequential LP Putaway and dynamic replenishment suggestions using an LP's own container dimensions/volume. This release adds the missing counterpart, by adding a new "Use LP Dimensions for Volumetric Putaway" parameter on the warehouse level.
When that parameter is turned off, LP Putaway, Sequential LP Putaway and Dynamic Replenishment now calculate the putaway volume as the consolidated volume of the products actually contained in the LP, instead of the LP's own container volume — better reflecting real occupied space for warehouses whose LPs' outer size is unmeasurable or doesn't match what's inside.
The same zero-value and unit-consistency checks already applied to standalone product putaway are enforced per contained product before a location is suggested, and location-side capacity checks read the standard (non-LP) remaining-volume values of locations under this mode.
Warehouses using the LP's own dimensions (parameter on) are unaffected.
Max Unique SKU Per Location Putaway
Warehouses can now cap the number of distinct SKUs a single location is allowed to hold by setting a Maximum SKU Count on the Location Setup screen.
A new “Check Max SKU Count” action on the Putaway Algorithm enforces this cap when suggesting a destination, and the field is available for bulk configuration through Excel import and the Open API. (51662)
For more information, please check the article: Setting a Maximum SKU Count Per Location
Analytics is Now Live
Analytics is officially live! All accounts now receive up to 10 Analytics licenses at no additional cost, shared across every Analytics module.
• Shared license pool: the 10 licenses are shared across all Analytics modules, so there's no need to track seats separately per module.
• Licenses are based on unique users: each unique user consumes only 1 license, regardless of how many Analytics modules they have access to. For example, if User A is granted access to two different Analytics modules, only 1 license is consumed, since the access is tied to the same user.
• A new license is consumed only when a different user is granted access to any Analytics module.
Warehouse Visibility for User Management
Admins can now see and filter by warehouse access directly from the User List. The screen shows a Warehouse Code column with multi-select filtering for users with access to multiple warehouses, and the same warehouse access data now appears in the User List Excel export. This gives admins a faster way to review and manage user warehouse access without cross-referencing multiple screens. (52498)
Precartonization
Logiwa IO now supports Precartonization — pre-selecting the correct shipment package type for an order before it reaches the packing station. Warehouses can add a dedicated parameter and condition for Precartonization on Picking Job Types, and the Packing screen pre-selects the suggested package type based on the Suggested Cartonization LP Type. Eligibility, job type routing, and task enrichment are handled at allocation, and a Shipment Package Type exclusion condition lets specific package types be kept out of precartonization. Clients can force cartonization instructions to display at packing, and Job Management now shows a Precartonization Job badge with a matching Excel export column. Label creation can be triggered directly from the job (both backend and frontend), the Pack button stays active for precartonization job orders, the shipment package type is pre-selected at order creation, and a companion Shipment Order Type parameter change (Allow Partial Allocation, Allow Partial Shipment, Enable Partial Packing) supports precartonization scenarios. Mobile Pick and Sort has also been extended to support precartonization jobs. (51901, 51909, 52178, 52179, 52340, 52342, 52373, 52398, 52528, 52529, 52747, 52841)
Upcoming Change — Shipment Plan LP Open API Endpoint & Screen
Open API Endpoint affected: GET /v3.2/ShipmentPlan/licenseplate/list/i/{index}/s/{size} — List Shipment Plan LPs (Version: v3.2)
Current behavior: The Shipment Plan LP screen and this endpoint do not currently expose Parent LPN information. When a Parent LPN containing multiple LPNs is loaded, the LPN column/field shows the Parent LPN instead of the individual LPN.
What's changing: This endpoint will return a separate Parent LPN field alongside LPN. As a result, a Parent LPN that contains multiple LPNs will now produce one row per LPN–Parent LPN combination, instead of a single row per Parent LPN. This is a more accurate representation of the underlying data, but it means:
- The number of rows returned for a given Shipment Plan may increase.
- The value in the LPN field will change for any consolidated LPNs (it will now be the individual LPN, not the Parent LPN).
Action required: If your integration parses this endpoint in a way that assumes one row per Parent LPN, or relies on the LPN field containing the Parent LPN value for consolidated shipments, please review and update your integration before Logiwa IO's December Main Release.
What's New & Improved
• Corrected the Force Suggest validation on Putaway to check the requested target location instead of the current LP location for empty LPs, preventing incorrect suggestions during force-suggest flows. (52836)
• Added an RMA Number column and field to the Transaction History grid and report, letting operators trace inventory transactions back to their originating RMA. (52548)
• Added support for custom fields on Shipment Package Types, configurable on the Shipment Package Type screen, letting warehouses capture additional package-level data specific to their operation. (51669, 52638)
• Extended the location-change confirmation experience already used on Transfer LP and Transfer Location to six more mobile screens — Transfer Product (Bulk and 1x1), Directed Product Putaway (Bulk and 1x1), Directed LP Putaway, and Sequential LP Putaway. When a resolved target LP is empty, operators now see a confirmation prompt showing the target's most recent location and must confirm before the change is applied. When the target LP already holds inventory, the scanning of the LP directly triggers the transfer operation with no action required. (52542)
• Added multi-SKU validation to Purchase Order import, catching invalid multi-SKU line configurations before a PO is created. (52328)
• Added an LP Number column to the Detailed Billing Report, placed next to Reference Number, so LP-level billing charges can be verified directly in the report, its Excel export, and the API response. (52614, 52438)
• Added SKU details to the Detailed Billing Report for fee lines charged by SKU (Receiving, Pick & Pack, and Return), so SKU-level billing charges can be verified directly in the report, its Excel export, and the API response. (37669, 52270)
• Added support for the “Is Not Empty” comparator on Shipment operation billing fee conditions. (52139)
• Added a new billing condition based on SO Details line-level custom fields and notes. (52138)
• Optimized billing query execution and memory handling for large-volume Shipment and Storage operations, resolving report timeouts during month-end calculations.
• Added a “Ready to Load” status tile to the Main Dashboard. (51720, 51719)
• Added Product Group as a condition for “Per LP/Shipment Package” billing fees under the Shipment operation type. (51130)
• Added a new billing condition, “Exclude Canceled-After-Execution Tasks”, to exclude deallocated Picking and Packing tasks from fee calculations (Default: No). (40125)
• Renamed the “Total Products” label on the Main Dashboard to “Total Pack Quantity.” (39394)
• Increased the TechShip carrier integration's HTTP timeout for Create Label and Get Rate calls from 30 to 45 seconds, reducing false failures on ShipBob-relayed TechShip requests that previously exceeded the shorter timeout window. (51887)
• Removed the hardcoded Third Party/Shipper Account payment configuration on FedEx return labels; return label requests now default to Payment Type = Sender so charges are billed correctly to the client's own FedEx account. (52042)
• Added “FM” (Federated States of Micronesia) to the recognized military state list, so Shipment Orders addressed to FM now have customs declaration data sent to ShipStation along with the shipment. (52169)
• Extended EasyPost's EEL code mapping so international shipments flagged as military always receive the correct EEL code regardless of declared value, instead of only when the customs value is under $2,500. (52468)
• Updated the ShipStation Supported Carrier List used by the Send Shipment Info carrier mapping, so shipments resolve to the correct carrier instead of falling back to a generic “custom” code. (52100)
• Added support for OnTrac account-specific naming variants in carrier matching on Shopify fulfillment, so these shipments are correctly reported to Shopify as OnTrac instead of falling back to “Other.” (52716)
• Grouped Open API channel errors in the Channel Monitoring Recent Errors grid by their actual reason name with an occurrence count, instead of listing each occurrence individually under a generic label, and renamed the Integration Management Plugin Integrations category names to “Channel Integrations” and “Carrier Integrations.” (51933)
• Introduced Task Priority as a new column on the Task Details screen and relabeled the AI-only column from "Task Sequence" to "AI Task Sequence," so rule-based and AI-optimized jobs both show clear, correctly labeled ordering information in the grid and Excel export. (52249, 52250)
• Added Kit SKU Name, Kit SKU Quantity, and Kit SKU Description as available fields on the Packing List data sources, so kit contents can be included on printed packing lists. (52336)
• Added an Order Code Grouping Reference field to the Shipment Order, letting orders be grouped by a shared reference code on both the backend and the screen. (52338, 52349)
• Added an "Auto Generate Order Code via Excel Import" parameter to the Shipment Order Type, so order codes can be generated automatically during bulk Excel import instead of requiring manual entry. (52350, 52351, 52352)
• Added "Print Packing List" as a button and printing action on the Job Management screen, giving supervisors a direct way to print packing lists per job without navigating away. (52355, 52354)
• Added a "Create Cart Loading Printout" button to the Job Management screen for producing a cart loading printout directly from the job list. (51906, 51907, 52413)
• Added the product barcode as a visual reference on relevant picking screens, and introduced screen-parameter handling to the mobile Job List and Task Summary requests, improving consistency of the data returned to mobile picking flows. (52273)
• Updated the Picking screens' Job Pool and Your Jobs logic to align job visibility and filtering behavior with current picking workflows. (51924)
• Enabled operators to execute and cancel Sorting Tasks directly, both from the backend and the corresponding mobile/frontend screens. (51801, 51802, 51803)
• Replaced MongoDB reads with a consolidated SQL query for shipment order status, removing a source of Mongo/SQL synchronization race conditions. (52666)
• Enabled operators to execute Sorting Tasks directly from the backend. (51800)
• Added GS1 Barcode scanning support to the mobile Pick and Sort, Pick to Location, and Sorting flows. (52087, 52089)
• Added a "View Alternate LP" option and a "View Products on LP" bottomsheet to the Pick to Location screen (web and mobile). (52485, 52486, 52487)
• Added execution logging to the Auto Ship Job so each processed order records what the job actually did with it. (52480)
• Propagated the task assignee correctly when a task is marked Missing or goes through Reallocation. (52466)
• Added a Bill-To Postal Code field to the Packing List data source. (52493)
• Added a Shopify carrier mapping for "Uni Uni," so orders shipped with "Uni Uni" Carrier are now updated as "Uni Uni" in Shopify. (52960)
Performance Improvements
• Implemented update-if-changed logic for Count Plan status updates, eliminating redundant database writes when a status hasn't actually changed, for improved performance on the count plan updates. (52764)
• Optimized the underlying query for the mobile PO Receiving list, reducing load times on the Purchase Order selection screen. (52612)
• Optimized the Return Order list queries, reducing load times on Return Order screens. (52449)
• Optimized the Return Station shipment order summary query, reducing load times on the Return Station screen. (52448)
• Optimized the Return Order list query used on the Return Station, reducing load times when looking up orders for return processing. (52447)
• Improved the performance of the Sync Inventory query logic. (52467)
What's Fixed
• Fixed an issue where bulk LP creation via auto-sequence miscalculated the next LP number when a custom LP prefix matched a superstring of the configured prefix, causing incorrect or blocked LP generation. (52599)
• Fixed an issue where the change log displayed an “Error Fetching Email” message during bulk LP creation instead of the correct user attribution. (52103)
• Fixed a missing validation message for the 50-character limit on Work Order Tag input. (47812)
• Fixed an issue where duplicate-value pick lines were incorrectly merged in Pick & Pack billing calculations, ensuring total picked quantities accurately reflect actual shipped units. (52783)
• Fixed an issue where return billing calculations double-counted SKU quantity on orders with multiple carrier labels, causing overcharges. (52672)
• Fixed a billing calculation timeout caused by the “Is Stackable” condition on Daily Accumulation fees referencing a non-existent column; the condition has been removed since it was never a supported capability. (52521)
• Resolved an internal server error occurring during Shipment Order billing report exports when a fee type contained a zero unit price. (52518)
• Fixed a query filtering issue in the “Pack Type” fee condition to ensure fees are calculated accurately based on line-item pack types. (52512)
• Fixed an issue where the same carrier name could appear more than once in the “Charge if: Carrier” condition checklist. (52478)
• Fixed an issue where ShipStation-generated labels did not reflect the configured Company Name for Ship From (falling back to Client Name only when unset) or the order's Company Name for Ship To. (52324)
• Fixed an issue preventing Carrier Setup from being saved when a Default Return Shipping Option was selected. (52582)
• Fixed an issue where FedEx rate requests were being rejected for destination countries outside the US and Canada, even though the state/province code was being sent correctly; the system now omits the state/province code on rate requests for those countries — since FedEx's Rate API doesn't accept it there, unlike its Label API — resolving the rate call failures. (52589)
• Fixed an issue where EasyPost package requests sent a dimension of “0” instead of “null” when a package's length, width, or height was not provided, which could distort carrier rating and label accuracy. (52646)
• Fixed an issue where certain valid carrier rates returned by TechShip were not displaying in the Rate Shop UI, which could cause the “Cheapest” rate calculation to miss valid options. (52807)
• Fixed an issue where a bulk product download batch containing a duplicate barcode under “Allow Unique SKU Barcodes” caused valid, non-duplicate SKUs in the same batch to be silently skipped; duplicate-barcode products are now excluded individually with a clear per-SKU log entry, while all other SKUs continue to sync normally. (52101)
Fixed a Wave Engine execution-order bug where Batch Size Limits were validated before Job Type Grouping was applied, allowing jobs smaller than the configured minimum batch size to be created after grouping split the orders. (52661)
• Fixed an issue where Picking Job allocation ignored the single-zone restriction when a Job Type was configured with "Group By: Location Zone," allowing allocation to span multiple zones incorrectly. (52558)
• Fixed dimension-handling issues for the "Item's Own Box" shipping option at the Packing Station. (52555)
• Fixed a mobile picking layout issue where long SKU names at maximum system accessibility font size pushed the Pick Location field behind the barcode container, hiding it from view. (52484)
• Added a Client field to Job Management, with a corresponding filter, so jobs spanning multiple clients can be identified and filtered directly from the screen. (52481, 52482)
• Fixed an error-handling gap in Bulk Order Import so invalid SKU rows are validated and reported clearly instead of failing the batch. (52357)
• Fixed an issue where the Shipment Order SKU Exclude filter did not correctly exclude matching SKUs. (52268)
• Fixed an issue where the mobile Specific Order picking flow's order summary response did not align with the Job flow's response model, causing inconsistent data between the two picking paths. (52255, 52256)
• Fixed an issue where the Lot Number field lost focus after an invalid scan during picking, requiring the operator to manually reselect the field. (52260)
• Added investigation logging around Higher Pack Type picking (pack type split) to confirm whether inventory records are matched to the correct Inventory ID during the split. (52259)
• Fixed a case where, under "Retain Allocation During Missing," a partial reallocation did not reduce the original task's quantity by the amount successfully reallocated, leaving the same units represented on two open tasks simultaneously. (52620)
Open API Updates
• Added the receiving-only Lot, Expiry Date, and Production Date flags to the Product Create, Create Bulk, Update, Patch, Patch Bulk, Detail, and List Open API endpoints. (52294)
• Added the LP Dimension Based Volumetric Putaway parameter to the Warehouse create, update and get warehouse Open API endpoints. (52412)
• Added the Maximum SKU Count field to the Warehouse Location Create, Create Bulk, Update, and List Open API endpoints. (52196)
• Fixed an issue where the Work Order Details API returned Expiry Date and Production Date with a time component instead of the configured date-only format. This change is applied via new version of the following endpoint GET /v3.2/WorkOrder/{identifier} (51747)
• Exposed the LP Number (palletCode) field on the Detailed Billing Report Open API endpoint. (52614)
• Added a SKU field to the Detailed Billing Report Open API endpoint for Charge By = SKU fee lines. (37669)
• Added an optional forceUomPackType field to the shipment order line schema on the Update Shipment Order and Update Shipment Order Bulk Open API endpoints, letting users default a line to the product's UOM pack type without needing to supply packType explicitly. (52627)
• Added a Po filter (supporting eq and in operators) to the List Shipment Order Open API endpoint, letting users retrieve shipment orders by a single PO or a list of POs. (52573)
• Added “in” operator support to the Sku filter on the List Products Open API endpoint, letting users retrieve multiple specific products by SKU in a single call. (52125)
• Fixed an issue where the Ship API (POST /v3.1/ShipmentOrder/ship) returned isSuccess: true without actually generating a shipment when "Allow Partial Shipment" is enabled and no shipping task exists. (52251)
