Release notes - Suppliers API
This page will show the changes made in the suppliers 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.
OrderRequest - New Property: isDeleted
A new property, isDeleted
, has been added to the OrderRequest model. This property indicates whether the order request has been marked as deleted.
Affected models:
Contract - TradeItemGroups
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
Plant passports - PDF
Added new routes to download PlantPassport PDFs based on one or multiple Batches or a SalesOrder. The routes support downloading PDFs by providing batchIds
or a salesOrderId
, as well as by salesChannelOrderId
for SalesOrders.
Affected routes:
TradingTerms
The model TradingTerms, along with its properties tradeInstrument
and salesChannels
, has been removed from all related models.
Affected models:
Delivery Order Auction - Endpoint and Model Updates
The endpoints AddDeliveryOrderAuction and DeleteDeliveryOrderAuction have been respectively renamed to AddClockDeliveryOrder and DeleteClockDeliveryOrder to better reflect its purpose.
Additionally, the endpoint AddFulfillmentRequest has been removed.
The model DeliveryOrderAuction has undergone changes. A new option has been introduced to add fulfillment requests based on a TradeItem instead of a Batch. When using the tradeItemFulfillmentRequest
property as an option, Floriday will automatically create the Batch. It's important to note that only one of the two properties, tradeItemFulfillmentRequest
or batchFulfillmentRequest
, can be used at a time.
Furthermore, in the DeliveryOrderAuction model, the property remarks
has been split into two new properties:
deliveryRemark
: This property serves as the main functionality of the previousremarks
property.auctionRemark
: A new property introduced to add a remark specifically for the auctioneer.
Both deliveryRemark
and auctionRemark
were used for the same flow, but the deliveryRemark
in a FulfillmentOrder overrides the original remark for the auctioneer.
Affected routes:
Affected models:
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 - Non nullable properties
We've updated certain properties in the SalesOrder model to be non-nullable. These properties were previously nullable but were always returned with a value.
Affected models:
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}.
VbnPackageCode - Updated range
Changed the [Range] attribute for all the vbnPackageCode
properties from 100-999 to 1-999.
Affected models:
- AddClockSalesFromNurserySupplyLine
- ContractPackingConfiguration
- CustomPackage
- SalesOrderMutables
- Package
- PackingConfigurationBase
SalesOrder - 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. Instead, customers can add an additional service of type LABEL by adding a CustomerSticker to an existing order.
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 supplier, you can retrieve your own SupplierTradeSetting using the GetSupplierTradeSettingFromOrganization endpoint. Additionally, cou can access CustomerTradeSetting via the sync endpoint GetCustomerTradeSettingsBySequenceNumber.
Retrieving a CustomerTradeSetting 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