Custom attributes

Overview

The aim of allowing to change the custom attributes is focused on the availability to append / modify custom attributes in the main order entities that MOM handles. The main objective is bringing flexibility to the System integrator to append modify information relevant for the client specific requirements. The entities affected for the custom attributes modification are the following ones:

  • Order (at header and lines level)
  • Return (at header and lines level)
  • Refund (at header level)

The custom attributes modification will follow the append mode.

Restrictions

There are no restrictions in terms of flow or order type. The custom attributes could be changed in whatever lifecycle of the order.

Modify shipping address In the case that the SI would like to modify shipping address when the order is already in logistics stage will need to cancel the shipment request before change it.

Configuration

This feature is enabled/disabled by configuration, both integration and the own UI will be configurable.

For UI privileges the Roles and permission will bring the granularity to enable / disable this functionality for a certain role.

Roles & Permissions

Integration

There are a separate command and event to modify each one of the existing entities.

Order level

  • magento.sales.order_management.update_custom_attributes (command)
  • magento.sales.order_management.custom_attributes_updated (event)

Order Line level

  • magento.sales.order_management.update_line_custom_attributes (command)
  • magento.sales.order_management.line_custom_attributes_updated (event)

Return level

  • magento.postsales.return_management.update_custom_attributes (command)
  • magento.postsales.return_management.custom_attributes_updated (event)

Return Line level

  • magento.postsales.return_management.update_line_custom_attributes (command)
  • magento.postsales.return_management.line_custom_attributes_updated (event)

Refund level

  • magento.postsales.refund_management.update_custom_attributes (command)
  • magento.postsales.refund_management.custom_attributes_updated (event)

Please find below one example of append a custom attribute for a specific return

{
    "return_custom_attributes_modification": {
        "custom_attributes": [
            {
                "name": "newCustomAttribute",
                "value": "value"
            }
        ],
        "order_id": "000000023",
        "rma": "RMA-CS-000000023-1",
        "sales_channel_id": "ST1",
        "user": "Username"
    }
}

When the action will be performed successfully our system will generate and event that could be consumed by whatever interested integration with the name magento.postsales.return_management.custom_attributes_updated with exactly the same content that the previous one.

As this request in a synchronous one, in a case of a failure you will receive the reason of the non-expected behavior in the response message. Please find below one example of failure response

{
    "jsonrpc":"2.0",
    "id":1,
    "error": {
        "message":"Feature with name \u0027updateCustomAttributes\u0027, is not enabled.",
        "code":-32602
    }
}