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 with tradeItem to indicate the primary TradeItem. In addition, the property substituteTradeItems 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 the tradeItemGroup, but not both simultaneously. If you choose to set the tradeItemGroup, 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

Models



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 previous remarks 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:



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: