Skip to main content

Serial numbers

EVA facilitates serial number validation and management by means of several services, which is accompanied by regex validation for an efficient way of checking validity. Once configured, they will be visible throughout the Apps, and Admin Suite.

Work in progress

The serial numbers feature is a work in progress. While most of the back-end work is finished, front ends are currently not ready yet for any serial number requirements other than 0.

Serial number usage

Serial numbers can be used throughout EVA to a degree that best suits your way of working.

This can categorised in the following four ways

  • None: By default EVA does not track serial numbers, meaning practically that a serial number is never required
  • Sales: You can make serial numbers required for your day to day sales and returns
    • Sales (practically meaning Carry out)
    • Returns
    • Click & Collect
    • Ship from Store
  • OwnershipChange: This will make EVA require a serial number scan for any kind of movement that entails a change of ownership
    • Sales, including SFS and C&C
    • Returns
    • shipments, including Interbranch, incoming shipments (POs) and RTS
  • StockMovements: Every single stock movement of a product with a serial number requires verification
    • Sales
    • Returns
    • Shipments
    • Cycle counts
    • Full stock counts
    • Manual stock movements
    • Reservation cleanups
    • (Basically all kinds of stock movements)

To make this more insightful, we've created the following matrix, which shows exactly what EVA will do - or explicitly block - for each flow in combination with each type of owner.

Current OUNon sellableDifferent OUCustomerUnknown SNNo match
SaleAcceptBlockCycle CountAcceptAcceptBlock
Referenced ReturnCycle CountCycle CountBlockAcceptBlockBlock
Unreferenced returnBlockBlockBlockAcceptBlockBlock
Incoming shipmentCycle CountAcceptCycle CountCycle CountBlockBlock
Return to SupplierAcceptAcceptCycle CountCycle CountAcceptBlock
Interstore orderAcceptAcceptCycle CountCycle CountAcceptBlock
Ship from StoreAcceptBlockCycle CountCycle CountAcceptBlock
Click and CollectAcceptBlockCycle CountCycle CountAcceptBlock
Cycle countsAcceptAcceptCycle CountCycle CountAcceptBlock
RepairsCycle CountCycle CountCycle CountAcceptAcceptBlock
CasesCycle CountCycle CountCycle CountAcceptAcceptBlock
Full stock countAcceptAcceptCycle CountCycle CountAcceptBlock
Move stockAcceptAcceptCycle CountCycle CountAcceptBlock
Adjust stockAcceptAcceptCycle CountCycle CountAcceptBlock
ExchangeBlockBlockBlockAcceptAcceptBlock
User bought productsBlockBlockBlockAcceptAcceptBlock

Taking the Sale flow for example:

  • If a serial number is owned by the current OU, EVA allows the sale of the serial number product.
  • If the serial number product is registered on a non-sellable stock label however, EVA blocks the sale.
  • If the serial number product is registered on another OU, EVA will still allow the sale, but ask for a cycle count (since obviously there are some issues with stock)
  • If the serial number product is scanned, but registered to a customer, then the serial number is accepted
  • If the serial number on the product is unknown, but it does match the Regex pattern, the sale is allowed.
  • If the serial number on the product does not match the Regex, the sale is blocked.

Serial number configurations

We start off by creating serial number configurations, for now this is done via designated services.

Admin Suite

Soon serial number configuration will become even easier, when it's available in Admin Suite.

The service in question isCreateSerialNumberConfiguration, which comes with the following properties:

  • Name - has to be unique
  • Description
  • Requirement - specify for what kind of flow a serial number will be required
    • -1 (None)
    • 0 (Sales)
    • 1 (OwnershipChange)
    • 2 (StockMovements)
  • ValidationRegex (optional) - when set, all serial numbers entered for products with this configuration must comply with this regex or be rejected

Additionally, the following list of related services is available for serial number configuration management.

Serial number creation

There are several ways of creating serial numbers, each with their own advantages and use cases.

  • PushSerialNumbers
  • CreateSerialNumber
  • SupplierShipPurchaseOrder

1. PushSerialNumbers

This service allows you to introduce a huge number of existing serial numbers to EVA directly.

Take note that you can directly add an OU and stock label.

Sample PushSerialNumbers
{
"SerialNumbers": [
{
"OrganizationUnitID": 123,
"ProductID": 123,
"SerialNumber": "string",
"StockLabelID": 123
}
]
}

2. CreateSerialNumber

The second way is by creating the serial number product combination in EVA directly, by using CreateSerialNumber.

This simple service requires the following two properties:

  • ProductID
  • SerialNumber

This is best used when you're already on EVA, and want to start taking advantage of serial numbers.

3. Purchase order shipments

You can also introduce serial numbers to EVA by informing your OUs which serial number products are coming their way via purchase order shipments. This is done by means of the SupplierShipPurchaseOrder service.

As in the following sample, all serial numbers can be added to the Lines of the product in the service call. This way all products come with a specific serial number attached.

The subsequent receive goods task then allows the store employee to choose whether to accept the entire shipment, while the detailed inspection is optional. The latter is a must however when the specified quantity does not correspond with the actual quantity.

The OU is now owner of the serial number.

Sample SupplierShipPurchaseOrder

{
// SupplierShipPurchaseOrder
"BackendID": "string",
"BackendSystemID": "string",
"Confirmations": [
{
"BackendID": "string",
"CustomFieldsByBackendID": {
"key": {
"ArrayValues": [
{
"re": "cursion"
}
],
"BlobValue": "fef6dd95-c2a7-4237-805c-afd3257a8057",
"BoolValue": true,
"DateTimeValue": "2024-11-06",
"NumberValue": 123.456,
"StringValue": "string"
}
},
"ExpectedDeliveryDate": "2024-11-06",
"Lines": [
{
"BackendID": "string",
"Barcode": "string",
"CustomID": "string",
"Quantity": 123,
"SerialNumbers": [
"SN123456789a",
"SN123456789b",
"SN123456789c",
"SN123456789d"
]
}
],
"TrackingCode": "string",
"TrackingLink": "string"
}
],
"ID": 123,
"ShipToOrganizationUnitBackendID": "string"
}

Other relevant services

The following shipping services also support serial numbers.

  • ShipPurchaseOrder
  • ShipExternalOrder
  • ReceiveShipment
  • ReceivePurchaseOrderShipment

Flow-specific practices

Sales

In practice, when you've configured your serial number configuration correctly, all the store employee needs to do is scan a serial number to add the product to the active basket.

All serial number products will be unstacked, in other words: displayed as invidual order lines.

The same goes for Click & Collect and Ship from Store.

Returns

Returns are easier than ever: all you have to do is scan the serial number of the product. This will turn the order into a (referenced) return. This makes it especially easy for returns with multiple of the same product.

Keep in mind that if the serial number is unknown to EVA, the return cannot be processed.

This also means that if a customer references an order with the same product, coming to return the product, the product in question can only be returned if the serial number of the product matches the one which the customer returns.

This ensures a customer can for example not buy a new product, intending to return their damaged one.

RTS

With both configuration 1 and 2, the creation of an RTS order requires scanning of serial numbers.

When creating an RTS request via Admin Suite, an RTS order requiring specific serial numbers can be created.

This is especially useful when there are specific batches which need returning.

Receiving goods

An employee can choose whether to fully receive the entire shipment or to perform a detailed inspection, as based on the Shipment:OverrideUserDefinedReceiveMethod setting.

When opting to receive goods via detailed inspection, the user is expected to scan solely the serial numbers.

Mind that this is only possible when the serial numbers were included and matched with the products in the shipment - thus, known in EVA. If this is not the case, the user will have to scan both the product ID and the serial number to match them. To make this easier, quantity selectors are disabled and the expected serial numbers are displayed.

Mind that scanning unexpected serial numbers is not allowed here.

Cycle counting

Usually when it comes to cycle counting, only the serial numbers will have to be scanned, since they're often already known in EVA.

If they're unknown however, they can still be accepted, but only if they match the serial number configuration's Regex pattern.

Cycle count confirmations

Stock movements are only made after completing the cycle count confirmation task.

During this task, users will not be able to make changes as only the deviations are shown and the user will either have to accept deviations or perform a recount.

Stock movement tasks

Moving and adjusting stock is similar to how cycle counting works: you'll have to scan serial numbers explicitly. You cannot add stock directly via quantity selectors.

Pick tasks

When performing a pick task for a C&C or SFS flow, the serial number is registered only to a specific order line upon picking the product. This makes sense considering a product is usually added to a package, which is then sealed, after performing the task.