Release notes - Customers API
This page will show the changes made in the customers API version 2024v1.
New changes are added at the top of the page and include a summary of the modified models. A summary of all model changes can be found here.
Adjustable CatalogPrices for the current week
Floriday is setting up a pilot that will allow the use of adjustable catalog prices in the current week. These changes will have impact on the current business rules that are set up for the catalog supply and will affect the current pricing rules across all API versions.
The weekly prices will no longer be locked for the current week. Instead, the supplier will be allowed to change the price of a supply line once per 24 hours in the current week. Afterwards, the price cannot be changed again until 24 hours have passed.
The SupplyLine and WeeklyBaseSupply models will be modified with a new date time property pricePerPieceLastModified
to indicate the last price change.
Changed models:
Range Constraint Added to limit Properties
A range constraint has been added to all limit
query parameters across sync endpoints. The minimum limit is now set to 1, and the default value is the maximum limit. Setting the limit to 0 or above the default value will result in an invalid call. In previous versions, the limit was overwritten to the default when it went above the maximum.
Plant passports - PDF
Added new routes to download PlantPassport PDFs based on a SalesOrder. The routes support downloading PDFs by providing a salesOrderId
, as well as by salesChannelOrderId
for SalesOrders.
Affected routes:
BlanketOrder - Model changes
AddBlanketOrder
- BlanketOrderCreate -> AddBlanketOrder
- BlanketOrderLines model EditBlanketOrderLine
EditBlanketOrderLine (new)
- AdditionalServiceIds minlength 1 still optional
- PackingConfiguration model PackingConfigurationBase
- SupplierOrganizationId removed
EditContractLineTradeItem
- PackingConfiguration model PackingConfigurationBase
EditContractPackingConfiguration Removed
BlanketOrder
- InitiatedBy Removed
- IsInitiatedBySupplier (new)
- IsLastModifiedBySupplier (new)
- salesChannelInterface (new)
- ApprovalStatus Removed
- IsDeleted
- Status (new)
BlanketOrderLine
- PricePerPiece nullable
- PackingConfiguration model PackingConfigurationBase
- Incoterm (new)
- LiesOutsideOfContractLinePeriodMargins (new)
BlanketOrderStatus
- approvalStatus
- declineDescription
- IsDeleted
ContractPackingConfiguration Removed
Contract - Model Rewrite and New Features
The contract models have undergone significant rewriting with various changes. Although not all changes are depicted here, you can check the Model, enums and routes changes for all model changes as linked below this topic.
String properties that are required now have a minimum length of 1 to ensure non-empty values. However, if the string property was optional, a null value is still allowed.
Some properties have been removed from the model and replaced with new enclosing models to better group related properties. For example, the Delivery model has been added to contain fields like deliveryConditionId
, despatchWarehouseId
, and defaultDeliveryLocationGln
, providing clearer linkage with delivery information.
AddContract, EditContract and Contract changes and features
When creating or editing a contract with AddContract or EditContract, several new features have been introduced:
allowTradeItemVariants
: This option allows trade item variants to be enabled.subSupplierOrganizationIds
: Enables specification of sub-supplier organization IDs.customerOrganizationId
: has been removed from EditContract, it is no longer possible to edit the customer when the contract has been created.- As mentioned above
delivery
has been added to group related properties. - A contract must now contain at least 1
contractLine
.
EditContractLine and ContractLine changes and features
The ContractLine model has undergone changes:
- The property
ContractLineTradeItems
has been removed and replaced withtradeItem
to indicate the primary TradeItem. In addition, the propertysubstituteTradeItems
has been introduced as a temporary solution to indicate possible substitutes that can be used. This property is specifically designed for older contracts that do not utilize the new TradeItemGroup workflow. - When using EditContractLine, you have the option to set either the
tradeItem
or thetradeItemGroup
, but not both simultaneously. If you choose to set thetradeItemGroup
, the primary trade item of this group will be automatically selected as the primary trade item in the ContractLine model.
ContractLinePeriod margin changes
The margin properties for EditContractLinePeriod and ContractLinePeriod have been replaced with two new models:
Property numberOfPiecesMargin
uses the ContractLinePeriodBandwidthNumberOfPieces model and property pricePerPieceMargin
uses the ContractLinePeriodBandwidthPricePerPiece. Both properties are optional to indicate if a margin is being used. Within the model you can either have a percentage margin or a pieces margin, only one can be used for the lower and upper margin.
Affected models:
Commands
- AddContract
- EditContractDelivery
- EditContract
- EditContractLine
- EditContractLinePeriod
- EditContractLinePeriodBandwidthNumberOfPieces
- EditContractLinePeriodBandwidthPricePerPiece
- EditContractLineTradeItem
- EditContractPackingConfiguration
Models
- Contract
- ContractDelivery
- ContractContractLine
- ContractContractLineAdditionalService
- ContractLinePeriod
- ContractLinePeriodBandwidthNumberOfPieces
- ContractLinePeriodBandwidthPricePerPiece
- ContractLineTradeItem
- ContractStatus
- ContractVersion
ContractTradeItemGroup
We've introduced a new model called ContractTradeItemGroup, which enables suppliers to create groups of trade items. This model serves as an indication for their contract line, offering greater flexibility in contract specifications. Instead of linking a single trade item, you now have the option to link an entire group.
In the ContractLine, the primary trade item from the group will be utilized as the primary trade item. However, both the supplier and customer have the option to create a blanket order based on any trade item within the connected group when one is available.
It's important to note that the ContractTradeItemGroup does not have its own versioning. Instead, it is always linked to the latest changes. Suppliers can freely edit the group to switch out trade items, with the exception of the primary trade item, which cannot be changed as long as the group is linked to an active contract.
Additionally, the ContractTradeItemGroup will have its own endpoints for fetching by ID and fetching by sequence number, as well as a method to retrieve the maximum sequence number.
Affected routes:
- ContractTradeItemGroup
Affected models:
- ContractTradeItemGroup
- ContractTradeItemgroupTradeItem
ClockPresalesSupplyLine - Model changes
The ClockPresalesSupplyline model has undergone updates, including the addition of new properties, removal of obsolete properties, and updating certain properties to be non-nullable. Previously, these properties were nullable but always returned with a value.
Affected models:
SalesOrder and BlanketOrder - Restriction on additional service of type LABEL
A validation rule has been implemented to restrict the direct addition of an additional service of type LABEL when creating a SalesOrder or BlanketOrder. Instead, customers can add an additional service of type LABEL by adding a CustomerSticker to an existing order.
Unexpected enum value - Response detail
We've enhanced the response detail to provide additional information when an unexpected enum value is encountered in a call. The updated message will now include the property name associated with the unexpected value.
The message contains an invalid enum '{EnumName}.{EnumValue}' in combination with {PropertyName}.
Validation on DateTime and Guid Properties
Extra validation has been implemented on all DateTime and Guid properties to disallow default values. When a property is optional, the null value is still permitted. However, if a value is provided, it must not be a default value for the DateTime "0001-01-01T00:00:00" or Guid property "00000000-0000-0000-0000-000000000000".
PurchaseOrderRequest - Included services
A new property, includedServices
, has been added to the PurchaseOrderRequest model. This property is an optional list with a minimum length of 1. Customers can utilize this property to indicate whether the matching supply line or created order request has the included service STICKERING.
If no matches are found on the supply line, the PurchaseOrder will receive the actionRequired
status of INCORRECT_INCLUDED_SERVICES. Once the order request has been accepted by the supplier, the newly created SalesOrder will contain the specified includedService.
Affected models:
- AddPurchaseOrderRequest
Affected enums:
- ActionRequired
Trade settings
We've added trade settings as new options to access via the API. These settings are divided into two models CustomerTradeSetting and SupplierTradeSetting. They include specific settings, such as the automatic acceptance of correction requests automaticallyAcceptsCorrectionRequests
, as well as operational practices, like specifying how a customer operates within their company, such as whether they utilize contracts usesContracts
.
As customer, you can retrieve your own CustomerTradeSetting using the GetCustomerTradeSettingFromOrganization endpoint. Additionally, cou can access SupplierTradeSetting via the sync endpoint GetSupplierTradeSettingsBySequenceNumber.
Retrieving a SupplierTradeSetting for a specific organization with no trade settings will result in a default model. The sequence
will be set to 0, while the lastModified
will be null, signifying that no modifications have been made.
New models:
New routes:
InvoiceLine - New properties
New properties are added to InvoiceLine.
Affected models:
Updated 6 months ago