Order Management System (OMS) reached end of support in October 2024.
The documentation available here is intended for historical reference only and is not maintained.
For other Commerce-related documentation, see Adobe Commerce Documentation.

Services

The Services functionality in your Order Management System (OMS) allows a merchant to define product options for orders or order lines. For example, you can provide services such as gift wrap or engraving of a product.

This functionality is not limited by any store or warehouse stock; It is considered to be available as unlimited stock and the merchant can define anything that they want as a service.

An out-of-the-box Connector only supports gift wrap as a service. However, in your OMS you can set up anything as a service because it is passed via custom attributes in the shipment request.

Configure functionality

Services are created in the catalog as SKU, or product types, but you can enable a sourcing rule in the System Integrator (SI) Portal so that sources can filter these services. This is helpful when a warehouse cannot engrave or gift wrap an order, so an order with this service will never go to the warehouse.

To enable this functionality to appear in the OMS Admin Sources view:

  1. Navigate to Config > Stock Aggregates > Sourcing in your SI Portal.
  2. Enable the Filter Sources That Don’t Provide Required Service(s) option.

    Enabled option in SI Portal

    Filter Sources That Don't Provide Required Service(s)

These definitions are enabled and configured in your SI Portal, which is not yet accessible externally. Contact Magento Support for assistance.

Once this filter is enabled in the SI Portal, services appear in the OMS Admin Sources page:

Supported services

Supported services

You can also assign services via the API endpoint using the following specifications:

See the Magento Integration Bus page for more information.

If a source has no service capability the source engine is not able to find a suitable sourcing option. Returns a FilterSourceProvidesRequiredServices reason.

Limitations

This services functionality has limitations:

  • It is not supported in store fulfillment processes like In Store Pick Up (ISPU), Ship to Store (STS), or Ship from Store (SFS).
  • Even though you can use a virtual product with a service, it is not a common case.
  • The Connector, out-of-the-box, only supports gift wrap as a service.
  • In order to be associated to a specific line you need to relate it to the parent_line_number, then the service line is included in the same shipment request as the parent line.
  • If the service is applied to the entire order and the order is split into two different sources, both generated shipment requests will include the service line.
  • It could include a service fee support. You can manage service fees for customizations at the order and order line level (such as engraving or seaming).

Examples

Order line with gift wrap

            {
                "id": "172888",
                "line_number": 2,
                "product_type": "SERVICE",
                "sku": "90007823",
                "product_name": "Gift Wrap",
                "parent_line_id": "172886",
                "parent_line_number": 1,
                "shipping_address_reference": "178826",
                "amount": {
                    "net_amount": 0,
                    "gross_amount": 0,
                    "tax_amount": 0,
                    "tax_rate": 20,
                    "taxes": [
                        {
                            "type": "VAT",
                            "amount": 0,
                            "rate": 20
                        }
                    ]
                },
    }

Order line with engraving

{
                "id": "172957",
                "line_number": 2,
                "product_type": "SERVICE",
                "sku": "ENGRAVING01",
                "product_name": "ENGRAVING SERVICE",
                "parent_line_id": "172956",
                "parent_line_number": 1,
                "shipping_address_reference": "178870",
                "amount": {
                    "net_amount": 0,
                    "gross_amount": 0,
                    "tax_amount": 0,
                    "tax_rate": 20,
                    "taxes": [
                        {
                            "type": "VAT",
                            "amount": 0,
                            "rate": 20
                        }
                    ]
                },
          }