Skip to content

Developers

Items

Each Item can optionally have a Country of Origin specified. Countries can be retrieved using these endpoints:

Countries End Points

Item Detail

Item Detail

Lifecycle and availability

An item's lifecycle and availability are separate concepts. Integrations can send and update both values to retain the business context of an item's product life and whether it may be selected for new work.

Property Values Purpose
LifecycleStatus Planned, Active, Sunsetting, EndOfLife, Retired Describes the item's position in its product life.
AvailabilityStatus Available, Limited, Restricted, Unavailable Describes the current selection or supply condition.
AvailabilityEffectiveUTC UTC date and time When the availability decision takes effect.
AvailabilityReason Text Explains the availability decision.
SuccessorItemID Item ID Identifies a replacement catalog item when one exists.
StatusUpdatedUTC UTC date and time Records when lifecycle or availability data last changed.

IsActive remains a separate legacy catalog field. It continues to support active/deleted catalog behavior and is not calculated from LifecycleStatus or AvailabilityStatus. Send the lifecycle and availability values explicitly; do not infer one from the other or from IsActive.

For example, an item in Sunsetting lifecycle can remain Available while existing demand is supported, or be Limited for a last-time buy. An EndOfLife item commonly has Unavailable availability and a SuccessorItemID, but those values are stored independently.

Filtering and views

The Items list accepts lifecycle and availability filters independently. Each filter is an exact value match; omit it, or send an empty value, to include every value for that criterion. When both filters are supplied, the list returns items that meet both conditions. The selected filters are retained for the list session.

The item list is intended to find items by these values. Item detail responses and the Items detail view include LifecycleStatus, AvailabilityStatus, AvailabilityEffectiveUTC, AvailabilityReason, SuccessorItemID, and StatusUpdatedUTC, so consumers can show both the short status and its effective date, reason, and replacement item. AvailabilityReason is shown in the detail view rather than the list.

Item Compatibility

Item compatibility is managed through the ItemCompatibilityController.

Routing

The feature uses a structured routing pattern where the action verb is typically at the end of the URL:

  • List/Detail: /Items/{BaseItemID}/Compatibility/Detail
  • Add: /Items/{BaseItemID}/Compatibility/Add
  • Relationship Detail: /Items/{BaseItemID}/Compatibility/{CompatibilityID}/Relationship
  • Edit: /Items/{BaseItemID}/Compatibility/{CompatibilityID}/Edit
  • Delete: /Items/{BaseItemID}/Compatibility/{CompatibilityID}/Delete (POST)
  • Search: /Items/Compatibility/SearchItems (used for AJAX searching)

Implementation Details

  • POST Actions: The Add and Edit POST actions accept individual parameters (CompatibleItemID, CompatibilityType, NewNote) rather than a complex view model, simplifying model binding and front-end implementation.
  • Search: The item search functionality uses a restricted result set (max 50 items) for better performance and usability.