Order

Configuration

Learn how to configure order types, workflows, order settings, returns, and automation in Omnium. This guide covers all order-related configuration options for administrators and developers.

Order types

The order workflow is built around order types. An order type will be configured with order statuses, each with a set of workflow steps.

An order type could, for instance, be:

  • Online
  • Click And Collect
  • POS Order
  • Subscription order
  • Edge case order

The purpose of separating orders into different order types is to enable multiple workflows. An online order might have three statuses (New, In progress, Sent). Click and Collect orders could have four statuses (New, In progress, Ready for pickup, Picked up). A POS order might only have one status (Completed). There are no limits in Omnium regarding the number of order types, number of statuses, and number of workflow steps.

Order type model

PropertyTypeDescription
Name *stringOrder type name (E.g. Online, ClickAndCollect, Pos, etc)
OrderStatuses *List<OrderStatus>List of available order statuses
EnableEditboolIs order editable in GUI
EnableCreateFromCartboolTrue if it is possible to create order type from cart
DisableWorkflowboolTemporarily disable workflow for order type
DefaultOrderTypeboolTrue if the order is the default. Autofilter by default types in the order list.
DefaultExternalIdProviderstringExternal ID provider (Added to list of external IDs)
OrderNumberTypestringReference to a number sequence for generating order numbers

Order statuses

In the order processing, the order will go through the configured order statuses. Each status will trigger a workflow of each workflow step for the order status. The workflow execution will result in a list of execution results. Read more about order workflow.

Order status model

PropertyTypeDescription
Name *stringOrder status name
Order *intStatus sort order index
WorkflowSteps *List<WorkflowStep>Workflow steps to run
DisplayNamestringAlternative order status name
IsMainFilterboolIs main filter
ConditionstringCondition for showing order status (if more statuses have the same sort order)
IsCanceledStatusboolTrue if orders with this status are canceled
IsDeliveredStatusboolTrue if orders with this status are delivered to the customer
IsInProgressStatusboolTrue if orders with this status are in progress
IsPickedboolTrue if orders with this status are picked. Used by picklist to set the correct status when the order is ready to ship/pick up
ShipmentStatusUpdatestringIf set, the shipments on order will get this status
AvailableStepsList<string>List of available next order statuses
TranslateKeystringTranslation key for order status
PropertiesList<PropertyItem>Custom properties

Workflow steps

PropertyTypeDescription
Name *stringWorkflow step name
Connector *stringConnector to use for workflow step
ActiveboolTrue if step should be run
RunAfterOrderIsSavedboolTrue if step should run after order is saved
ContinueOnErrorboolIf true, the workflow will continue if the current step fails to execute
TranslateKeystringTranslation key for workflow step name
IsInvisibleboolTrue if result should not be shown in GUI
EnabledForMarketsList<string>List of markets where this workflow step should be enabled (all markets available if empty)
DisabledForMarketsList<string>List of market IDs where the workflow step should be disabled (overrides enabled property)

Samples

Simple order type: PoS-order

In the example below, a point of sale order can be added from physical stores. The status is completed upon registration, and no action is taken by Omnium.

"OrderTypes": [
  {
    "Name": "Pos",
    "EnableEdit": false,
    "EnableCreateFromCart": false,
    "OrderStatuses": [
      {
        "Name": "Completed",
        "DisplayName": "Completed",
        "TranslateKey": "PickedUp",
        "IsMainFilter": true,
        "Order": 1,
        "WorkflowSteps": []
      }
    ]
  }
]

Online order with workflow steps

In the example below, an order type with the name "Online" is defined. It has two order statuses, "New" and "Completed":

"OrderTypes": [
  {
    "Name": "Online",
    "EnableEdit": true,
    "EnableCreateFromCart": true,
    "OrderStatuses": [
      {
        "Name": "New",
        "DisplayName": "New",
        "IsMainFilter": true,
        "Order": 1,
        "WorkflowSteps": [
          {
            "Name": "Notification",
            "Active": true,
            "TranslateKey": "WorkflowStep_Notification"
          },
          {
            "Name": "GetOrCreateCustomerFromOrder",
            "Active": true
          }
        ]
      },
      {
        "Name": "Completed",
        "DisplayName": "Completed",
        "TranslateKey": "PickedUp",
        "IsMainFilter": true,
        "Order": 4,
        "Condition": "Pickup",
        "IsCanceledStatus": false,
        "WorkflowSteps": []
      }
    ]
  }
]

Order settings

Order settings control the general behavior of order processing, display options, and data synchronization between orders and customers.

Data enrichment

These settings control how data flows between orders and customer records.

PropertyTypeDefaultDescription
ShouldOrderStoreIdBeSavedOnCustomerboolfalseWhen enabled, the store ID from an order will be saved to the customer record. Useful for tracking which store a customer primarily shops at.
ShouldOrderMarketIdBeSavedOnCustomerboolfalseWhen enabled, the market ID from an order will be saved to the customer record. Helps maintain market association for customers.
ShouldOrderExternalIdsBeSavedOnCustomerboolfalseWhen enabled, external IDs from the order (e.g., from external systems) will be copied to the customer record.
ShouldCustomerExternalIdsBeSavedOnOrderboolfalseWhen enabled, external IDs from the customer record will be copied to new orders. Useful when orders need to reference customer identifiers from external systems.
ShouldOrderPropertiesBeSavedOnCustomerboolfalseWhen enabled, custom properties from orders will be saved to the customer record.
ShouldCustomerPropertiesBeSavedOnOrderboolfalseWhen enabled, custom properties from the customer record will be copied to new orders.

Sample

"OrderSettings": {
  "ShouldOrderStoreIdBeSavedOnCustomer": true,
  "ShouldOrderMarketIdBeSavedOnCustomer": true,
  "ShouldCustomerExternalIdsBeSavedOnOrder": true
}

Display options

These settings control how order information is displayed in the Omnium user interface.

PropertyTypeDefaultDescription
ShowOrderTotalsExTaxboolfalseDisplay order totals excluding tax in the UI. When enabled, total amounts shown will be net values.
ShowOrderLinesExTaxboolfalseDisplay order line prices excluding tax. Affects how individual line items are shown in the order view.
IsInvoiceOriginalboolfalseMark printed invoices as "Original". When enabled, invoices will display an "Original" watermark or label.
HideShipmentLinesOnOrderListboolfalseHide shipment line details in the order list view. Useful for cleaner order lists when shipment details are not needed at a glance.
UneditableExternalIDsboolfalseMake external IDs read-only in the UI. When enabled, users cannot modify external IDs on orders.
IsLockShipmentsOnPickListboolfalseLock shipments from editing when they are part of a pick list. Prevents modifications to shipments that are being processed.
IsAlternativeNameHiddenOnReceiptsboolfalseHide alternative product names on receipts and printed documents.
IsTagsHiddenOnReceiptsboolfalseHide order tags on receipts and printed documents.

Sample

"OrderSettings": {
  "ShowOrderTotalsExTax": true,
  "ShowOrderLinesExTax": true,
  "IsInvoiceOriginal": true,
  "UneditableExternalIDs": true
}

Rounding and discounts

These settings control how amounts are rounded and how discounts are calculated on orders.

PropertyTypeDefaultDescription
IsDiscountAmountRoundingDisabledboolfalseWhen enabled, discount amounts will not be rounded. Use this when you need precise discount calculations without rounding.
IsLineItemAmountRoundingDisabledboolfalseWhen enabled, prices on individual line items will not be rounded. Affects how unit prices and extended prices are calculated.
IsDiscountPercentageLockedByDefaultboolfalseWhen enabled, the discount percentage field will be locked by default when editing order lines. Users must explicitly unlock to change discounts. This helps prevent accidental discount modifications.
IsCreditAmountSubtractedFromRemainingPaymentboolfalseControls how remaining payment is calculated. When enabled, remaining payment = (Authorized - Credited) - NetTotal. When disabled, remaining payment = Authorized - Total. Enable this when credit amounts should reduce what's owed.

Sample

"OrderSettings": {
  "IsDiscountAmountRoundingDisabled": false,
  "IsLineItemAmountRoundingDisabled": false,
  "IsDiscountPercentageLockedByDefault": true,
  "IsCreditAmountSubtractedFromRemainingPayment": true
}

Default values

These settings define default values used when creating or processing orders.

PropertyTypeDefaultDescription
DefaultCurrencyCodestringnullThe default currency code for orders (e.g., "NOK", "SEK", "EUR"). Used when no currency is specified.
DefaultOriginstringnullThe default origin value set on returns, orders, and carts created in Omnium. Helps track where orders originated.
DefaultOmsCartOriginstringnullThe origin value set specifically on carts created from within Omnium's UI. Distinguishes carts created by staff from those created via API or webshop.
DefaultExchangeTermsstringnullDefault exchange/return terms text. Displayed to customers and staff when processing exchanges.
DefaultReplacementOrderTypestringnullThe order type assigned to replacement orders. If not set, replacement orders inherit the type from the original order.
DefaultQuickProcessOrderStatusstringnullThe status to set when using the "Quick Process" feature on orders. Allows one-click advancement to a specific status.
DeleteOrdersThresholdintnullNumber of days after which old orders are deleted (when the cleanup scheduled task is running). Must be 2 years (730 days) or higher for GDPR compliance.

Sample

"OrderSettings": {
  "DefaultCurrencyCode": "NOK",
  "DefaultOrigin": "Omnium",
  "DefaultOmsCartOrigin": "OmniumUI",
  "DefaultExchangeTerms": "Items can be exchanged within 30 days with original receipt.",
  "DefaultReplacementOrderType": "Replacement",
  "DefaultQuickProcessOrderStatus": "Completed",
  "DeleteOrdersThreshold": 1095
}

Validation

These settings control order validation behavior.

PropertyTypeDefaultDescription
IsOrderValidationEnabledboolfalseEnable order validation on update events. When enabled, orders are validated against configured rules when they are modified. Requires a webhook order validator to be configured.
IsOrderValidationOnOpenEnabledboolfalseRun order validation when an order is opened in the UI. Only applies when IsOrderValidationEnabled is true. Provides immediate feedback on order issues.

Order validation requires a webhook validator connector to be configured. See the Order API documentation for setup instructions.

Sample

"OrderSettings": {
  "IsOrderValidationEnabled": true,
  "IsOrderValidationOnOpenEnabled": true
}

Statistics and logging

These settings control order statistics collection and logging behavior.

PropertyTypeDefaultDescription
UseStatsOrderQueuesboolfalseWhen enabled, orders are copied to dedicated statistics queues for analytics processing. Enable this for advanced reporting and analytics scenarios.
ShippingProfitPercentdecimalnullThe profit percentage from shipping subtotals. Used for calculating shipping profit in statistics and reports. For example, set to 15 if your shipping profit margin is 15%.
UseVerboseLoggingboolfalseEnable detailed logging for order operations. Use for troubleshooting but disable in production for performance.
IncludedOrderTypesForRevenueStatsList<string>["Pos", "Online"]Order types included in key numbers, average order values, and revenue statistics. If not set, defaults to "Pos" and "Online".
IncludedOrderStatusesForRevenueStatsList<string>nullOrder statuses included in revenue statistics. When set, only orders in these statuses are counted in revenue reports.
UseOrderStatusLogboolfalseEnable logging of order status changes on shipments. See Order Status Log for details.

Sample

"OrderSettings": {
  "UseStatsOrderQueues": true,
  "ShippingProfitPercent": 15.0,
  "IncludedOrderTypesForRevenueStats": ["Online", "ClickAndCollect"],
  "IncludedOrderStatusesForRevenueStats": ["Completed", "Delivered"],
  "UseOrderStatusLog": true
}

Order Status Log

When UseOrderStatusLog is enabled, Omnium automatically tracks all order status transitions on each shipment. This creates a detailed timeline that records:

  • Status - The order status that was entered
  • Timestamp - UTC timestamp when the status change occurred
  • DurationSincePreviousMs - Time in milliseconds since the previous status (null for the first status)

This data enables fulfillment performance analysis, helping identify bottlenecks in order processing. Use it to measure how long orders spend in each status (e.g., time from "New" to "Picked", or "Packed" to "Shipped").

API access

The status log is available on shipments via the public API:

{
  "shipments": [
    {
      "shipmentId": "SHIP-001",
      "orderStatusLog": [
        {
          "status": "New",
          "timestamp": "2024-01-15T10:30:00Z",
          "durationSincePreviousMs": null
        },
        {
          "status": "Processing",
          "timestamp": "2024-01-15T10:45:00Z",
          "durationSincePreviousMs": 900000
        },
        {
          "status": "Shipped",
          "timestamp": "2024-01-15T14:20:00Z",
          "durationSincePreviousMs": 12900000
        }
      ]
    }
  ]
}

Each status is logged only once per shipment. If an order re-enters a previous status, it will not create a duplicate entry.

Comments

These settings control order comment behavior.

PropertyTypeDefaultDescription
IsNotificationRequirementDisabledForCommentsboolfalseWhen enabled, comments can be saved without selecting a notification method (SMS/email). Disables the requirement to choose how the customer should be notified about comments.
IsUseSalespersonAsSenderboolfalseWhen enabled, public order comments use the order's salesperson as the sender (if available) instead of the system default.
CommentTemplatesList<CommentTemplate>[]Predefined comment templates that can be selected when adding comments to orders. See Comment templates section.

Comment templates

Comment templates allow you to define reusable comment texts.

PropertyTypeDescription
TemplateNamestringDisplay name for the template
PropertiesList<PropertyItem>Template content and configuration

Sample

"OrderSettings": {
  "IsNotificationRequirementDisabledForComments": true,
  "IsUseSalespersonAsSender": true,
  "CommentTemplates": [
    {
      "TemplateName": "OrderShipped",
      "Properties": [
        { "Name": "Subject", "Value": "Your order has shipped" },
        { "Name": "Body", "Value": "Your order is on its way and will arrive within 2-3 business days." }
      ]
    },
    {
      "TemplateName": "OrderDelayed",
      "Properties": [
        { "Name": "Subject", "Value": "Update on your order" },
        { "Name": "Body", "Value": "We're sorry, but your order has been delayed. We expect it to ship within 5 business days." }
      ]
    }
  ]
}

Cancellations

PropertyTypeDefaultDescription
CancelOrderIfAllLineItemsCancelledboolfalseAutomatically cancel the entire order when all line items are cancelled. When enabled, cancelling the last line item will trigger order cancellation.
CancellationTypesList<TranslationKeys>[]List of available cancellation reasons. Provides a standardized list of reasons for order cancellations.

Sample

"OrderSettings": {
  "CancelOrderIfAllLineItemsCancelled": true,
  "CancellationTypes": [
    { "Id": "CustomerRequest", "TranslationKey": "Cancellation_CustomerRequest" },
    { "Id": "OutOfStock", "TranslationKey": "Cancellation_OutOfStock" },
    { "Id": "PaymentFailed", "TranslationKey": "Cancellation_PaymentFailed" },
    { "Id": "FraudSuspected", "TranslationKey": "Cancellation_FraudSuspected" }
  ]
}

Manual workflow steps

You can configure workflow steps that can be manually triggered by users on any order, regardless of the order's current status.

PropertyTypeDescription
AvailableManualWorkflowStepsList<WorkflowStep>List of workflow steps that can be manually executed on orders

Sample

"OrderSettings": {
  "AvailableManualWorkflowSteps": [
    {
      "Name": "ResendConfirmation",
      "Active": true,
      "TranslateKey": "WorkflowStep_ResendConfirmation"
    },
    {
      "Name": "SyncToERP",
      "Active": true,
      "TranslateKey": "WorkflowStep_SyncToERP"
    }
  ]
}

Gift cards

These settings configure gift card creation and management within orders.

PropertyTypeDefaultDescription
GiftCardSkustringnullThe SKU used to identify gift card products in the catalog. Orders containing this SKU will trigger gift card creation.
GiftCardCompletedStatusstringnullThe order status at which gift cards are activated. Gift cards are created but not usable until the order reaches this status.
GiftCardValidMonthsintnullNumber of months a gift card is valid from the purchase date. After this period, the gift card expires and can no longer be redeemed.
GiftCardTemplatestringnullHTML template for gift card emails/PDFs. Supports placeholders for gift card code, amount, and expiry date.

Sample

"OrderSettings": {
  "GiftCardSku": "GIFTCARD",
  "GiftCardCompletedStatus": "Completed",
  "GiftCardValidMonths": 12,
  "GiftCardTemplate": "<html><body><h1>Gift Card</h1><p>Code: {{Code}}</p><p>Amount: {{Amount}}</p><p>Valid until: {{ExpiryDate}}</p></body></html>"
}

Order line settings

These settings control behavior specific to individual order lines.

PropertyTypeDefaultDescription
DefaultPropertiesList<PropertyItem>[]Default properties automatically added to new order lines. Useful for tracking additional data on each line item.
SplitMultibuyPromotionOrderLinesboolfalseWhen enabled, order lines with multi-buy promotions are split into separate lines. For example, a "Buy 2 Get 1 Free" promotion would create 3 separate lines instead of one line with quantity 3.
EnrichDefaultPropertiesFromProductboolfalseWhen enabled, default properties are enriched from the product data.
PropertiesToEnrichOrderLineFromProductList<string>[]List of property names to copy from the product to the order line. Useful for capturing product attributes at the time of order.
PropertiesToExcludeFromConfigurableProductList<string>[]Properties to exclude when creating a configurable product from an existing product. These properties are nulled out on the new configurable product.
PropertiesToEnrichOrderLineFromPriceListList<string>[]Properties to copy from the price list entry to the order line. Only used for configurable products.
IsCancelCommentRequiredboolfalseWhen enabled, a comment is required when cancelling order lines.

Modified reasons

Define the available reasons for modifying order lines (e.g., changing quantity or price).

PropertyTypeDescription
IdstringUnique identifier for the reason
TranslationKeystringTranslation key for displaying the reason in the UI

Order line cancellation types

Define the available reasons for cancelling order lines.

PropertyTypeDescription
IdstringUnique identifier for the cancellation type
TranslationKeystringTranslation key for displaying the type in the UI

Sample

"OrderSettings": {
  "OrderLineSettings": {
    "DefaultProperties": [
      { "Name": "WarehouseLocation", "Value": "" }
    ],
    "SplitMultibuyPromotionOrderLines": true,
    "PropertiesToEnrichOrderLineFromProduct": [
      "Brand",
      "SupplierSku",
      "CountryOfOrigin"
    ],
    "ModifiedReasons": [
      { "Id": "PriceMatch", "TranslationKey": "ModifiedReason_PriceMatch" },
      { "Id": "Damaged", "TranslationKey": "ModifiedReason_Damaged" },
      { "Id": "CustomerRequest", "TranslationKey": "ModifiedReason_CustomerRequest" }
    ],
    "CancellationTypes": [
      { "Id": "OutOfStock", "TranslationKey": "LineCancellation_OutOfStock" },
      { "Id": "CustomerCancelled", "TranslationKey": "LineCancellation_CustomerCancelled" },
      { "Id": "DamagedInWarehouse", "TranslationKey": "LineCancellation_Damaged" }
    ]
  }
}

Return settings

These settings configure how returns are handled in Omnium.

General settings

PropertyTypeDefaultDescription
DefaultUpdateStockboolfalseDefault value for the "Update Stock" checkbox when creating returns. When enabled, returned items are automatically added back to inventory.
HideCreateClaimboolfalseHide the "Create Claim" option in the return dialog. Use when claims functionality is not needed.
HideReturnReasonboolfalseHide the return reason field in the return dialog. Use when tracking return reasons is not required.
HideCommentboolfalseHide the comment field in the return dialog.
HideUpdateStockboolfalseHide the "Update Stock" checkbox in the return dialog. When hidden, the default value is always used.
CreateReturnLabelboolfalseAutomatically create a return shipping label when a return is created. Requires a shipping provider that supports return labels.
DefaultReturnOrderTypestringnullThe order type to assign to return orders. If not set, returns inherit the type from the original order.

Return charges

PropertyTypeDefaultDescription
IsDisableCreditShippingCostboolfalseWhen enabled, shipping costs are never credited on returns. The customer does not receive a refund for the original shipping.
IsAllowOneReturnChargePerOrderboolfalseWhen enabled, only one return fee can be charged per order, regardless of how many return transactions are created.
IsAutoCreditShipmentOnFullReturnboolfalseAutomatically credit the shipping cost when a full return is processed (all items returned).
IsAutoCreditLowestShipmentCostOnFullReturnboolfalseOn full returns, automatically credit only the lowest shipping cost if multiple shipments exist. Use this when you want to refund shipping on full returns but minimize the refund amount.

Warehouse handling

PropertyTypeDefaultDescription
IsReturnSplitOrdersToMainWarehouseboolfalseWhen enabled, returns on split orders (orders with multiple shipments from different warehouses) are directed to the main warehouse instead of the original shipping warehouse.

Return types

Return types define categories of returns with different behaviors.

PropertyTypeDescription
IdstringUnique identifier for the return type
TranslationKeystringTranslation key for displaying the type in the UI
UpdateInventoryboolWhether this return type updates inventory (default: true)
ReturnTypeChargesList<ReturnTypeCharge>Fees associated with this return type, by currency

Return type charges

PropertyTypeDescription
CurrencystringCurrency code (e.g., "NOK", "SEK")
AmountstringFee amount for this return type in the specified currency

Return statuses

Return statuses define the workflow for return processing.

PropertyTypeDescription
NamestringStatus name
OrderintSort order for the status
DisplayNamestringDisplay name shown in UI
TranslateKeystringTranslation key
WorkflowStepsList<WorkflowStep>Workflow steps executed when entering this status

Sample

"OrderSettings": {
  "ReturnSettings": {
    "DefaultUpdateStock": true,
    "HideCreateClaim": false,
    "CreateReturnLabel": true,
    "IsDisableCreditShippingCost": false,
    "IsAllowOneReturnChargePerOrder": true,
    "IsAutoCreditShipmentOnFullReturn": true,
    "DefaultReturnOrderType": "Return",
    "ReturnTypes": [
      {
        "Id": "StandardReturn",
        "TranslationKey": "ReturnType_Standard",
        "UpdateInventory": true,
        "ReturnTypeCharges": [
          { "Currency": "NOK", "Amount": "49" },
          { "Currency": "SEK", "Amount": "59" }
        ]
      },
      {
        "Id": "DefectiveItem",
        "TranslationKey": "ReturnType_Defective",
        "UpdateInventory": false,
        "ReturnTypeCharges": []
      },
      {
        "Id": "WrongItem",
        "TranslationKey": "ReturnType_WrongItem",
        "UpdateInventory": true,
        "ReturnTypeCharges": []
      }
    ],
    "ReturnStatuses": [
      {
        "Name": "New",
        "Order": 1,
        "DisplayName": "New Return",
        "TranslateKey": "ReturnStatus_New",
        "WorkflowSteps": [
          { "Name": "NotifyCustomer", "Active": true }
        ]
      },
      {
        "Name": "Received",
        "Order": 2,
        "DisplayName": "Received",
        "TranslateKey": "ReturnStatus_Received",
        "WorkflowSteps": []
      },
      {
        "Name": "Processed",
        "Order": 3,
        "DisplayName": "Processed",
        "TranslateKey": "ReturnStatus_Processed",
        "WorkflowSteps": [
          { "Name": "ProcessRefund", "Active": true }
        ]
      }
    ]
  }
}

Replacement settings

These settings configure how replacement orders are created and handled.

PropertyTypeDefaultDescription
ReplacementTypesList<TranslationKeys>[]Available types/reasons for creating replacement orders.
IsMetaDataDeletedboolfalseWhen enabled, metadata is cleared from replacement orders. Removes tracking data and other metadata that shouldn't carry over.
IsReplacementOrderUnreplaceableboolfalseWhen enabled, replacement orders cannot have their own replacements created. Prevents chains of replacement orders.
DeletedMetaDataOnOrderLineList<string>[]Specific metadata properties to remove from order lines when creating a replacement.
DeletedMetaDataOnOrderList<string>[]Specific metadata properties to remove from the order when creating a replacement.

Sample

"OrderSettings": {
  "DefaultReplacementOrderType": "Replacement",
  "ReplacementSettings": {
    "ReplacementTypes": [
      { "Id": "DamagedInTransit", "TranslationKey": "Replacement_DamagedInTransit" },
      { "Id": "WrongItemSent", "TranslationKey": "Replacement_WrongItemSent" },
      { "Id": "QualityIssue", "TranslationKey": "Replacement_QualityIssue" }
    ],
    "IsMetaDataDeleted": true,
    "IsReplacementOrderUnreplaceable": true,
    "DeletedMetaDataOnOrder": [
      "OriginalPaymentReference",
      "ShippingTrackingNumber"
    ],
    "DeletedMetaDataOnOrderLine": [
      "SerialNumber",
      "BatchNumber"
    ]
  }
}

Subscription settings

These settings configure subscription order handling.

PropertyTypeDescription
SubscriptionStatusesList<SubscriptionStatus>Available statuses for subscription orders

Subscription statuses follow the same structure as order statuses, allowing you to define a separate workflow for subscription management.


Order automation

Order automation allows you to define rules that automatically transition orders between statuses based on conditions. This is useful for automating order processing workflows.

Automation settings

PropertyTypeDefaultDescription
OrderAutomationsList<OrderStatusAutomation>[]List of automation rules
BackInStockBatchSizeint100Number of orders to process per batch when checking back-in-stock conditions
MaxOrdersToProcessPerRunint1000Maximum number of orders to process in a single automation run
InventoryChangeThresholdint1Minimum inventory change that triggers back-in-stock processing

Automation rules

PropertyTypeDescription
OrderTypestringThe order type this rule applies to
StatusstringThe current status that triggers this rule
ConditionstringThe condition that must be met (see available conditions below)
NewStatusstringThe status to transition to when the condition is met
RunWorkflowboolWhether to run the workflow steps for the new status

Available conditions

ConditionDescription
BackInStockTriggers when all items on the order are back in stock
AllItemsShippedTriggers when all items have been shipped
AllItemsPickedTriggers when all items have been picked
PaymentCapturedTriggers when payment has been fully captured
PaymentAuthorizedTriggers when payment has been authorized

Order automation requires a scheduled task to be configured and running. The automation rules are evaluated periodically by the scheduled task, not in real-time.

Sample

"OrderSettings": {
  "OrderAutomationSettings": {
    "BackInStockBatchSize": 100,
    "MaxOrdersToProcessPerRun": 500,
    "InventoryChangeThreshold": 1,
    "OrderAutomations": [
      {
        "OrderType": "Online",
        "Status": "AwaitingStock",
        "Condition": "BackInStock",
        "NewStatus": "ReadyToShip",
        "RunWorkflow": true
      },
      {
        "OrderType": "Online",
        "Status": "Shipped",
        "Condition": "AllItemsShipped",
        "NewStatus": "Completed",
        "RunWorkflow": true
      },
      {
        "OrderType": "ClickAndCollect",
        "Status": "Picking",
        "Condition": "AllItemsPicked",
        "NewStatus": "ReadyForPickup",
        "RunWorkflow": true
      }
    ]
  }
}

Properties and tags

Default properties

Default properties are automatically added to orders when they are created. These are useful for tracking additional information.

PropertyTypeDescription
NamestringProperty name
ValuestringDefault value
DisplayNamestringDisplay name in UI
DataTypestringData type (String, Number, Boolean, Date)
IsRequiredboolWhether the property is required
IsReadOnlyboolWhether the property is read-only after creation

Highlighted properties

Highlighted properties are displayed prominently on the order detail page. Configure a list of property names to highlight.

"OrderSettings": {
  "HighlightedProperties": [
    "CustomerSegment",
    "Priority",
    "SalesChannel"
  ]
}

Searchable properties (facets)

Facet properties are indexed for searching and filtering in the order list. Add property names that you want to use as search filters.

"OrderSettings": {
  "FacetProperties": [
    "CustomerSegment",
    "Priority",
    "Region"
  ]
}

Tags

Tags provide a way to categorize and filter orders. Configure available tags for your organization.

PropertyTypeDescription
NamestringTag identifier
TranslationKeystringTranslation key for the tag label
"OrderSettings": {
  "TagSettings": [
    { "Name": "VIP", "TranslationKey": "Tag_VIP" },
    { "Name": "Priority", "TranslationKey": "Tag_Priority" },
    { "Name": "GiftOrder", "TranslationKey": "Tag_GiftOrder" },
    { "Name": "B2B", "TranslationKey": "Tag_B2B" }
  ],
  "IsTagsHiddenOnReceipts": false
}

Highlighted external IDs

Configure which external ID types should be displayed prominently on orders and shipments.

"OrderSettings": {
  "HighlightedExternalIds": [
    "WebshopOrderId",
    "ERPOrderId"
  ],
  "HighlightedShipmentExternalIds": [
    "TrackingNumber",
    "CarrierReference"
  ]
}

Complete configuration example

Below is a comprehensive example showing all order settings configured together:

{
  "OrderSettings": {
    "ShouldOrderStoreIdBeSavedOnCustomer": true,
    "ShouldOrderMarketIdBeSavedOnCustomer": true,
    "ShouldCustomerExternalIdsBeSavedOnOrder": true,
 
    "ShowOrderTotalsExTax": false,
    "ShowOrderLinesExTax": false,
    "IsInvoiceOriginal": true,
    "UneditableExternalIDs": false,
    "IsLockShipmentsOnPickList": true,
 
    "IsDiscountAmountRoundingDisabled": false,
    "IsDiscountPercentageLockedByDefault": true,
    "IsCreditAmountSubtractedFromRemainingPayment": true,
 
    "DefaultCurrencyCode": "NOK",
    "DefaultOrigin": "Omnium",
    "DefaultOmsCartOrigin": "OmniumUI",
    "DefaultReplacementOrderType": "Replacement",
    "DefaultQuickProcessOrderStatus": "Completed",
    "DeleteOrdersThreshold": 1095,
 
    "IsOrderValidationEnabled": true,
    "IsOrderValidationOnOpenEnabled": false,
 
    "UseStatsOrderQueues": true,
    "ShippingProfitPercent": 15.0,
 
    "CancelOrderIfAllLineItemsCancelled": true,
    "CancellationTypes": [
      { "Id": "CustomerRequest", "TranslationKey": "Cancellation_CustomerRequest" },
      { "Id": "OutOfStock", "TranslationKey": "Cancellation_OutOfStock" }
    ],
 
    "GiftCardSku": "GIFTCARD",
    "GiftCardCompletedStatus": "Completed",
    "GiftCardValidMonths": 12,
 
    "OrderLineSettings": {
      "SplitMultibuyPromotionOrderLines": false,
      "PropertiesToEnrichOrderLineFromProduct": ["Brand", "SupplierSku"],
      "ModifiedReasons": [
        { "Id": "PriceMatch", "TranslationKey": "ModifiedReason_PriceMatch" }
      ],
      "CancellationTypes": [
        { "Id": "OutOfStock", "TranslationKey": "LineCancellation_OutOfStock" }
      ]
    },
 
    "ReturnSettings": {
      "DefaultUpdateStock": true,
      "CreateReturnLabel": true,
      "IsAllowOneReturnChargePerOrder": true,
      "IsAutoCreditShipmentOnFullReturn": true,
      "ReturnTypes": [
        {
          "Id": "StandardReturn",
          "TranslationKey": "ReturnType_Standard",
          "UpdateInventory": true,
          "ReturnTypeCharges": [
            { "Currency": "NOK", "Amount": "49" }
          ]
        }
      ]
    },
 
    "ReplacementSettings": {
      "ReplacementTypes": [
        { "Id": "DamagedInTransit", "TranslationKey": "Replacement_DamagedInTransit" }
      ],
      "IsMetaDataDeleted": true,
      "IsReplacementOrderUnreplaceable": true
    },
 
    "TagSettings": [
      { "Name": "VIP", "TranslationKey": "Tag_VIP" },
      { "Name": "Priority", "TranslationKey": "Tag_Priority" }
    ],
 
    "HighlightedProperties": ["CustomerSegment", "Priority"],
    "FacetProperties": ["CustomerSegment"],
    "HighlightedExternalIds": ["WebshopOrderId"],
 
    "DefaultProperties": [
      {
        "Name": "CustomerSegment",
        "DisplayName": "Customer Segment",
        "DataType": "String"
      }
    ]
  }
}