Order Edits allow you to make financial changes to the purchase agreement after the Order has been placed.

Order Edits are entities which can hold one or more proposed financial changes to an Order. Before being applied, the Order Edit can be previewed to understand how the changes will affect an Order.

If no financial aspect of an Order should be changed, you can directly update the Order using update actions and the Update Order endpoint.
If the Order contains no deliveries or payments, you can alternatively replicate the Order as a new Cart.
For more information, see Update an Order.
A maximum of 100 000 OrderEdits can exist per Project. This is a soft limit that can be increased per Project after a performance impact review. See Limit increase guidance.

Representations

Representations are JSON objects submitted or received as payload to API requests or responses.

OrderEdit

id
String

Unique identifier of the Order Edit.

version
Int

Current version of the Order Edit.

key
String

User-defined unique identifier of the Order Edit.

MinLength2MaxLength256Pattern^[A-Za-z0-9_-]+$
resource
Reference to the Order updated with this edit.
stagedActions
Update actions applied to the Order referenced by resource.
result

For applied edits, it's a summary of the changes on the Order. For unapplied edits, it's a preview of the changes.

comment
String

User-defined information regarding the Order Edit.

custom

Custom Fields of the Order Edit.

createdAt

Date and time (UTC) the Order Edit was initially created.

createdByBETA

IDs and references that created the OrderEdit.

lastModifiedAt

Date and time (UTC) the Order Edit was last updated.

lastModifiedByBETA

IDs and references that last modified the OrderEdit.

OrderEditDraft

key
String

User-defined unique identifier for the Order Edit.

MinLength2MaxLength256Pattern^[A-Za-z0-9_-]+$
resource
Reference to the Order updated with this edit.
stagedActions
Update actions to apply to the Order referenced in resource. Cannot be updated if the edit has been applied.
comment
String

User-defined description regarding the Order Edit.

dryRun
Boolean
Set to true if you want to preview the edited Order first without persisting it (dry run). A dry run allows checking for potential errors when trying to apply the stagedActions.
Order API Extensions, if any, are also called in dry runs.
Defaultfalse
custom

Custom Fields for the Order Edit.

OrderEditPagedQueryResponse

PagedQueryResult with results containing an array of OrderEdit.
limit
Int
Default20Minimum0Maximum500
offset
Int
Number of elements skipped.
Default0Maximum10000
count
Int

Actual number of results returned.

total
Int
Total number of results matching the query. This number is an estimation that is not strongly consistent. This field is returned by default. For improved performance, calculating this field can be deactivated by using the query parameter withTotal=false. When the results are filtered with a Query Predicate, total is subject to a limit.
results
Array of OrderEdit
OrderEdits matching the query.

OrderEditResult

Indicates the current state of an Order Edit. The result field cannot be queried when the state is PreviewSuccess or PreviewFailure as these results are dynamically generated.

OrderEdit NotProcessed

Indicates that the edit has not been applied or processed in any way.

type
String
"NotProcessed"

This field is queryable.

OrderEdit PreviewSuccess

The data is not persisted but is dynamically pulled by dry-running the update actions from stagedActions on the current version of the related Order, not from the Order version at the time the OrderEdit was created. Therefore, it cannot be queried.
type
String
"PreviewSuccess"
preview
A preview of the edited Order as it will be after all stagedActions (incl. optional Order API Extensions) are applied.
messagePayloads
Array of MessagePayload

Messages that will be generated if the edit is applied.

If Reference Expansion is used on the resource field, a race condition can occur if the Order is updated after the preview is calculated but before resource is expanded. In that case, the preview is based on an older version of the Order.
This rare case can be detected when the messagePayloads contains an OrderEditApplied Message with a different Order version than the expanded Order in excerptBeforeEdit.

OrderEdit PreviewFailure

Result of a failed application of stagedActions to the Order. The data is calculated on the fly and is not queryable.
type
String
"PreviewFailure"
errors
Array of ErrorObject

Errors returned.

OrderEdit Applied

Result of a successful application of stagedActions to the Order.
type
String
"Applied"

This field is queryable.

appliedAt

Date and time (UTC) the Order was edited.

excerptBeforeEdit

Prices of the Order before the edit.

excerptAfterEdit

Prices of the Order after the edit.

OrderExcerpt

Excerpt of the Order extracting the total and the taxed price.

version
Int

Current version of the Order.

totalPrice

Total price of the Order.

taxedPrice

Taxed price of the Order.

OrderMessagePayload

An Order Message payload without the common Message fields apart from the Message type.

Get OrderEdit

Get OrderEdit by ID

GET
https://api.{region}.commercetools.com/{projectKey}/orders/edits/{id}
Retrieves an OrderEdit with the provided id.
OAuth 2.0 Scopes:
view_order_edits:{projectKey}
Path parameters:
region
String
Region in which the Project is hosted.
projectKey
String
key of the Project.
id
String
id of the OrderEdit.
Query parameters:
expand
The parameter can be passed multiple times.
Response:
200

OrderEdit

as
application/json
Request Example:cURL
curl --get https://api.{region}.commercetools.com/{projectKey}/orders/edits/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 
200 Response Example: OrderEditjson
{
  "id": "df20c5ea-b114-4aab-b330-740b0e9f3099",
  "version": 1,
  "resource": {
    "typeId": "order",
    "id": "ed454f4e-c43a-485f-a86f-046c691b1363"
  },
  "key": "order-edit-key",
  "createdAt": "2018-10-04T15:22:31.639Z",
  "lastModifiedAt": "2018-10-04T15:22:31.639Z",
  "stagedActions": [
    {
      "action": "setCustomerEmail",
      "email": "user@localhost"
    }
  ],
  "result": {
    "preview": {
      "type": "Order",
      "id": "ed454f4e-c43a-485f-a86f-046c691b1363",
      "version": 3,
      "customerId": "bf5d96ce-4704-45b2-8842-d409dd34cdfc",
      "customerEmail": "user@localhost",
      "createdAt": "2018-05-15T12:40:17.301Z",
      "lastModifiedAt": "2018-05-15T12:40:17.301Z",
      "totalPrice": {
        "type": "centPrecision",
        "currencyCode": "EUR",
        "centAmount": 3970,
        "fractionDigits": 2
      },
      "taxedPrice": {
        "totalNet": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 3336,
          "fractionDigits": 2
        },
        "totalGross": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 3970,
          "fractionDigits": 2
        },
        "taxPortions": [
          {
            "rate": 0.19,
            "amount": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 634,
              "fractionDigits": 2
            },
            "name": "19% MwSt"
          }
        ]
      },
      "country": "DE",
      "orderState": "Open",
      "syncInfo": [],
      "returnInfo": [],
      "refusedGifts": [],
      "shippingInfo": {
        "shippingMethodName": "DHL",
        "price": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 570,
          "fractionDigits": 2
        },
        "shippingRate": {
          "price": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 570,
            "fractionDigits": 2
          },
          "tiers": []
        },
        "taxRate": {
          "name": "19% MwSt",
          "amount": 0.19,
          "includedInPrice": true,
          "country": "DE",
          "id": "rrsT1Jbw",
          "subRates": []
        },
        "taxCategory": {
          "typeId": "tax-category",
          "id": "fdeb9625-10f8-476c-a549-5d5c6d1bd412"
        },
        "deliveries": [],
        "shippingMethod": {
          "typeId": "shipping-method",
          "id": "d18b3f77-92de-4893-b6e3-b5c9c8c1eb96"
        },
        "taxedPrice": {
          "totalNet": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 479,
            "fractionDigits": 2
          },
          "totalGross": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 570,
            "fractionDigits": 2
          },
          "taxPortions": [
            {
              "rate": 0.1,
              "amount": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 634,
                "fractionDigits": 2
              },
              "name": "Bla"
            }
          ]
        },
        "shippingMethodState": "MatchesCart"
      },
      "taxMode": "Platform",
      "inventoryMode": "None",
      "taxRoundingMode": "HalfEven",
      "taxCalculationMode": "LineItemLevel",
      "origin": "Customer",
      "lineItems": [
        {
          "id": "31099128-dba8-40a7-bb6c-d12857149ff8",
          "productId": "d6d0c517-572e-4d26-b80e-ffce825334a4",
          "name": {
            "en": "GIRLS CREW"
          },
          "productType": {
            "typeId": "product-type",
            "id": "6dc75271-b0e5-4ae9-9158-faa1fff65f7b",
            "version": 2
          },
          "productSlug": {
            "en": "girls-crew1522841378290"
          },
          "variant": {
            "id": 1,
            "sku": "sku_GIRLS_CREW_variant1_1522841378290",
            "prices": [
              {
                "value": {
                  "type": "centPrecision",
                  "currencyCode": "EUR",
                  "centAmount": 3400,
                  "fractionDigits": 2
                },
                "id": "b5595b13-bbb8-44ab-a2e2-89c18edf1b22"
              }
            ],
            "images": [
              {
                "url": "https://www.commercetools.com/cli/data/253234387_1.jpg",
                "dimensions": {
                  "w": 1400,
                  "h": 1400
                }
              }
            ],
            "attributes": [],
            "assets": []
          },
          "price": {
            "value": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3400,
              "fractionDigits": 2
            },
            "id": "b5595b13-bbb8-44ab-a2e2-89c18edf1b22"
          },
          "quantity": 1,
          "discountedPricePerQuantity": [],
          "taxRate": {
            "name": "19% MwSt",
            "amount": 0.19,
            "includedInPrice": true,
            "country": "DE",
            "id": "rrsT1Jbw",
            "subRates": []
          },
          "state": [
            {
              "quantity": 1,
              "state": {
                "typeId": "state",
                "id": "60a64e06-b4e8-4205-a0f3-94bc203e2d6d"
              }
            }
          ],
          "priceMode": "Platform",
          "totalPrice": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 3400,
            "fractionDigits": 2
          },
          "taxedPrice": {
            "totalNet": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 2857,
              "fractionDigits": 2
            },
            "totalGross": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3400,
              "fractionDigits": 2
            },
            "taxPortions": [
              {
                "rate": 0.1,
                "amount": {
                  "type": "centPrecision",
                  "currencyCode": "EUR",
                  "centAmount": 634,
                  "fractionDigits": 2
                },
                "name": "Bla"
              }
            ]
          },
          "lineItemMode": "Standard",
          "perMethodTaxRate": [],
          "taxedPricePortions": []
        }
      ],
      "customLineItems": [],
      "transactionFee": true,
      "discountCodes": [],
      "cart": {
        "typeId": "cart",
        "id": "6c97e772-9769-4419-8adc-501c7c5b6088"
      },
      "shippingAddress": {
        "id": "51RkSh-E",
        "salutation": "Mr",
        "firstName": "user",
        "lastName": "lastname",
        "streetName": "streetname",
        "streetNumber": "2",
        "postalCode": "101256",
        "city": "Berlin",
        "country": "DE",
        "building": "34",
        "pOBox": "12344",
        "email": "user@example.com"
      },
      "billingAddress": {
        "id": "51RkSh-E",
        "salutation": "Mr",
        "firstName": "user",
        "lastName": "lastname",
        "streetName": "streetname",
        "streetNumber": "2",
        "postalCode": "101256",
        "city": "Berlin",
        "country": "DE",
        "building": "34",
        "pOBox": "12344",
        "email": "user@example.com"
      },
      "itemShippingAddresses": [],
      "shipping": [],
      "shippingMode": "Single"
    },
    "messagePayloads": [
      {
        "email": "user@localhost",
        "type": "OrderCustomerEmailSet"
      },
      {
        "edit": {
          "typeId": "order-edit",
          "id": "df20c5ea-b114-4aab-b330-740b0e9f3099"
        },
        "result": {
          "type": "Applied",
          "appliedAt": "2018-10-04T15:29:14.091Z",
          "excerptBeforeEdit": {
            "totalPrice": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3970,
              "fractionDigits": 2
            },
            "taxedPrice": {
              "totalNet": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3336,
                "fractionDigits": 2
              },
              "totalGross": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3970,
                "fractionDigits": 2
              },
              "taxPortions": [
                {
                  "rate": 0.19,
                  "amount": {
                    "type": "centPrecision",
                    "currencyCode": "EUR",
                    "centAmount": 634,
                    "fractionDigits": 2
                  },
                  "name": "19% MwSt"
                }
              ]
            },
            "version": 1
          },
          "excerptAfterEdit": {
            "totalPrice": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3970,
              "fractionDigits": 2
            },
            "taxedPrice": {
              "totalNet": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3336,
                "fractionDigits": 2
              },
              "totalGross": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3970,
                "fractionDigits": 2
              },
              "taxPortions": [
                {
                  "rate": 0.19,
                  "amount": {
                    "type": "centPrecision",
                    "currencyCode": "EUR",
                    "centAmount": 634,
                    "fractionDigits": 2
                  },
                  "name": "19% MwSt"
                }
              ]
            },
            "version": 3
          }
        },
        "type": "OrderEditApplied"
      }
    ],
    "type": "PreviewSuccess"
  },
  "comment": "sample-comment"
}

Get OrderEdit by Key

GET
https://api.{region}.commercetools.com/{projectKey}/orders/edits/key={key}
Retrieves an OrderEdit with the provided key.
OAuth 2.0 Scopes:
view_order_edits:{projectKey}
Path parameters:
region
String
Region in which the Project is hosted.
projectKey
String
key of the Project.
key
String
key of the OrderEdit.
Query parameters:
expand
The parameter can be passed multiple times.
Response:
200

OrderEdit

as
application/json
Request Example:cURL
curl --get https://api.{region}.commercetools.com/{projectKey}/orders/edits/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 
200 Response Example: OrderEditjson
{
  "id": "df20c5ea-b114-4aab-b330-740b0e9f3099",
  "version": 1,
  "resource": {
    "typeId": "order",
    "id": "ed454f4e-c43a-485f-a86f-046c691b1363"
  },
  "key": "order-edit-key",
  "createdAt": "2018-10-04T15:22:31.639Z",
  "lastModifiedAt": "2018-10-04T15:22:31.639Z",
  "stagedActions": [
    {
      "action": "setCustomerEmail",
      "email": "user@localhost"
    }
  ],
  "result": {
    "preview": {
      "type": "Order",
      "id": "ed454f4e-c43a-485f-a86f-046c691b1363",
      "version": 3,
      "customerId": "bf5d96ce-4704-45b2-8842-d409dd34cdfc",
      "customerEmail": "user@localhost",
      "createdAt": "2018-05-15T12:40:17.301Z",
      "lastModifiedAt": "2018-05-15T12:40:17.301Z",
      "totalPrice": {
        "type": "centPrecision",
        "currencyCode": "EUR",
        "centAmount": 3970,
        "fractionDigits": 2
      },
      "taxedPrice": {
        "totalNet": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 3336,
          "fractionDigits": 2
        },
        "totalGross": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 3970,
          "fractionDigits": 2
        },
        "taxPortions": [
          {
            "rate": 0.19,
            "amount": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 634,
              "fractionDigits": 2
            },
            "name": "19% MwSt"
          }
        ]
      },
      "country": "DE",
      "orderState": "Open",
      "syncInfo": [],
      "returnInfo": [],
      "refusedGifts": [],
      "shippingInfo": {
        "shippingMethodName": "DHL",
        "price": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 570,
          "fractionDigits": 2
        },
        "shippingRate": {
          "price": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 570,
            "fractionDigits": 2
          },
          "tiers": []
        },
        "taxRate": {
          "name": "19% MwSt",
          "amount": 0.19,
          "includedInPrice": true,
          "country": "DE",
          "id": "rrsT1Jbw",
          "subRates": []
        },
        "taxCategory": {
          "typeId": "tax-category",
          "id": "fdeb9625-10f8-476c-a549-5d5c6d1bd412"
        },
        "deliveries": [],
        "shippingMethod": {
          "typeId": "shipping-method",
          "id": "d18b3f77-92de-4893-b6e3-b5c9c8c1eb96"
        },
        "taxedPrice": {
          "totalNet": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 479,
            "fractionDigits": 2
          },
          "totalGross": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 570,
            "fractionDigits": 2
          },
          "taxPortions": [
            {
              "rate": 0.1,
              "amount": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 634,
                "fractionDigits": 2
              },
              "name": "Bla"
            }
          ]
        },
        "shippingMethodState": "MatchesCart"
      },
      "taxMode": "Platform",
      "inventoryMode": "None",
      "taxRoundingMode": "HalfEven",
      "taxCalculationMode": "LineItemLevel",
      "origin": "Customer",
      "lineItems": [
        {
          "id": "31099128-dba8-40a7-bb6c-d12857149ff8",
          "productId": "d6d0c517-572e-4d26-b80e-ffce825334a4",
          "name": {
            "en": "GIRLS CREW"
          },
          "productType": {
            "typeId": "product-type",
            "id": "6dc75271-b0e5-4ae9-9158-faa1fff65f7b",
            "version": 2
          },
          "productSlug": {
            "en": "girls-crew1522841378290"
          },
          "variant": {
            "id": 1,
            "sku": "sku_GIRLS_CREW_variant1_1522841378290",
            "prices": [
              {
                "value": {
                  "type": "centPrecision",
                  "currencyCode": "EUR",
                  "centAmount": 3400,
                  "fractionDigits": 2
                },
                "id": "b5595b13-bbb8-44ab-a2e2-89c18edf1b22"
              }
            ],
            "images": [
              {
                "url": "https://www.commercetools.com/cli/data/253234387_1.jpg",
                "dimensions": {
                  "w": 1400,
                  "h": 1400
                }
              }
            ],
            "attributes": [],
            "assets": []
          },
          "price": {
            "value": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3400,
              "fractionDigits": 2
            },
            "id": "b5595b13-bbb8-44ab-a2e2-89c18edf1b22"
          },
          "quantity": 1,
          "discountedPricePerQuantity": [],
          "taxRate": {
            "name": "19% MwSt",
            "amount": 0.19,
            "includedInPrice": true,
            "country": "DE",
            "id": "rrsT1Jbw",
            "subRates": []
          },
          "state": [
            {
              "quantity": 1,
              "state": {
                "typeId": "state",
                "id": "60a64e06-b4e8-4205-a0f3-94bc203e2d6d"
              }
            }
          ],
          "priceMode": "Platform",
          "totalPrice": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 3400,
            "fractionDigits": 2
          },
          "taxedPrice": {
            "totalNet": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 2857,
              "fractionDigits": 2
            },
            "totalGross": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3400,
              "fractionDigits": 2
            },
            "taxPortions": [
              {
                "rate": 0.1,
                "amount": {
                  "type": "centPrecision",
                  "currencyCode": "EUR",
                  "centAmount": 634,
                  "fractionDigits": 2
                },
                "name": "Bla"
              }
            ]
          },
          "lineItemMode": "Standard",
          "perMethodTaxRate": [],
          "taxedPricePortions": []
        }
      ],
      "customLineItems": [],
      "transactionFee": true,
      "discountCodes": [],
      "cart": {
        "typeId": "cart",
        "id": "6c97e772-9769-4419-8adc-501c7c5b6088"
      },
      "shippingAddress": {
        "id": "51RkSh-E",
        "salutation": "Mr",
        "firstName": "user",
        "lastName": "lastname",
        "streetName": "streetname",
        "streetNumber": "2",
        "postalCode": "101256",
        "city": "Berlin",
        "country": "DE",
        "building": "34",
        "pOBox": "12344",
        "email": "user@example.com"
      },
      "billingAddress": {
        "id": "51RkSh-E",
        "salutation": "Mr",
        "firstName": "user",
        "lastName": "lastname",
        "streetName": "streetname",
        "streetNumber": "2",
        "postalCode": "101256",
        "city": "Berlin",
        "country": "DE",
        "building": "34",
        "pOBox": "12344",
        "email": "user@example.com"
      },
      "itemShippingAddresses": [],
      "shipping": [],
      "shippingMode": "Single"
    },
    "messagePayloads": [
      {
        "email": "user@localhost",
        "type": "OrderCustomerEmailSet"
      },
      {
        "edit": {
          "typeId": "order-edit",
          "id": "df20c5ea-b114-4aab-b330-740b0e9f3099"
        },
        "result": {
          "type": "Applied",
          "appliedAt": "2018-10-04T15:29:14.091Z",
          "excerptBeforeEdit": {
            "totalPrice": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3970,
              "fractionDigits": 2
            },
            "taxedPrice": {
              "totalNet": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3336,
                "fractionDigits": 2
              },
              "totalGross": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3970,
                "fractionDigits": 2
              },
              "taxPortions": [
                {
                  "rate": 0.19,
                  "amount": {
                    "type": "centPrecision",
                    "currencyCode": "EUR",
                    "centAmount": 634,
                    "fractionDigits": 2
                  },
                  "name": "19% MwSt"
                }
              ]
            },
            "version": 1
          },
          "excerptAfterEdit": {
            "totalPrice": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3970,
              "fractionDigits": 2
            },
            "taxedPrice": {
              "totalNet": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3336,
                "fractionDigits": 2
              },
              "totalGross": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3970,
                "fractionDigits": 2
              },
              "taxPortions": [
                {
                  "rate": 0.19,
                  "amount": {
                    "type": "centPrecision",
                    "currencyCode": "EUR",
                    "centAmount": 634,
                    "fractionDigits": 2
                  },
                  "name": "19% MwSt"
                }
              ]
            },
            "version": 3
          }
        },
        "type": "OrderEditApplied"
      }
    ],
    "type": "PreviewSuccess"
  },
  "comment": "sample-comment"
}

Query OrderEdits

GET
https://api.{region}.commercetools.com/{projectKey}/orders/edits

Retrieves OrderEdits in the Project.

OAuth 2.0 Scopes:
view_order_edits:{projectKey}
Path parameters:
region
String
Region in which the Project is hosted.
projectKey
String
key of the Project.
Query parameters:
where
The parameter can be passed multiple times.
sort
The parameter can be passed multiple times.
expand
The parameter can be passed multiple times.
limit
Int
Default: 20
Minimum: 0
Maximum: 500
offset
Int
Number of elements skipped.
Default: 0
Maximum: 10000
withTotal
Boolean
Controls the calculation of the total number of query results. Set to false to improve query performance when the total is not needed.
Default: true
var.<varName>
String
The parameter can be passed multiple times.
Response:
200

OrderEditPagedQueryResponse

as
application/json
Request Example:cURL
curl --get https://api.{region}.commercetools.com/{projectKey}/orders/edits -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 
200 Response Example: OrderEditPagedQueryResponsejson
{
  "limit": 20,
  "offset": 0,
  "count": 1,
  "total": 1,
  "results": [
    {
      "id": "df20c5ea-b114-4aab-b330-740b0e9f3099",
      "version": 1,
      "resource": {
        "typeId": "order",
        "id": "ed454f4e-c43a-485f-a86f-046c691b1363"
      },
      "key": "order-edit-key",
      "createdAt": "2018-10-04T15:22:31.639Z",
      "lastModifiedAt": "2018-10-04T15:22:31.639Z",
      "stagedActions": [
        {
          "action": "setCustomerEmail",
          "email": "user@localhost"
        }
      ],
      "result": {
        "type": "NotProcessed"
      },
      "comment": "sample-comment"
    }
  ]
}

Check if OrderEdit exists

Check if OrderEdit exists by ID

HEAD
https://api.{region}.commercetools.com/{projectKey}/orders/edits/{id}
Checks if an OrderEdit exists with the provided id. Returns a 200 status if the OrderEdit exists, or a 404 status otherwise.
OAuth 2.0 Scopes:
view_order_edits:{projectKey}
Path parameters:
region
String
Region in which the Project is hosted.
projectKey
String
key of the Project.
id
String
id of the OrderEdit.
Response:
200
Request Example:cURL
curl --head https://api.{region}.commercetools.com/{projectKey}/orders/edits/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 

Check if OrderEdit exists by Key

HEAD
https://api.{region}.commercetools.com/{projectKey}/orders/edits/key={key}
Checks if an OrderEdit exists with the provided key. Returns a 200 status if the OrderEdit exists, or a 404 status otherwise.
OAuth 2.0 Scopes:
view_order_edits:{projectKey}
Path parameters:
region
String
Region in which the Project is hosted.
projectKey
String
key of the Project.
key
String
key of the OrderEdit.
Response:
200
Request Example:cURL
curl --head https://api.{region}.commercetools.com/{projectKey}/orders/edits/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 

Check if OrderEdit exists by Query Predicate

HEAD
https://api.{region}.commercetools.com/{projectKey}/orders/edits
Checks if one or more OrderEdits exist for the provided query predicate. Returns a 200 status if any OrderEdits match the query predicate, or a 404 status otherwise.
OAuth 2.0 Scopes:
view_order_edits:{projectKey}
Path parameters:
region
String
Region in which the Project is hosted.
projectKey
String
key of the Project.
Query parameters:
where
The parameter can be passed multiple times.
Response:
200
Request Example:cURL
curl --head https://api.{region}.commercetools.com/{projectKey}/orders/edits -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 

Create OrderEdit

POST
https://api.{region}.commercetools.com/{projectKey}/orders/edits

Creates an OrderEdit in the Project. You can either create multiple Order Edits for an Order and apply them sequentially to an Order, or create multiple Order Edits parallelly (as alternatives to each other) and apply one of them to the Order.

You can only create an Order Edit if the InventoryMode of the Order and its LineItems is None.
OAuth 2.0 Scopes:
manage_order_edits:{projectKey}
Path parameters:
region
String
Region in which the Project is hosted.
projectKey
String
key of the Project.
Query parameters:
expand
The parameter can be passed multiple times.
Request Body:OrderEditDraftasapplication/json
Response:
201

OrderEdit

as
application/json
Request Example:cURL
curl https://api.{region}.commercetools.com/{projectKey}/orders/edits -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA 
{
  "key" : "order-edit-key",
  "resource" : {
    "typeId" : "order",
    "id" : "ed454f4e-c43a-485f-a86f-046c691b1363"
  },
  "stagedActions" : [ {
    "action" : "setCustomerEmail",
    "email" : "user@localhost"
  } ],
  "comment" : "sample-comment"
}
DATA
201 Response Example: OrderEditjson
{
  "id": "df20c5ea-b114-4aab-b330-740b0e9f3099",
  "version": 1,
  "resource": {
    "typeId": "order",
    "id": "ed454f4e-c43a-485f-a86f-046c691b1363"
  },
  "key": "order-edit-key",
  "createdAt": "2018-10-04T15:22:31.639Z",
  "lastModifiedAt": "2018-10-04T15:22:31.639Z",
  "stagedActions": [
    {
      "action": "setCustomerEmail",
      "email": "user@localhost"
    }
  ],
  "result": {
    "preview": {
      "type": "Order",
      "id": "ed454f4e-c43a-485f-a86f-046c691b1363",
      "version": 3,
      "customerId": "bf5d96ce-4704-45b2-8842-d409dd34cdfc",
      "customerEmail": "user@localhost",
      "createdAt": "2018-05-15T12:40:17.301Z",
      "lastModifiedAt": "2018-05-15T12:40:17.301Z",
      "totalPrice": {
        "type": "centPrecision",
        "currencyCode": "EUR",
        "centAmount": 3970,
        "fractionDigits": 2
      },
      "taxedPrice": {
        "totalNet": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 3336,
          "fractionDigits": 2
        },
        "totalGross": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 3970,
          "fractionDigits": 2
        },
        "taxPortions": [
          {
            "rate": 0.19,
            "amount": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 634,
              "fractionDigits": 2
            },
            "name": "19% MwSt"
          }
        ]
      },
      "country": "DE",
      "orderState": "Open",
      "syncInfo": [],
      "returnInfo": [],
      "refusedGifts": [],
      "shippingInfo": {
        "shippingMethodName": "DHL",
        "price": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 570,
          "fractionDigits": 2
        },
        "shippingRate": {
          "price": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 570,
            "fractionDigits": 2
          },
          "tiers": []
        },
        "taxRate": {
          "name": "19% MwSt",
          "amount": 0.19,
          "includedInPrice": true,
          "country": "DE",
          "id": "rrsT1Jbw",
          "subRates": []
        },
        "taxCategory": {
          "typeId": "tax-category",
          "id": "fdeb9625-10f8-476c-a549-5d5c6d1bd412"
        },
        "deliveries": [],
        "shippingMethod": {
          "typeId": "shipping-method",
          "id": "d18b3f77-92de-4893-b6e3-b5c9c8c1eb96"
        },
        "taxedPrice": {
          "totalNet": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 479,
            "fractionDigits": 2
          },
          "totalGross": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 570,
            "fractionDigits": 2
          },
          "taxPortions": [
            {
              "rate": 0.1,
              "amount": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 634,
                "fractionDigits": 2
              },
              "name": "Bla"
            }
          ]
        },
        "shippingMethodState": "MatchesCart"
      },
      "taxMode": "Platform",
      "inventoryMode": "None",
      "taxRoundingMode": "HalfEven",
      "taxCalculationMode": "LineItemLevel",
      "origin": "Customer",
      "lineItems": [
        {
          "id": "31099128-dba8-40a7-bb6c-d12857149ff8",
          "productId": "d6d0c517-572e-4d26-b80e-ffce825334a4",
          "name": {
            "en": "GIRLS CREW"
          },
          "productType": {
            "typeId": "product-type",
            "id": "6dc75271-b0e5-4ae9-9158-faa1fff65f7b",
            "version": 2
          },
          "productSlug": {
            "en": "girls-crew1522841378290"
          },
          "variant": {
            "id": 1,
            "sku": "sku_GIRLS_CREW_variant1_1522841378290",
            "prices": [
              {
                "value": {
                  "type": "centPrecision",
                  "currencyCode": "EUR",
                  "centAmount": 3400,
                  "fractionDigits": 2
                },
                "id": "b5595b13-bbb8-44ab-a2e2-89c18edf1b22"
              }
            ],
            "images": [
              {
                "url": "https://www.commercetools.com/cli/data/253234387_1.jpg",
                "dimensions": {
                  "w": 1400,
                  "h": 1400
                }
              }
            ],
            "attributes": [],
            "assets": []
          },
          "price": {
            "value": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3400,
              "fractionDigits": 2
            },
            "id": "b5595b13-bbb8-44ab-a2e2-89c18edf1b22"
          },
          "quantity": 1,
          "discountedPricePerQuantity": [],
          "taxRate": {
            "name": "19% MwSt",
            "amount": 0.19,
            "includedInPrice": true,
            "country": "DE",
            "id": "rrsT1Jbw",
            "subRates": []
          },
          "state": [
            {
              "quantity": 1,
              "state": {
                "typeId": "state",
                "id": "60a64e06-b4e8-4205-a0f3-94bc203e2d6d"
              }
            }
          ],
          "priceMode": "Platform",
          "totalPrice": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 3400,
            "fractionDigits": 2
          },
          "taxedPrice": {
            "totalNet": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 2857,
              "fractionDigits": 2
            },
            "totalGross": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3400,
              "fractionDigits": 2
            },
            "taxPortions": [
              {
                "rate": 0.1,
                "amount": {
                  "type": "centPrecision",
                  "currencyCode": "EUR",
                  "centAmount": 634,
                  "fractionDigits": 2
                },
                "name": "Bla"
              }
            ]
          },
          "lineItemMode": "Standard",
          "perMethodTaxRate": [],
          "taxedPricePortions": []
        }
      ],
      "customLineItems": [],
      "transactionFee": true,
      "discountCodes": [],
      "cart": {
        "typeId": "cart",
        "id": "6c97e772-9769-4419-8adc-501c7c5b6088"
      },
      "shippingAddress": {
        "id": "51RkSh-E",
        "salutation": "Mr",
        "firstName": "user",
        "lastName": "lastname",
        "streetName": "streetname",
        "streetNumber": "2",
        "postalCode": "101256",
        "city": "Berlin",
        "country": "DE",
        "building": "34",
        "pOBox": "12344",
        "email": "user@example.com"
      },
      "billingAddress": {
        "id": "51RkSh-E",
        "salutation": "Mr",
        "firstName": "user",
        "lastName": "lastname",
        "streetName": "streetname",
        "streetNumber": "2",
        "postalCode": "101256",
        "city": "Berlin",
        "country": "DE",
        "building": "34",
        "pOBox": "12344",
        "email": "user@example.com"
      },
      "itemShippingAddresses": [],
      "shipping": [],
      "shippingMode": "Single"
    },
    "messagePayloads": [
      {
        "email": "user@localhost",
        "type": "OrderCustomerEmailSet"
      },
      {
        "edit": {
          "typeId": "order-edit",
          "id": "df20c5ea-b114-4aab-b330-740b0e9f3099"
        },
        "result": {
          "type": "Applied",
          "appliedAt": "2018-10-04T15:29:14.091Z",
          "excerptBeforeEdit": {
            "totalPrice": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3970,
              "fractionDigits": 2
            },
            "taxedPrice": {
              "totalNet": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3336,
                "fractionDigits": 2
              },
              "totalGross": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3970,
                "fractionDigits": 2
              },
              "taxPortions": [
                {
                  "rate": 0.19,
                  "amount": {
                    "type": "centPrecision",
                    "currencyCode": "EUR",
                    "centAmount": 634,
                    "fractionDigits": 2
                  },
                  "name": "19% MwSt"
                }
              ]
            },
            "version": 1
          },
          "excerptAfterEdit": {
            "totalPrice": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3970,
              "fractionDigits": 2
            },
            "taxedPrice": {
              "totalNet": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3336,
                "fractionDigits": 2
              },
              "totalGross": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3970,
                "fractionDigits": 2
              },
              "taxPortions": [
                {
                  "rate": 0.19,
                  "amount": {
                    "type": "centPrecision",
                    "currencyCode": "EUR",
                    "centAmount": 634,
                    "fractionDigits": 2
                  },
                  "name": "19% MwSt"
                }
              ]
            },
            "version": 3
          }
        },
        "type": "OrderEditApplied"
      }
    ],
    "type": "PreviewSuccess"
  },
  "comment": "sample-comment"
}

Update OrderEdit

The stagedActions field cannot be updated if the Order Edit result is OrderEdit Applied.

Update OrderEdit by ID

POST
https://api.{region}.commercetools.com/{projectKey}/orders/edits/{id}
Updates an OrderEdit in the Project using one or more update actions.
OAuth 2.0 Scopes:
manage_order_edits:{projectKey}
Path parameters:
region
String
Region in which the Project is hosted.
projectKey
String
key of the Project.
id
String
id of the OrderEdit.
Query parameters:
expand
The parameter can be passed multiple times.
Request Body:
application/json
version
Int
Expected version of the Order Edit on which the changes should be applied. If the expected version does not match the actual version, a ConcurrentModification error will be returned.
actions

Update actions to be performed on the Order Edit.

dryRun
Boolean
If set to true, the Order Edit is applied on the Order without persisting it.
Response:
200

OrderEdit

as
application/json
Request Example:cURL
curl https://api.{region}.commercetools.com/{projectKey}/orders/edits/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA 
{
  "version" : 7,
  "actions" : [ {
    "action" : "setKey",
    "key" : "another-key"
  }, {
    "action" : "addStagedAction",
    "stagedAction" : {
      "action" : "setCountry",
      "country" : "ES"
    }
  } ]
}
DATA
200 Response Example: OrderEditjson
{
  "id": "df20c5ea-b114-4aab-b330-740b0e9f3099",
  "version": 1,
  "resource": {
    "typeId": "order",
    "id": "ed454f4e-c43a-485f-a86f-046c691b1363"
  },
  "key": "order-edit-key",
  "createdAt": "2018-10-04T15:22:31.639Z",
  "lastModifiedAt": "2018-10-04T15:22:31.639Z",
  "stagedActions": [
    {
      "action": "setCustomerEmail",
      "email": "user@localhost"
    }
  ],
  "result": {
    "preview": {
      "type": "Order",
      "id": "ed454f4e-c43a-485f-a86f-046c691b1363",
      "version": 3,
      "customerId": "bf5d96ce-4704-45b2-8842-d409dd34cdfc",
      "customerEmail": "user@localhost",
      "createdAt": "2018-05-15T12:40:17.301Z",
      "lastModifiedAt": "2018-05-15T12:40:17.301Z",
      "totalPrice": {
        "type": "centPrecision",
        "currencyCode": "EUR",
        "centAmount": 3970,
        "fractionDigits": 2
      },
      "taxedPrice": {
        "totalNet": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 3336,
          "fractionDigits": 2
        },
        "totalGross": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 3970,
          "fractionDigits": 2
        },
        "taxPortions": [
          {
            "rate": 0.19,
            "amount": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 634,
              "fractionDigits": 2
            },
            "name": "19% MwSt"
          }
        ]
      },
      "country": "DE",
      "orderState": "Open",
      "syncInfo": [],
      "returnInfo": [],
      "refusedGifts": [],
      "shippingInfo": {
        "shippingMethodName": "DHL",
        "price": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 570,
          "fractionDigits": 2
        },
        "shippingRate": {
          "price": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 570,
            "fractionDigits": 2
          },
          "tiers": []
        },
        "taxRate": {
          "name": "19% MwSt",
          "amount": 0.19,
          "includedInPrice": true,
          "country": "DE",
          "id": "rrsT1Jbw",
          "subRates": []
        },
        "taxCategory": {
          "typeId": "tax-category",
          "id": "fdeb9625-10f8-476c-a549-5d5c6d1bd412"
        },
        "deliveries": [],
        "shippingMethod": {
          "typeId": "shipping-method",
          "id": "d18b3f77-92de-4893-b6e3-b5c9c8c1eb96"
        },
        "taxedPrice": {
          "totalNet": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 479,
            "fractionDigits": 2
          },
          "totalGross": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 570,
            "fractionDigits": 2
          },
          "taxPortions": [
            {
              "rate": 0.1,
              "amount": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 634,
                "fractionDigits": 2
              },
              "name": "Bla"
            }
          ]
        },
        "shippingMethodState": "MatchesCart"
      },
      "taxMode": "Platform",
      "inventoryMode": "None",
      "taxRoundingMode": "HalfEven",
      "taxCalculationMode": "LineItemLevel",
      "origin": "Customer",
      "lineItems": [
        {
          "id": "31099128-dba8-40a7-bb6c-d12857149ff8",
          "productId": "d6d0c517-572e-4d26-b80e-ffce825334a4",
          "name": {
            "en": "GIRLS CREW"
          },
          "productType": {
            "typeId": "product-type",
            "id": "6dc75271-b0e5-4ae9-9158-faa1fff65f7b",
            "version": 2
          },
          "productSlug": {
            "en": "girls-crew1522841378290"
          },
          "variant": {
            "id": 1,
            "sku": "sku_GIRLS_CREW_variant1_1522841378290",
            "prices": [
              {
                "value": {
                  "type": "centPrecision",
                  "currencyCode": "EUR",
                  "centAmount": 3400,
                  "fractionDigits": 2
                },
                "id": "b5595b13-bbb8-44ab-a2e2-89c18edf1b22"
              }
            ],
            "images": [
              {
                "url": "https://www.commercetools.com/cli/data/253234387_1.jpg",
                "dimensions": {
                  "w": 1400,
                  "h": 1400
                }
              }
            ],
            "attributes": [],
            "assets": []
          },
          "price": {
            "value": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3400,
              "fractionDigits": 2
            },
            "id": "b5595b13-bbb8-44ab-a2e2-89c18edf1b22"
          },
          "quantity": 1,
          "discountedPricePerQuantity": [],
          "taxRate": {
            "name": "19% MwSt",
            "amount": 0.19,
            "includedInPrice": true,
            "country": "DE",
            "id": "rrsT1Jbw",
            "subRates": []
          },
          "state": [
            {
              "quantity": 1,
              "state": {
                "typeId": "state",
                "id": "60a64e06-b4e8-4205-a0f3-94bc203e2d6d"
              }
            }
          ],
          "priceMode": "Platform",
          "totalPrice": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 3400,
            "fractionDigits": 2
          },
          "taxedPrice": {
            "totalNet": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 2857,
              "fractionDigits": 2
            },
            "totalGross": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3400,
              "fractionDigits": 2
            },
            "taxPortions": [
              {
                "rate": 0.1,
                "amount": {
                  "type": "centPrecision",
                  "currencyCode": "EUR",
                  "centAmount": 634,
                  "fractionDigits": 2
                },
                "name": "Bla"
              }
            ]
          },
          "lineItemMode": "Standard",
          "perMethodTaxRate": [],
          "taxedPricePortions": []
        }
      ],
      "customLineItems": [],
      "transactionFee": true,
      "discountCodes": [],
      "cart": {
        "typeId": "cart",
        "id": "6c97e772-9769-4419-8adc-501c7c5b6088"
      },
      "shippingAddress": {
        "id": "51RkSh-E",
        "salutation": "Mr",
        "firstName": "user",
        "lastName": "lastname",
        "streetName": "streetname",
        "streetNumber": "2",
        "postalCode": "101256",
        "city": "Berlin",
        "country": "DE",
        "building": "34",
        "pOBox": "12344",
        "email": "user@example.com"
      },
      "billingAddress": {
        "id": "51RkSh-E",
        "salutation": "Mr",
        "firstName": "user",
        "lastName": "lastname",
        "streetName": "streetname",
        "streetNumber": "2",
        "postalCode": "101256",
        "city": "Berlin",
        "country": "DE",
        "building": "34",
        "pOBox": "12344",
        "email": "user@example.com"
      },
      "itemShippingAddresses": [],
      "shipping": [],
      "shippingMode": "Single"
    },
    "messagePayloads": [
      {
        "email": "user@localhost",
        "type": "OrderCustomerEmailSet"
      },
      {
        "edit": {
          "typeId": "order-edit",
          "id": "df20c5ea-b114-4aab-b330-740b0e9f3099"
        },
        "result": {
          "type": "Applied",
          "appliedAt": "2018-10-04T15:29:14.091Z",
          "excerptBeforeEdit": {
            "totalPrice": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3970,
              "fractionDigits": 2
            },
            "taxedPrice": {
              "totalNet": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3336,
                "fractionDigits": 2
              },
              "totalGross": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3970,
                "fractionDigits": 2
              },
              "taxPortions": [
                {
                  "rate": 0.19,
                  "amount": {
                    "type": "centPrecision",
                    "currencyCode": "EUR",
                    "centAmount": 634,
                    "fractionDigits": 2
                  },
                  "name": "19% MwSt"
                }
              ]
            },
            "version": 1
          },
          "excerptAfterEdit": {
            "totalPrice": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3970,
              "fractionDigits": 2
            },
            "taxedPrice": {
              "totalNet": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3336,
                "fractionDigits": 2
              },
              "totalGross": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3970,
                "fractionDigits": 2
              },
              "taxPortions": [
                {
                  "rate": 0.19,
                  "amount": {
                    "type": "centPrecision",
                    "currencyCode": "EUR",
                    "centAmount": 634,
                    "fractionDigits": 2
                  },
                  "name": "19% MwSt"
                }
              ]
            },
            "version": 3
          }
        },
        "type": "OrderEditApplied"
      }
    ],
    "type": "PreviewSuccess"
  },
  "comment": "sample-comment"
}

Update OrderEdit by Key

POST
https://api.{region}.commercetools.com/{projectKey}/orders/edits/key={key}
Updates an OrderEdit in the Project using one or more update actions.
OAuth 2.0 Scopes:
manage_order_edits:{projectKey}
Path parameters:
region
String
Region in which the Project is hosted.
projectKey
String
key of the Project.
key
String
key of the OrderEdit.
Query parameters:
expand
The parameter can be passed multiple times.
Request Body:
application/json
version
Int
Expected version of the Order Edit on which the changes should be applied. If the expected version does not match the actual version, a ConcurrentModification error will be returned.
actions

Update actions to be performed on the Order Edit.

dryRun
Boolean
If set to true, the Order Edit is applied on the Order without persisting it.
Response:
200

OrderEdit

as
application/json
Request Example:cURL
curl https://api.{region}.commercetools.com/{projectKey}/orders/edits/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA 
{
  "version" : 7,
  "actions" : [ {
    "action" : "setKey",
    "key" : "another-key"
  }, {
    "action" : "addStagedAction",
    "stagedAction" : {
      "action" : "setCountry",
      "country" : "ES"
    }
  } ]
}
DATA
200 Response Example: OrderEditjson
{
  "id": "df20c5ea-b114-4aab-b330-740b0e9f3099",
  "version": 1,
  "resource": {
    "typeId": "order",
    "id": "ed454f4e-c43a-485f-a86f-046c691b1363"
  },
  "key": "order-edit-key",
  "createdAt": "2018-10-04T15:22:31.639Z",
  "lastModifiedAt": "2018-10-04T15:22:31.639Z",
  "stagedActions": [
    {
      "action": "setCustomerEmail",
      "email": "user@localhost"
    }
  ],
  "result": {
    "preview": {
      "type": "Order",
      "id": "ed454f4e-c43a-485f-a86f-046c691b1363",
      "version": 3,
      "customerId": "bf5d96ce-4704-45b2-8842-d409dd34cdfc",
      "customerEmail": "user@localhost",
      "createdAt": "2018-05-15T12:40:17.301Z",
      "lastModifiedAt": "2018-05-15T12:40:17.301Z",
      "totalPrice": {
        "type": "centPrecision",
        "currencyCode": "EUR",
        "centAmount": 3970,
        "fractionDigits": 2
      },
      "taxedPrice": {
        "totalNet": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 3336,
          "fractionDigits": 2
        },
        "totalGross": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 3970,
          "fractionDigits": 2
        },
        "taxPortions": [
          {
            "rate": 0.19,
            "amount": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 634,
              "fractionDigits": 2
            },
            "name": "19% MwSt"
          }
        ]
      },
      "country": "DE",
      "orderState": "Open",
      "syncInfo": [],
      "returnInfo": [],
      "refusedGifts": [],
      "shippingInfo": {
        "shippingMethodName": "DHL",
        "price": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 570,
          "fractionDigits": 2
        },
        "shippingRate": {
          "price": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 570,
            "fractionDigits": 2
          },
          "tiers": []
        },
        "taxRate": {
          "name": "19% MwSt",
          "amount": 0.19,
          "includedInPrice": true,
          "country": "DE",
          "id": "rrsT1Jbw",
          "subRates": []
        },
        "taxCategory": {
          "typeId": "tax-category",
          "id": "fdeb9625-10f8-476c-a549-5d5c6d1bd412"
        },
        "deliveries": [],
        "shippingMethod": {
          "typeId": "shipping-method",
          "id": "d18b3f77-92de-4893-b6e3-b5c9c8c1eb96"
        },
        "taxedPrice": {
          "totalNet": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 479,
            "fractionDigits": 2
          },
          "totalGross": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 570,
            "fractionDigits": 2
          },
          "taxPortions": [
            {
              "rate": 0.1,
              "amount": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 634,
                "fractionDigits": 2
              },
              "name": "Bla"
            }
          ]
        },
        "shippingMethodState": "MatchesCart"
      },
      "taxMode": "Platform",
      "inventoryMode": "None",
      "taxRoundingMode": "HalfEven",
      "taxCalculationMode": "LineItemLevel",
      "origin": "Customer",
      "lineItems": [
        {
          "id": "31099128-dba8-40a7-bb6c-d12857149ff8",
          "productId": "d6d0c517-572e-4d26-b80e-ffce825334a4",
          "name": {
            "en": "GIRLS CREW"
          },
          "productType": {
            "typeId": "product-type",
            "id": "6dc75271-b0e5-4ae9-9158-faa1fff65f7b",
            "version": 2
          },
          "productSlug": {
            "en": "girls-crew1522841378290"
          },
          "variant": {
            "id": 1,
            "sku": "sku_GIRLS_CREW_variant1_1522841378290",
            "prices": [
              {
                "value": {
                  "type": "centPrecision",
                  "currencyCode": "EUR",
                  "centAmount": 3400,
                  "fractionDigits": 2
                },
                "id": "b5595b13-bbb8-44ab-a2e2-89c18edf1b22"
              }
            ],
            "images": [
              {
                "url": "https://www.commercetools.com/cli/data/253234387_1.jpg",
                "dimensions": {
                  "w": 1400,
                  "h": 1400
                }
              }
            ],
            "attributes": [],
            "assets": []
          },
          "price": {
            "value": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3400,
              "fractionDigits": 2
            },
            "id": "b5595b13-bbb8-44ab-a2e2-89c18edf1b22"
          },
          "quantity": 1,
          "discountedPricePerQuantity": [],
          "taxRate": {
            "name": "19% MwSt",
            "amount": 0.19,
            "includedInPrice": true,
            "country": "DE",
            "id": "rrsT1Jbw",
            "subRates": []
          },
          "state": [
            {
              "quantity": 1,
              "state": {
                "typeId": "state",
                "id": "60a64e06-b4e8-4205-a0f3-94bc203e2d6d"
              }
            }
          ],
          "priceMode": "Platform",
          "totalPrice": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 3400,
            "fractionDigits": 2
          },
          "taxedPrice": {
            "totalNet": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 2857,
              "fractionDigits": 2
            },
            "totalGross": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3400,
              "fractionDigits": 2
            },
            "taxPortions": [
              {
                "rate": 0.1,
                "amount": {
                  "type": "centPrecision",
                  "currencyCode": "EUR",
                  "centAmount": 634,
                  "fractionDigits": 2
                },
                "name": "Bla"
              }
            ]
          },
          "lineItemMode": "Standard",
          "perMethodTaxRate": [],
          "taxedPricePortions": []
        }
      ],
      "customLineItems": [],
      "transactionFee": true,
      "discountCodes": [],
      "cart": {
        "typeId": "cart",
        "id": "6c97e772-9769-4419-8adc-501c7c5b6088"
      },
      "shippingAddress": {
        "id": "51RkSh-E",
        "salutation": "Mr",
        "firstName": "user",
        "lastName": "lastname",
        "streetName": "streetname",
        "streetNumber": "2",
        "postalCode": "101256",
        "city": "Berlin",
        "country": "DE",
        "building": "34",
        "pOBox": "12344",
        "email": "user@example.com"
      },
      "billingAddress": {
        "id": "51RkSh-E",
        "salutation": "Mr",
        "firstName": "user",
        "lastName": "lastname",
        "streetName": "streetname",
        "streetNumber": "2",
        "postalCode": "101256",
        "city": "Berlin",
        "country": "DE",
        "building": "34",
        "pOBox": "12344",
        "email": "user@example.com"
      },
      "itemShippingAddresses": [],
      "shipping": [],
      "shippingMode": "Single"
    },
    "messagePayloads": [
      {
        "email": "user@localhost",
        "type": "OrderCustomerEmailSet"
      },
      {
        "edit": {
          "typeId": "order-edit",
          "id": "df20c5ea-b114-4aab-b330-740b0e9f3099"
        },
        "result": {
          "type": "Applied",
          "appliedAt": "2018-10-04T15:29:14.091Z",
          "excerptBeforeEdit": {
            "totalPrice": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3970,
              "fractionDigits": 2
            },
            "taxedPrice": {
              "totalNet": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3336,
                "fractionDigits": 2
              },
              "totalGross": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3970,
                "fractionDigits": 2
              },
              "taxPortions": [
                {
                  "rate": 0.19,
                  "amount": {
                    "type": "centPrecision",
                    "currencyCode": "EUR",
                    "centAmount": 634,
                    "fractionDigits": 2
                  },
                  "name": "19% MwSt"
                }
              ]
            },
            "version": 1
          },
          "excerptAfterEdit": {
            "totalPrice": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3970,
              "fractionDigits": 2
            },
            "taxedPrice": {
              "totalNet": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3336,
                "fractionDigits": 2
              },
              "totalGross": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3970,
                "fractionDigits": 2
              },
              "taxPortions": [
                {
                  "rate": 0.19,
                  "amount": {
                    "type": "centPrecision",
                    "currencyCode": "EUR",
                    "centAmount": 634,
                    "fractionDigits": 2
                  },
                  "name": "19% MwSt"
                }
              ]
            },
            "version": 3
          }
        },
        "type": "OrderEditApplied"
      }
    ],
    "type": "PreviewSuccess"
  },
  "comment": "sample-comment"
}

Update actions

Set Key

action
String
"setKey"
key
String

Value to set. If empty, any existing value will be removed.

Example: json
{
  "action": "setKey",
  "key": "keyString"
}

Set StagedActions

The stagedActions field cannot be updated if the Order Edit result is OrderEdit Applied.
action
String
"setStagedActions"
stagedActions
Value to replace the stagedActions of the Order Edit.
Example: json
{
  "action": "setStagedActions",
  "stagedActions": [
    {
      "action": "setCountry",
      "country": "DE"
    }
  ]
}

Add StagedAction

The stagedActions field cannot be updated if the Order Edit result is OrderEdit Applied.
action
String
"addStagedAction"
stagedAction
Order update action to append to the stagedActions array.
Example: json
{
  "action": "addStagedAction",
  "stagedAction": {
    "action": "setCountry",
    "country": "DE"
  }
}

Set Comment

action
String
"setComment"
comment
String

Value to set. If empty, any existing value will be removed.

Example: json
{
  "action": "setComment",
  "comment": "commentString"
}

Set Custom Type

action
String
"setCustomType"
type
Defines the Type that extends the Order Edit with Custom Fields. If absent, any existing Type and Custom Fields are removed from the Order Edit.
fields
Object containing the Custom Fields fields for the Order Edit.
Required if at least one Custom Field is defined as required in the fieldDefinitions of the referenced Type.
Example: json
{
  "action": "setCustomType",
  "type": {
    "id": "{{type-id}}",
    "typeId": "type"
  },
  "fields": {
    "exampleStringField": "TextString"
  }
}

Set CustomField

action
String
"setCustomField"
name
String
Name of the Custom Field.
value
If value is absent or null, this field will be removed if it exists. Removing a field that does not exist returns an InvalidOperation error. If value is provided, it is set for the field defined by name.
Example: json
{
  "action": "setCustomField",
  "name": "exampleStringField",
  "value": "TextString"
}

StagedOrderUpdateActions

If Embedded or Standalone Prices have changed since an Order was created, editing the Order will apply the updated prices to all Line Items—even if the edit does not directly modify the prices.

If one or more Line Items do not contain an Embedded Price or Standalone Price that matches the Line Item price selection criteria of the Order, they are removed during Order Edit operations. This scenario can occur when:

  • You use the Create Order by Import endpoint. This is because the endpoint does not validate prices during the Order creation process. When the Order is later modified using an Order Edit, the invalid prices are detected, and the corresponding Line Items are removed.
  • The price used in the Order is deleted, and no other matching price exists.

You can stage the following update actions to an OrderEdit:

on Order

Set Order Number

action
String
"setOrderNumber"
orderNumber
String

Value to set. Must be unique across a Project. Once set, the value cannot be changed.

Example: json
{
  "action": "setOrderNumber",
  "orderNumber": "orderNumberString"
}

Set Purchase Order Number

Produces the PurchaseOrderNumberSet Message.
action
String
"setPurchaseOrderNumber"
purchaseOrderNumber
String

Value to set.

Example: json
{
  "action": "setPurchaseOrderNumber",
  "purchaseOrderNumber": "purchaseOrderNumberString"
}

Set Business Unit B2B B2X

Updates the Business Unit on the Order. Setting the Order's businessUnit does not recalculate prices or discounts on the Order.
Produces the OrderBusinessUnitSet Message.
action
String
"setBusinessUnit"
businessUnit

New Business Unit to assign to the Order. If empty, any existing value is removed.

If the referenced Business Unit does not exist, a ReferencedResourceNotFound error is returned.
Example: json
{
  "action": "setBusinessUnit",
  "businessUnit": {
    "key": "{{business-unit-key}}",
    "typeId": "business-unit"
  }
}

Set Customer ID

Setting the Order's customerId does not recalculate prices or discounts on the Order. If the Customer belongs to a Customer Group, customerGroup on the Order is updated automatically.
Produces the OrderCustomerSet Message.
action
String
"setCustomerId"
customerId
String
id of an existing Customer. If empty, any existing value is removed.
Example: json
{
  "action": "setCustomerId",
  "customerId": "{{customer-id}}"
}

Set Customer Email

This action updates the customerEmail on the Order, but it does not change the Customer email on the Cart the Order has been created from.
Produces the Order Customer Email Set Message.
action
String
"setCustomerEmail"
email
String

Value to set. If empty, any existing value will be removed.

Example: json
{
  "action": "setCustomerEmail",
  "email": "mail@email.com"
}

Set Customer Group

This update action can only be used if a Customer is not assigned to a Cart. If a Customer is already assigned, the Cart uses the Customer Group of the assigned Customer.

To reflect the new Customer Group, this update action can result in updates to the Cart. When this occurs, the following errors can be returned: MatchingPriceNotFound and MissingTaxRateForCountry.
action
String
"setCustomerGroup"
customerGroup

Value to set. If empty, any existing value is removed.

Example: json
{
  "action": "setCustomerGroup",
  "customerGroup": {
    "typeId": "customer-group",
    "id": "{{customer-group-id}}"
  }
}

Add LineItem

If the Cart contains a LineItem for a Product Variant with the same LineItemMode, Custom Fields, supply and distribution channel, then only the quantity of the existing Line Item is increased. If LineItem shippingDetails is set, it is merged. All addresses will be present afterwards and, for address keys present in both shipping details, the quantity will be summed up. A new Line Item is added when the externalPrice or externalTotalPrice is set in this update action. The LineItem price is set as described in Line Item price selection.
If the Tax Rate is not set, a MissingTaxRateForCountry error is returned.
If the Line Items do not have a Price according to the Product priceMode value for a selected currency and/or country, Customer Group, or Channel, a MatchingPriceNotFound error is returned.
action
String
"addLineItem"
key
String

User-defined identifier of the LineItem. Must be unique among LineItems in the StagedOrder.

MinLength2MaxLength256Pattern^[a-zA-Z0-9_-]
productId
String
id of the published Product.
Either the productId and variantId, or sku must be provided.
variantId
Int
id of the ProductVariant in the Product. If not provided, the Master Variant is used.
Either the productId and variantId, or sku must be provided.
sku
String
SKU of the ProductVariant.
Either the productId and variantId, or sku must be provided.
quantity
Int

Quantity of the Product Variant to add to the Cart.

Default1
addedAt

Date and time (UTC) the Product Variant was added to the Cart. If not set, it defaults to the current date and time.

Optional for backwards compatibility reasons.

distributionChannel
Used to select a Product Price. The Channel must have the ProductDistribution ChannelRoleEnum. If the Cart is bound to a Store with distributionChannels set, the Channel must match one of the Store's distribution channels.
supplyChannel
Used to identify Inventory entries that must be reserved. The Channel must have the InventorySupply ChannelRoleEnum.
externalPrice
Sets the LineItem price value, and the priceMode to ExternalPrice LineItemPriceMode.
To set the money value in high precision, use HighPrecisionMoneyDraft.
externalTotalPrice
Sets the LineItem price and totalPrice values, and the priceMode to ExternalTotal LineItemPriceMode.
externalTaxRate
Sets the external Tax Rate for the Line Item, if the Cart has the External TaxMode. If the Cart has Multiple ShippingMode, the Tax Rate is accepted but ignored.
inventoryMode
Inventory mode specific to the Line Item only, and valid for the entire quantity of the Line Item. Set only if the inventory mode should be different from the inventoryMode specified on the Cart.
shippingDetails

Container for Line Item-specific addresses.

recurrenceInfo

Recurring Order and frequency data.

custom

Custom Fields for the Line Item.

Example: json
{
  "action": "addLineItem",
  "sku": "productSKU",
  "quantity": 42,
  "supplyChannel": {
    "typeId": "channel",
    "id": "{{channel-id}}"
  },
  "distributionChannel": {
    "typeId": "channel",
    "id": "{{channel-id}}"
  },
  "externalTaxRate": {
    "name": "StandardExternalTaxRate",
    "amount": 0.19,
    "country": "DE",
    "state": "Berlin"
  },
  "shippingDetails": {
    "targets": [
      {
        "addressKey": "AddressKeyStringFromAddress",
        "quantity": 2
      }
    ]
  }
}

Remove LineItem

The LineItem price is updated as described in Line Item price selection.
action
String
"removeLineItem"
lineItemId
String
id of the LineItem to update. Either lineItemId or lineItemKey is required.
lineItemKey
String
key of the LineItem to update. Either lineItemId or lineItemKey is required.
quantity
Int

Amount to subtract from the LineItem quantity. If omitted, the LineItem is removed from the Order.

Minimum1
externalPrice
Sets the LineItem price to the given value when decreasing the quantity of a Line Item with the ExternalPrice LineItemPriceMode.
To set the money value in high precision, use HighPrecisionMoneyDraft.
externalTotalPrice
Sets the LineItem price and totalPrice to the given value when decreasing the quantity of a Line Item with the ExternalTotal LineItemPriceMode.
shippingDetailsToRemove

Container for Line Item-specific addresses to remove.

Example: json
{
  "action": "removeLineItem",
  "lineItemId": "{{lineItemId}}",
  "quantity": 1
}

Add CustomLineItem

If the Cart already contains a CustomLineItem with the same slug, name, money, taxCategory, state, and Custom Fields, then only the quantity of the existing Custom Line Item is increased. If CustomLineItem shippingDetails are set, they are merged with the targets that already exist on the ItemShippingDetails of the Custom Line Item. In case of overlapping address keys the ItemShippingTarget quantity is summed up.
If the Cart already contains a Custom Line Item with the same slug that is otherwise not identical, an InvalidOperation error is returned.
If the Tax Rate is not set, a MissingTaxRateForCountry error is returned.
action
String
"addCustomLineItem"
key
String

User-defined identifier of the Custom Line Item. Must be unique among Custom Line Items in the StagedOrder.

MinLength2MaxLength256Pattern^[a-zA-Z0-9_-]
money

Money value of the Custom Line Item. The value can be negative.

To set the money value in high precision, use HighPrecisionMoneyDraft.
name

Name of the Custom Line Item.

quantity
Int

Number of Custom Line Items to add to the Cart.

Default1
slug
String
User-defined identifier used in a deep-link URL for the Custom Line Item. It must match the pattern [a-zA-Z0-9_-]{2,256}.
taxCategory
Used to select a Tax Rate when a Cart has the Platform TaxMode. If TaxMode is Platform, this field must not be empty.
externalTaxRate
An external Tax Rate can be set if the Cart has the External TaxMode.
shippingDetails

Container for Custom Line Item-specific addresses.

recurrenceInfo

Recurring Order and frequency data.

custom

Custom Fields for the Custom Line Item.

Example: json
{
  "action": "addCustomLineItem",
  "name": {
    "en": "Name"
  },
  "quantity": 2,
  "money": {
    "currencyCode": "EUR",
    "centAmount": 4000
  },
  "slug": "slugString",
  "taxCategory": {
    "typeId": "tax-category",
    "id": "{{tax-category-id}}"
  }
}

Remove CustomLineItem

This update action does not support specifying a quantity, unlike the Remove LineItem update action.
If shippingDetails must be partially removed, use the Change CustomLineItem Quantity update action.
action
String
"removeCustomLineItem"
customLineItemId
String
id of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
customLineItemKey
String
key of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
Example: json
{
  "action": "removeCustomLineItem",
  "customLineItemId": "{{customLineItemId}}"
}

Add Shopping List

Adds all LineItems of a ShoppingList to the Cart.
action
String
"addShoppingList"
shoppingList

Shopping List that contains the Line Items to be added.

distributionChannel
distributionChannel to set for all LineItems that are added to the Cart. The Channel must have the ProductDistribution ChannelRoleEnum.
supplyChannel
supplyChannel to set for all LineItems that are added to the Cart. The Channel must have the InventorySupply ChannelRoleEnum.
Example: json
{
  "action": "addShoppingList",
  "shoppingList": {
    "typeId": "shopping-list",
    "id": "{{shopping-list-id}}"
  }
}

Set Order Total Tax

Updates the total tax amount of the Order if it has the ExternalAmount TaxMode.
action
String
"setOrderTotalTax"
externalTotalGross

Total gross amount of the Order (totalNet + taxes).

externalTaxPortions
Array of TaxPortionDraft

Value to set.

Example: json
{
  "action": "setOrderTotalTax",
  "externalTotalGross": {
    "currencyCode": "EUR",
    "centAmount": 4000
  },
  "externalTaxPortions": [
    {
      "name": "Name",
      "rate": 0.19,
      "amount": {
        "currencyCode": "EUR",
        "centAmount": 4000
      }
    }
  ]
}

Change TaxMode

  • When External TaxMode is changed to Platform or Disabled, all previously set external Tax Rates are removed.
  • When set to Platform, Line Items, Custom Line Items, and Shipping Method require a Tax Category with a Tax Rate for the Cart's shippingAddress.
action
String
"changeTaxMode"
taxMode

The new TaxMode.

Example: json
{
  "action": "changeTaxMode",
  "taxMode": "Platform"
}

Change Price RoundingMode

Changing the price rounding mode leads to recalculation of taxes.
action
String
"changePriceRoundingMode"
priceRoundingMode

New value to set.

Example: json
{
  "action": "changePriceRoundingMode",
  "priceRoundingMode": "HalfUp"
}

Change Tax RoundingMode

Changing the tax rounding mode leads to recalculation of taxes.
action
String
"changeTaxRoundingMode"
taxRoundingMode

New value to set.

Example: json
{
  "action": "changeTaxRoundingMode",
  "taxRoundingMode": "HalfUp"
}

Change TaxCalculationMode

Changing the tax calculation mode leads to recalculation of taxes.
action
String
"changeTaxCalculationMode"
taxCalculationMode

New value to set.

Example: json
{
  "action": "changeTaxCalculationMode",
  "taxCalculationMode": "LineItemLevel"
}

Add DiscountCode

Adds a DiscountCode to the Order to activate the related Cart Discounts. If the related Cart Discounts are inactive or invalid, or belong to a different Store than the Order, a DiscountCodeNonApplicableError is returned.
A Discount Code can be added only if no DirectDiscount has been applied to the Order.
The maximum number of Discount Codes in a Cart is restricted by a limit.
Specific Error Code: MatchingPriceNotFound
action
String
"addDiscountCode"
code
String
code of a DiscountCode.
Example: json
{
  "action": "addDiscountCode",
  "code": "discountCodeString"
}

Remove DiscountCode

action
String
"removeDiscountCode"
discountCode

Discount Code to remove from the Cart.

Example: json
{
  "action": "removeDiscountCode",
  "discountCode": {
    "typeId": "discount-code",
    "id": "{{discount-code-id}}"
  }
}

Set DirectDiscounts

Adds a DirectDiscount, but only if no DiscountCode has been added to the Order. Either a Discount Code or a Direct Discount can exist on a Order at the same time.
action
String
"setDirectDiscounts"
discounts
  • If set, all existing Direct Discounts are replaced. The discounts apply in the order they are added to the list.
  • If empty, all existing Direct Discounts are removed and all affected prices on the Order are recalculated.
Example: json
{
  "action": "setDirectDiscounts",
  "discounts": [
    {
      "value": {
        "type": "relative",
        "permyriad": 1000
      },
      "target": {
        "type": "lineItems",
        "predicate": "1=1"
      }
    }
  ]
}

Add Payment

Produces the Order Payment Added Message.
action
String
"addPayment"
payment
Payment to add to the PaymentInfo. Must not be assigned to another Order or active Cart already.
Example: json
{
  "action": "addPayment",
  "payment": {
    "typeId": "payment",
    "id": "{{payment-id}}"
  }
}

Remove Payment

Produces the Order Payment Removed Message.
action
String
"removePayment"
payment
Payment to remove from the PaymentInfo.
Example: json
{
  "action": "removePayment",
  "payment": {
    "typeId": "payment",
    "id": "{{payment-id}}"
  }
}

Change PaymentState

Produces the Order Payment State Changed Message.
action
String
"changePaymentState"
paymentState

New payment status of the Order.

Example: json
{
  "action": "changePaymentState",
  "paymentState": "Paid"
}

Set Billing Address

This action updates the billingAddress on the Order, but it does not change the billing address on the referenced Cart from which the Order is created.
Produces the Order Billing Address Set Message.
action
String
"setBillingAddress"
address

Value to set. If empty, any existing value is removed.

Example: json
{
  "action": "setBillingAddress",
  "address": {
    "key": "exampleKey",
    "title": "My Address",
    "salutation": "Mr.",
    "firstName": "Example",
    "lastName": "Person",
    "streetName": "Example Street",
    "streetNumber": "4711",
    "additionalStreetInfo": "Backhouse",
    "postalCode": "80933",
    "city": "Exemplary City",
    "region": "Exemplary Region",
    "state": "Exemplary State",
    "country": "DE",
    "company": "My Company Name",
    "department": "Sales",
    "building": "Hightower 1",
    "apartment": "247",
    "pOBox": "2471",
    "phone": "+49 89 12345678",
    "mobile": "+49 171 2345678",
    "email": "email@example.com",
    "fax": "+49 89 12345679",
    "additionalAddressInfo": "no additional Info",
    "externalId": "Information not needed"
  }
}

Set Shipping Address

This action updates the shippingAddress on the Order, but it does not change the shipping address on the referenced Cart from which the Order is created. Also, it does not recalculate the Cart as taxes may not fit to the shipping address anymore.
Produces the Order Shipping Address Set Message.
action
String
"setShippingAddress"
address

Value to set. If empty, any existing value is removed.

Example: json
{
  "action": "setShippingAddress",
  "address": {
    "key": "exampleKey",
    "title": "My Address",
    "salutation": "Mr.",
    "firstName": "Example",
    "lastName": "Person",
    "streetName": "Example Street",
    "streetNumber": "4711",
    "additionalStreetInfo": "Backhouse",
    "postalCode": "80933",
    "city": "Exemplary City",
    "region": "Exemplary Region",
    "state": "Exemplary State",
    "country": "DE",
    "company": "My Company Name",
    "department": "Sales",
    "building": "Hightower 1",
    "apartment": "247",
    "pOBox": "2471",
    "phone": "+49 89 12345678",
    "mobile": "+49 171 2345678",
    "email": "email@example.com",
    "fax": "+49 89 12345679",
    "additionalAddressInfo": "no additional Info",
    "externalId": "Information not needed"
  }
}

Add ItemShippingAddress

Adds an address to the itemShippingAddresses of an Order. Use this action when shipping is defined per item. For example, when shipping items to multiple addresses or when using different Shipping Methods, even if all items share the same address.
action
String
"addItemShippingAddress"
address
Address to append to itemShippingAddresses. The new Address must have a key that is unique across this Order.
Example: json
{
  "action": "addItemShippingAddress",
  "address": {
    "key": "exampleKey",
    "title": "My Address",
    "salutation": "Mr.",
    "firstName": "Example",
    "lastName": "Person",
    "streetName": "Example Street",
    "streetNumber": "4711",
    "additionalStreetInfo": "Backhouse",
    "postalCode": "80933",
    "city": "Exemplary City",
    "region": "Exemplary Region",
    "state": "Exemplary State",
    "country": "DE",
    "company": "My Company Name",
    "department": "Sales",
    "building": "Hightower 1",
    "apartment": "247",
    "pOBox": "2471",
    "phone": "+49 89 12345678",
    "mobile": "+49 171 2345678",
    "email": "email@example.com",
    "fax": "+49 89 12345679",
    "additionalAddressInfo": "no additional Info",
    "externalId": "Information not needed"
  }
}

Remove ItemShippingAddress

An address can only be removed if it is not referenced in any ItemShippingTarget of the Cart.
action
String
"removeItemShippingAddress"
addressKey
String
key of the Address to remove from itemShippingAddresses.
Example: json
{
  "action": "removeItemShippingAddress",
  "addressKey": "addressKey"
}

Update ItemShippingAddress

Updates an address in itemShippingAddresses by keeping the Address key.
action
String
"updateItemShippingAddress"
address
The new Address with the same key as the Address it will replace.
Example: json
{
  "action": "updateItemShippingAddress",
  "address": {
    "key": "exampleKey",
    "title": "My Address",
    "salutation": "Mr.",
    "firstName": "Example",
    "lastName": "Person",
    "streetName": "Example Street",
    "streetNumber": "4711",
    "additionalStreetInfo": "Backhouse",
    "postalCode": "80933",
    "city": "Exemplary City",
    "region": "Exemplary Region",
    "state": "Exemplary State",
    "country": "DE",
    "company": "My Company Name",
    "department": "Sales",
    "building": "Hightower 1",
    "apartment": "247",
    "pOBox": "2471",
    "phone": "+49 89 12345678",
    "mobile": "+49 171 2345678",
    "email": "email@example.com",
    "fax": "+49 89 12345679",
    "additionalAddressInfo": "no additional Info",
    "externalId": "Information not needed"
  }
}

Set ShippingAddress and ShippingMethod

Sets the shipping address and Shipping Method together to prevent an inconsistent state.

action
String
"setShippingAddressAndShippingMethod"
address
Value to set for shippingAddress.
shippingMethod

Value to set.

externalTaxRate
An external Tax Rate can be set if the Cart has the External TaxMode.
Example: json
{
  "action": "setShippingAddressAndShippingMethod",
  "address": {
    "key": "exampleKey",
    "title": "My Address",
    "salutation": "Mr.",
    "firstName": "Example",
    "lastName": "Person",
    "streetName": "Example Street",
    "streetNumber": "4711",
    "additionalStreetInfo": "Backhouse",
    "postalCode": "80933",
    "city": "Exemplary City",
    "region": "Exemplary Region",
    "state": "Exemplary State",
    "country": "DE",
    "company": "My Company Name",
    "department": "Sales",
    "building": "Hightower 1",
    "apartment": "247",
    "pOBox": "2471",
    "phone": "+49 89 12345678",
    "mobile": "+49 171 2345678",
    "email": "email@example.com",
    "fax": "+49 89 12345679",
    "additionalAddressInfo": "no additional Info",
    "externalId": "Information not needed"
  },
  "shippingMethod": {
    "typeId": "shipping-method",
    "id": "shippingMethodId"
  }
}

Set ShippingAddress and Custom ShippingMethod

Sets the shipping address and a custom Shipping Method together to prevent an inconsistent state.

action
String
"setShippingAddressAndCustomShippingMethod"
address
Value to set for shippingAddress.
shippingMethodName
String

Value to set.

shippingRate

Value to set.

taxCategory
Used to select a Tax Rate when the Order has the Platform TaxMode.
externalTaxRate
An external Tax Rate can be set if the Cart has the External TaxMode.
custom

Custom Fields for the custom Shipping Method.

Example: json
{
  "action": "setShippingAddressAndCustomShippingMethod",
  "address": {
    "key": "exampleKey",
    "title": "My Address",
    "salutation": "Mr.",
    "firstName": "Example",
    "lastName": "Person",
    "streetName": "Example Street",
    "streetNumber": "4711",
    "additionalStreetInfo": "Backhouse",
    "postalCode": "80933",
    "city": "Exemplary City",
    "region": "Exemplary Region",
    "state": "Exemplary State",
    "country": "DE",
    "company": "My Company Name",
    "department": "Sales",
    "building": "Hightower 1",
    "apartment": "247",
    "pOBox": "2471",
    "phone": "+49 89 12345678",
    "mobile": "+49 171 2345678",
    "email": "email@example.com",
    "fax": "+49 89 12345679",
    "additionalAddressInfo": "no additional Info",
    "externalId": "Information not needed"
  },
  "shippingMethodName": "shippingMethodName",
  "shippingRate": {
    "price": {
      "currencyCode": "EUR",
      "centAmount": 4000
    }
  },
  "taxCategory": {
    "typeId": "tax-category",
    "id": "{{tax-category-id}}"
  }
}

Set ShippingMethod

To set the Cart's Shipping Method, the Cart must have the Single ShippingMode and a shippingAddress.
action
String
"setShippingMethod"
shippingMethod
Value to set. If empty, any existing value will be removed. If the referenced Shipping Method has a predicate that does not match the Cart, an InvalidOperation error is returned.
externalTaxRate
An external Tax Rate can be set if the Cart has the External TaxMode.
Example: json
{
  "action": "setShippingMethod",
  "shippingMethod": {
    "typeId": "shipping-method",
    "id": "shippingMethodId"
  }
}

Set Custom ShippingMethod

To set the Cart's custom Shipping Method (independent of the ShippingMethods managed through the Shipping Methods API) the Cart must have the Single ShippingMode and a shippingAddress.
To unset a custom Shipping Method on a Cart, use the Set ShippingMethod update action without the shippingMethod field instead.
action
String
"setCustomShippingMethod"
shippingMethodName
String

Name of the custom Shipping Method.

shippingRate

Determines the shipping price.

taxCategory
Tax Category used to determine the Tax Rate when the Cart has the Platform TaxMode.
externalTaxRate
External Tax Rate for the shippingRate to be set if the Cart has the External TaxMode.
custom

Custom Fields for the custom Shipping Method.

Example: json
{
  "action": "setCustomShippingMethod",
  "shippingMethodName": "shippingMethodName",
  "shippingRate": {
    "price": {
      "currencyCode": "EUR",
      "centAmount": 4000
    }
  },
  "taxCategory": {
    "typeId": "tax-category",
    "id": "{{tax-category-id}}"
  },
  "externalTaxRate": {
    "name": "taxRateName",
    "amount": 0.19,
    "country": "DE"
  }
}

Set ShippingRateInput

Input used to select a ShippingRatePriceTier. If no matching tier can be found, or the input is not set, the default price for the shipping rate is used.
action
String
"setShippingRateInput"
shippingRateInput
The data type of this field depends on the shippingRateInputType.type configured in the Project:
Example: json
{
  "action": "setShippingRateInput",
  "shippingRateInput": {
    "type": "Classification",
    "key": "key"
  }
}

Add Delivery

A Delivery can only be added to an Order if its shippingInfo (for shippingMode = Single), or its shipping (for shippingMode = Multiple) exists.
Multiple Deliveries can be added to the same Order to represent split or partial shipments. However, the API doesn't validate that the cumulative quantities of Line Items or Custom Line Items across all Deliveries match or stay within the originally ordered quantities. For more information, see Multiple Deliveries on the Shipping and Delivery overview page.
Produces the Delivery Added Message.
action
String
"addDelivery"
deliveryKey
String
key of an existing Delivery.
shippingKey
String
key of the ShippingMethod, required for Multiple ShippingMode.
items
Array of DeliveryItem

Items to be included in the Delivery.

address
Address the parcels should be delivered to.
parcels
Array of ParcelDraft

Parcels of the Delivery.

If provided, this update action also produces the Parcel Added To Delivery Message.
custom

Custom Fields for the Delivery.

Example: json
{
  "action": "addDelivery",
  "items": [
    {
      "id": "{{lineItemId}}",
      "quantity": 2
    }
  ],
  "parcels": [
    {
      "measurements": {
        "heightInMillimeter": 11,
        "lengthInMillimeter": 11
      },
      "trackingData": {
        "trackingId": "{{trackingId}}",
        "carrier": "TNT",
        "provider": "providerName",
        "providerTransaction": "{{transactionId}}",
        "isReturn": false
      },
      "items": {
        "id": "{{lineItemId}}",
        "quantity": 2
      }
    }
  ],
  "address": {
    "key": "exampleKey",
    "title": "My Address",
    "salutation": "Mr.",
    "firstName": "Example",
    "lastName": "Person",
    "streetName": "Example Street",
    "streetNumber": "4711",
    "additionalStreetInfo": "Backhouse",
    "postalCode": "80933",
    "city": "Exemplary City",
    "region": "Exemplary Region",
    "state": "Exemplary State",
    "country": "DE",
    "company": "My Company Name",
    "department": "Sales",
    "building": "Hightower 1",
    "apartment": "247",
    "pOBox": "2471",
    "phone": "+49 89 12345678",
    "mobile": "+49 171 2345678",
    "email": "email@example.com",
    "fax": "+49 89 12345679",
    "additionalAddressInfo": "no additional Info",
    "externalId": "Information not needed"
  }
}

Remove Delivery

Produces the DeliveryRemoved Message.
action
String
"removeDelivery"
deliveryId
String
id of an existing Delivery.
Either deliveryId or deliveryKey must be provided.
deliveryKey
String
key of an existing Delivery.
Either deliveryId or deliveryKey must be provided.
Example: json
{
  "action": "removeDelivery",
  "deliveryId": "{{deliveryId}}"
}

Change ShipmentState

Produces the Order Shipment State Changed Message.
action
String
"changeShipmentState"
shipmentState

New shipment status of the Order.

Example: json
{
  "action": "changeShipmentState",
  "shipmentState": "Shipped"
}

Add ReturnInfo

Produces the Return Info Added Message.
action
String
"addReturnInfo"
returnTrackingId
String

Value to set.

items
Array of ReturnItemDraft

Items to be returned. Must not be empty.

MinItems1
returnDate

Value to set. If not set, it defaults to the current date and time.

Example: json
{
  "action": "addReturnInfo",
  "items": {
    "quantity": 1,
    "lineItemId": "{{lineItemId}}",
    "shipmentState": "BackInStock"
  },
  "returnDate": "2018-10-12T14:00:00.000Z"
}

Set ReturnInfo

Produces the Return Info Set Message.
action
String
"setReturnInfo"
items
Array of ReturnInfoDraft

Value to set. If empty, any existing value will be removed.

Example: json
{
  "action": "setReturnInfo",
  "items": [
    {
      "items": [
        {
          "quantity": 1,
          "lineItemId": "{{lineItemId}}",
          "comment": "any comment",
          "shipmentState": "Returned"
        }
      ],
      "returnTrackingId": "returnTrackingId-example",
      "returnDate": "2021-04-30T09:21:15.003Z"
    }
  ]
}

Set ReturnShipmentState

To set a ReturnShipmentState, the Order returnInfo must have at least one ReturnItem.
action
String
"setReturnShipmentState"
returnItemId
String
id of the ReturnItem to update. Either returnItemId or returnItemKey is required.
returnItemKey
String
key of the ReturnItem to update. Either returnItemId or returnItemKey is required.
shipmentState
New shipment state of the ReturnItem.
This update action can only transition Return Items from the Returned state to BackInStock or Unusable. The initial Advised and Returned states can only be set at creation time on ReturnItemDraft.
Example: json
{
  "action": "setReturnShipmentState",
  "returnItemId": "{{returnItemId}}",
  "shipmentState": "Returned"
}

Set ReturnPaymentState

To set a ReturnPaymentState, the Order returnInfo must have at least one ReturnItem.
action
String
"setReturnPaymentState"
returnItemId
String
id of the ReturnItem to update. Either returnItemId or returnItemKey is required.
returnItemKey
String
key of the ReturnItem to update. Either returnItemId or returnItemKey is required.
paymentState
New Payment status of the ReturnItem.
Example: json
{
  "action": "setReturnPaymentState",
  "returnItemId": "{{returnItemId}}",
  "paymentState": "Refunded"
}

Change OrderState

Produces the Order State Changed Message.
action
String
"changeOrderState"
orderState

New status of the Order.

Example: json
{
  "action": "changeOrderState",
  "orderState": "Open"
}

Transition State

If the existing State has set transitions, there must be a direct transition to the new State. If transitions is not set, no validation is performed.
This update action produces the Order State Transition Message.
action
String
"transitionState"
state

Value to set. If there is no State yet, the new State must be an initial State.

force
Boolean
Set to true to turn off validation.
Defaultfalse
Example: json
{
  "action": "transitionState",
  "state": {
    "typeId": "state",
    "id": "{{state-id}}"
  }
}

Update SyncInfo

action
String
"updateSyncInfo"
externalId
String

Set this to identify an external order instance, file, or other resource.

channel
The synchronization destination to set. Must not be empty. The referenced Channel must have the Channel Role OrderExport or OrderImport. Otherwise this update action returns an InvalidInput error.
syncedAt

If not set, it defaults to the current date and time.

Example: json
{
  "action": "updateSyncInfo",
  "channel": {
    "typeId": "channel",
    "id": "{{channel-id}}"
  },
  "externalId": "externalId"
}

Set Locale

action
String
"setLocale"
locale
Value to set. Must be one of the Project's languages. If empty, any existing value is removed.
Example: json
{
  "action": "setLocale",
  "locale": "de-DE"
}

Set Country

Setting the country can lead to changes in the LineItem prices.
action
String
"setCountry"
country

Value to set. If empty, any existing value is removed.

If the Cart is bound to a store, the provided value must be included in the Store's countries. Otherwise a CountryNotConfiguredInStore error is returned.
Pattern^[A-Z]{2}$
Example: json
{
  "action": "setCountry",
  "country": "DE"
}

Set Store

Sets the Store the Order is assigned to. It should be used to migrate Orders to a new Store. No validations are performed (such as that the Customer is allowed to create Orders in the Store).
Produces the Order Store Set Message. Returns a 400 error if store references the same Store the Order is currently assigned to, including if you try to remove the value when no Store is currently assigned.
action
String
"setStore"
store

Value to set. If empty, any existing value will be removed.

If store references the same Store the Order is currently assigned to or if you try to remove the value when no Store is currently assigned, a 400 error is returned.
Example: json
{
  "action": "setStore",
  "store": {
    "key": "{{store-key}}",
    "typeId": "store"
  }
}

Set Custom Type

action
String
"setCustomType"
type
Defines the Type that extends the Order Edit with Custom Fields. If absent, any existing Type and Custom Fields are removed from the Order Edit.
fields
Object containing the Custom Fields fields for the Order Edit.
Required if at least one Custom Field is defined as required in the fieldDefinitions of the referenced Type.
Example: json
{
  "action": "setCustomType",
  "type": {
    "id": "{{type-id}}",
    "typeId": "type"
  },
  "fields": {
    "exampleStringField": "TextString"
  }
}

Set CustomField

action
String
"setCustomField"
name
String
Name of the Custom Field.
value
If value is absent or null, this field will be removed if it exists. Removing a field that does not exist returns an InvalidOperation error. If value is provided, it is set for the field defined by name.
Example: json
{
  "action": "setCustomField",
  "name": "exampleStringField",
  "value": "TextString"
}

on Line Item

Change LineItem Quantity

When multiple shipping addresses are set for a Line Item, use the Remove LineItem and Add LineItem update action to change the shipping details. Since it is not possible for the API to infer how the overall change in the Line Item quantity should be distributed over the sub-quantities, the shippingDetails field is kept in its current state to avoid data loss.
To change the Line Item quantity and shipping details together, use this update action in combination with the Set LineItem ShippingDetails update action in a single Order update command.
The LineItem price is updated as described in Line Item price selection.
action
String
"changeLineItemQuantity"
lineItemId
String
id of the LineItem to update. Either lineItemId or lineItemKey is required.
lineItemKey
String
key of the LineItem to update. Either lineItemId or lineItemKey is required.
quantity
Int
New value to set. If 0, the LineItem is removed from the Order.
Minimum0
externalPrice
Required when the Line Item uses ExternalPrice LineItemPriceMode. Sets the LineItem price to the given value when changing the quantity of a Line Item.
The LineItem price is updated as described in Line Item price selection.
To set the money value in high precision, use HighPrecisionMoneyDraft.
externalTotalPrice
Sets the LineItem price and totalPrice to the given value when changing the quantity of a Line Item with the ExternalTotal LineItemPriceMode. If externalTotalPrice is not given and the priceMode is ExternalTotal, the external price is unset and the priceMode is set to Platform.
Example: json
{
  "action": "changeLineItemQuantity",
  "lineItemId": "{{lineItemId}}",
  "quantity": 2
}

Set LineItem TaxRate

Can be used if the Cart has the External TaxMode.
action
String
"setLineItemTaxRate"
lineItemId
String
id of the LineItem to update. Either lineItemId or lineItemKey is required.
lineItemKey
String
key of the LineItem to update. Either lineItemId or lineItemKey is required.
externalTaxRate

Value to set. If empty, any existing value will be removed.

shippingKey
String
key of the ShippingMethod used for this Line Item. This is required for Carts with Multiple ShippingMode.
Example: json
{
  "action": "setLineItemTaxRate",
  "lineItemId": "{{lineItemId}}",
  "externalTaxRate": {
    "name": "Name",
    "amount": 0.19,
    "country": "DE"
  }
}

Set LineItem TaxAmount

Can be used if the Cart has the ExternalAmount TaxMode. This update action sets the taxedPrice and taxRate on a Line Item and must be used after any price-affecting change occurs.
action
String
"setLineItemTaxAmount"
lineItemId
String
id of the LineItem to update. Either lineItemId or lineItemKey is required.
lineItemKey
String
key of the LineItem to update. Either lineItemId or lineItemKey is required.
externalTaxAmount

Value to set. If empty, any existing value will be removed.

shippingKey
String
key of the ShippingMethod used for this Line Item. This is required for Carts with Multiple ShippingMode.
Example: json
{
  "action": "setLineItemTaxAmount",
  "lineItemId": "{{lineItemId}}",
  "externalTaxAmount": {
    "totalGross": {
      "currencyCode": "EUR",
      "centAmount": 4000
    },
    "taxRate": {
      "name": "Name",
      "amount": 0.19,
      "country": "DE"
    }
  }
}

Set LineItem Price

Sets the LineItem price and changes the priceMode to ExternalPrice LineItemPriceMode.
action
String
"setLineItemPrice"
lineItemId
String
id of the LineItem to update. Either lineItemId or lineItemKey is required.
lineItemKey
String
key of the LineItem to update. Either lineItemId or lineItemKey is required.
externalPrice
Value to set. If externalPrice is not given and the priceMode is ExternalPrice, the external price is unset and the priceMode is set to Platform.
To set the money value in high precision, use HighPrecisionMoneyDraft.
Example: json
{
  "action": "setLineItemPrice",
  "lineItemId": "{{lineItemId}}",
  "externalPrice": {
    "currencyCode": "EUR",
    "centAmount": 4000
  }
}

Set LineItem TotalPrice

Sets the LineItem totalPrice and price, and changes the priceMode to ExternalTotal LineItemPriceMode.
action
String
"setLineItemTotalPrice"
lineItemId
String
id of the LineItem to update. Either lineItemId or lineItemKey is required.
lineItemKey
String
key of the LineItem to update. Either lineItemId or lineItemKey is required.
externalTotalPrice
Value to set. If externalTotalPrice is not given and the priceMode is ExternalTotal, the external price is unset and the priceMode is set to Platform.
Example: json
{
  "action": "setLineItemTotalPrice",
  "lineItemId": "{{lineItemId}}",
  "externalTotalPrice": {
    "price": {
      "currencyCode": "EUR",
      "centAmount": 4000
    },
    "totalPrice": {
      "currencyCode": "EUR",
      "centAmount": 4000
    }
  }
}

Set LineItem DistributionChannel

Setting a distribution channel for a LineItem can lead to an updated price as described in Line Item price selection.
action
String
"setLineItemDistributionChannel"
lineItemId
String
id of the LineItem to update. Either lineItemId or lineItemKey is required.
lineItemKey
String
key of the LineItem to update. Either lineItemId or lineItemKey is required.
distributionChannel
  • If present, a Reference to the Channel is set for the LineItem specified by lineItemId.
  • If not present, the current Reference to a distribution channel is removed from the LineItem specified by lineItemId. The Channel must have the ProductDistribution ChannelRoleEnum.
Example: json
{
  "action": "setLineItemDistributionChannel",
  "lineItemId": "{{lineItemId}}",
  "distributionChannel": {
    "typeId": "channel",
    "id": "{{channel-id}}"
  }
}

Set LineItem ShippingDetails

action
String
"setLineItemShippingDetails"
lineItemId
String
id of the LineItem to update. Either lineItemId or lineItemKey is required.
lineItemKey
String
key of the LineItem to update. Either lineItemId or lineItemKey is required.
shippingDetails

Value to set. If empty, the existing value is removed.

Example: json
{
  "action": "setLineItemShippingDetails",
  "lineItemId": "{{lineItemId}}",
  "shippingDetails": {
    "targets": [
      {
        "addressKey": "addressKeyString",
        "quantity": 2
      }
    ]
  }
}

Set LineItem Custom Type

action
String
"setLineItemCustomType"
lineItemId
String
id of the LineItem to update. Either lineItemId or lineItemKey is required.
lineItemKey
String
key of the LineItem to update. Either lineItemId or lineItemKey is required.
type
Defines the Type that extends the Line Item with Custom Fields. If absent, any existing Type and Custom Fields are removed from the Line Item.
fields
Object containing the Custom Fields fields for the Line Item.
Required if at least one Custom Field is defined as required in the fieldDefinitions of the referenced Type.
Example: json
{
  "action": "setLineItemCustomType",
  "lineItemId": "{{lineItemId}}",
  "type": {
    "id": "{{type-id}}",
    "typeId": "type"
  },
  "fields": {
    "exampleStringField": "TextString"
  }
}

Set LineItem CustomField

action
String
"setLineItemCustomField"
lineItemId
String
id of the LineItem to update. Either lineItemId or lineItemKey is required.
lineItemKey
String
key of the LineItem to update. Either lineItemId or lineItemKey is required.
name
String
Name of the Custom Field.
value
If value is absent or null, this field will be removed if it exists. Removing a field that does not exist returns an InvalidOperation error. If value is provided, it is set for the field defined by name.
Example: json
{
  "action": "setLineItemCustomField",
  "lineItemId": "{{lineItemId}}",
  "name": "exampleStringField",
  "value": "TextString"
}

Transition LineItem State

Produces the Line Item State Transition Message.
action
String
"transitionLineItemState"
lineItemId
String
id of the LineItem to update. Either lineItemId or lineItemKey is required.
lineItemKey
String
key of the LineItem to update. Either lineItemId or lineItemKey is required.
quantity
Int
Quantity of Line Items that should transition State.
fromState
State the Line Item should transition from.
toState
State the Line Item should transition to.
actualTransitionDate
Date and time (UTC) to perform the State transition.
Example: json
{
  "action": "transitionLineItemState",
  "lineItemId": "{lineItemId}}",
  "quantity": 2,
  "fromState": {
    "typeId": "state",
    "id": "stateId"
  },
  "toState": {
    "typeId": "state",
    "id": "stateId"
  }
}

Import LineItem State

The import of States does not follow any predefined rules and should be only used if no transitions are defined. The quantity in the ItemStates must match the sum of all Line Item states' quantities.
action
String
"importLineItemState"
lineItemId
String
id of the LineItem to update. Either lineItemId or lineItemKey is required.
lineItemKey
String
key of the LineItem to update. Either lineItemId or lineItemKey is required.
state
Array of ItemState

New status of the Line Items.

Example: json
{
  "action": "importLineItemState",
  "lineItemId": "{{lineItemId}}",
  "state": {
    "typeId": "state",
    "id": "{{state-id}}"
  }
}

on Custom Line Item

Change CustomLineItem Quantity

When multiple shipping addresses are set for a Custom Line Item, use the Add CustomLineItem update action to change the shipping details. Since it is not possible for the API to infer how the overall change in the Custom Line Item quantity should be distributed over the sub-quantities, the shippingDetails field is kept in its current state to avoid data loss.
To change the Custom Line Item quantity and shipping details together, use this update action in combination with the Set CustomLineItem ShippingDetails update action in a single Order update command.
action
String
"changeCustomLineItemQuantity"
customLineItemId
String
id of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
customLineItemKey
String
key of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
quantity
Int
New value to set. If 0, the Custom Line Item is removed from the Order.
Minimum0
Example: json
{
  "action": "changeCustomLineItemQuantity",
  "customLineItemId": "{{customLineItemId}}",
  "quantity": 2
}

Set CustomLineItem TaxRate

Can be used if the Cart has the External TaxMode.
action
String
"setCustomLineItemTaxRate"
customLineItemId
String
id of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
customLineItemKey
String
key of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
externalTaxRate

Value to set. If empty, an existing value is removed.

shippingKey
String
key of the ShippingMethod used for this Custom Line Item. This is required for Carts with Multiple ShippingMode.
Example: json
{
  "action": "setCustomLineItemTaxRate",
  "customLineItemId": "{{customLineItemId}}",
  "externalTaxRate": {
    "name": "Name",
    "amount": 0.19,
    "country": "DE"
  }
}

Set CustomLineItem TaxAmount

Can be used if the Cart has the ExternalAmount TaxMode.
action
String
"setCustomLineItemTaxAmount"
customLineItemId
String
id of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
customLineItemKey
String
key of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
externalTaxAmount

Value to set. If empty, any existing value is removed.

shippingKey
String
key of the ShippingMethod used for this Custom Line Item. This is required for Carts with Multiple ShippingMode.
Example: json
{
  "action": "setCustomLineItemTaxAmount",
  "customLineItemId": "{{customerLineItemId}}",
  "externalTaxAmount": {
    "totalGross": {
      "currencyCode": "EUR",
      "centAmount": 4000
    },
    "taxRate": {
      "name": "Name",
      "country": "DE",
      "amount": 0.19
    }
  }
}

Change CustomLineItem Money

action
String
"changeCustomLineItemMoney"
customLineItemId
String
id of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
customLineItemKey
String
key of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
money

Value to set. Must not be empty. Can be a negative amount.

To set the money value in high precision, use HighPrecisionMoneyDraft.
Example: json
{
  "action": "changeCustomLineItemMoney",
  "customLineItemId": "{{customLineItemId}}",
  "money": {
    "currencyCode": "EUR",
    "centAmount": 4000
  }
}

Set CustomLineItem ShippingDetails

action
String
"setCustomLineItemShippingDetails"
customLineItemId
String
id of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
customLineItemKey
String
key of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
shippingDetails

Value to set. If empty, any existing value is removed.

Example: json
{
  "action": "setCustomLineItemShippingDetails",
  "customLineItemId": "{{customLineItemId}}",
  "shippingDetails": {
    "targets": [
      {
        "addressKey": "addressKey",
        "quantity": 1
      }
    ]
  }
}

Set CustomLineItem Custom Type

action
String
"setCustomLineItemCustomType"
customLineItemId
String
id of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
customLineItemKey
String
key of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
type
Defines the Type that extends the Custom Line Item with Custom Fields. If absent, any existing Type and Custom Fields are removed from the Custom Line Item.
fields
Object containing the Custom Fields fields for the Custom Line Item.
Required if at least one Custom Field is defined as required in the fieldDefinitions of the referenced Type.
Example: json
{
  "action": "setCustomLineItemCustomType",
  "customLineItemId": "{{customLineItemId}}",
  "type": {
    "id": "{{type-id}}",
    "typeId": "type"
  },
  "fields": {
    "exampleStringField": "TextString"
  }
}

Set CustomLineItem CustomField

action
String
"setCustomLineItemCustomField"
customLineItemId
String
id of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
customLineItemKey
String
key of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
name
String
Name of the Custom Field.
value
If value is absent or null, this field will be removed if it exists. Removing a field that does not exist returns an InvalidOperation error. If value is provided, it is set for the field defined by name.
Example: json
{
  "action": "setCustomLineItemCustomField",
  "customLineItemId": "{{customLineItemId}}",
  "name": "exampleStringField",
  "value": "TextString"
}

Transition CustomLineItem State

Produces the Custom Line Item State Transition Message.
action
String
"transitionCustomLineItemState"
customLineItemId
String
id of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
customLineItemKey
String
key of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
quantity
Int
Number of Custom Line Items that should transition State.
fromState
State the Custom Line Item should transition from.
toState
State the Custom Line Item should transition to.
actualTransitionDate
Date and time (UTC) to perform the State transition.
Example: json
{
  "action": "transitionCustomLineItemState",
  "customLineItemId": "{{customLineItemId}}",
  "quantity": 2,
  "fromState": {
    "typeId": "state",
    "id": "stateId"
  },
  "toState": {
    "typeId": "state",
    "id": "stateId"
  }
}

Import CustomLineItem State

The import of States does not follow any predefined rules and should be only used if no transitions are defined. The quantity of the ItemStates must match the sum of all Custom Line Item states' quantities.
action
String
"importCustomLineItemState"
customLineItemId
String
id of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
customLineItemKey
String
key of the CustomLineItem to update. Either customLineItemId or customLineItemKey is required.
state
Array of ItemState

New status of the Custom Line Items.

Example: json
{
  "action": "importCustomLineItemState",
  "customLineItemId": "{{customLineItemId}}",
  "state": [
    {
      "quantity": 1,
      "state": {
        "typeId": "state",
        "id": "{{state-id}}"
      }
    }
  ]
}

on Billing Address

Set Billing Address Custom Type

action
String
"setBillingAddressCustomType"
type
Defines the Type that extends the billingAddress with Custom Fields. If absent, any existing Type and Custom Fields are removed from the billingAddress.
fields
Object containing the Custom Fields fields for the billingAddress.
Required if at least one Custom Field is defined as required in the fieldDefinitions of the referenced Type.
Example: json
{
  "action": "setBillingAddressCustomType",
  "type": {
    "id": "{{type-id}}",
    "typeId": "type"
  },
  "fields": {
    "exampleStringField": "TextString"
  }
}

Set Billing Address CustomField

action
String
"setBillingAddressCustomField"
name
String
Name of the Custom Field.
value
If value is absent or null, this field will be removed if it exists. Removing a field that does not exist returns an InvalidOperation error. If value is provided, it is set for the field defined by name.
Example: json
{
  "action": "setBillingAddressCustomField",
  "name": "exampleStringField",
  "value": "TextString"
}

on Shipping Address

Set Shipping Address Custom Type

action
String
"setShippingAddressCustomType"
type
Defines the Type that extends the shippingAddress with Custom Fields. If absent, any existing Type and Custom Fields are removed from the shippingAddress.
fields
Object containing the Custom Fields fields for the shippingAddress.
Required if at least one Custom Field is defined as required in the fieldDefinitions of the referenced Type.
Example: json
{
  "action": "setShippingAddressCustomType",
  "type": {
    "id": "{{type-id}}",
    "typeId": "type"
  },
  "fields": {
    "exampleStringField": "TextString"
  }
}

Set Shipping Address CustomField

action
String
"setShippingAddressCustomField"
name
String
Name of the Custom Field.
value
If value is absent or null, this field will be removed if it exists. Removing a field that does not exist returns an InvalidOperation error. If value is provided, it is set for the field defined by name.
Example: json
{
  "action": "setShippingAddressCustomField",
  "name": "exampleStringField",
  "value": "TextString"
}

on ItemShipping Address

Set ItemShipping Address Custom Type

action
String
"setItemShippingAddressCustomType"
addressKey
String
key of the Address in itemShippingAddresses.
type
Defines the Type that extends the itemShippingAddress with Custom Fields. If absent, any existing Type and Custom Fields are removed from the itemShippingAddress.
fields
Object containing the Custom Fields fields for the itemShippingAddress.
Required if at least one Custom Field is defined as required in the fieldDefinitions of the referenced Type.
Example: json
{
  "action": "setItemShippingAddressCustomType",
  "addressKey": "{{address-key}}",
  "type": {
    "id": "{{type-id}}",
    "typeId": "type"
  },
  "fields": {
    "exampleStringField": "TextString"
  }
}

Set ItemShipping Address CustomField

action
String
"setItemShippingAddressCustomField"
addressKey
String
key of the Address in itemShippingAddresses.
name
String
Name of the Custom Field.
value
If value is absent or null, this field will be removed if it exists. Removing a field that does not exist returns an InvalidOperation error. If value is provided, it is set for the field defined by name.
Example: json
{
  "action": "setItemShippingAddressCustomField",
  "addressKey": "{{address-key}}",
  "name": "exampleStringField",
  "value": "TextString"
}

on Shipping Method

Set ShippingMethod TaxAmount

A Shipping Method tax amount can be set if the Cart has the ExternalAmount TaxMode.
action
String
"setShippingMethodTaxAmount"
shippingKey
String
key of the ShippingMethod to update. This is required and valid only for Orders with Multiple ShippingMode. An InvalidOperation error is returned if shippingKey is provided for Orders with Single ShippingMode, or omitted for Orders with Multiple ShippingMode.
externalTaxAmount

Value to set. If empty, any existing value will be removed.

Example: json
{
  "action": "setShippingMethodTaxAmount",
  "shippingKey": "shipping-method-key",
  "externalTaxAmount": {
    "totalGross": {
      "currencyCode": "EUR",
      "centAmount": 4000
    },
    "taxRate": {
      "name": "Name",
      "amount": 0.19,
      "country": "DE"
    }
  }
}

Set ShippingMethod TaxRate

A Shipping Method Tax Rate can be set if the Cart has the External TaxMode.
action
String
"setShippingMethodTaxRate"
shippingKey
String
key of the ShippingMethod to update. This is required and valid only for Orders with Multiple ShippingMode. An InvalidOperation error is returned if shippingKey is provided for Orders with Single ShippingMode, or omitted for Orders with Multiple ShippingMode.
externalTaxRate

Value to set. If empty, any existing value is removed.

Example: json
{
  "action": "setShippingMethodTaxRate",
  "shippingKey": "shipping-method-key",
  "externalTaxRate": {
    "name": "Name",
    "amount": 0.19,
    "country": "DE"
  }
}

on Shipping

Set Shipping Custom Type

This action sets, overwrites, or removes any existing Custom Type and Custom Fields for the Order's shippingMethod or shipping.
action
String
"setShippingCustomType"
shippingKey
String
The shippingKey of the Shipping to customize. Used to specify which Shipping Method to customize on a Order with Multiple ShippingMode. Leave this empty to customize the one and only ShippingMethod on a Single ShippingMode Order.
type
Defines the Type that extends the specified ShippingMethod with Custom Fields. If absent, any existing Type and Custom Fields are removed from the ShippingMethod.
fields
Object containing the Custom Fields fields for the shippingMethod.
Required if at least one Custom Field is defined as required in the fieldDefinitions of the referenced Type.
Example: json
{
  "action": "setShippingCustomType",
  "shippingKey": "shipping-key-express",
  "type": {
    "id": "{{type-id}}",
    "typeId": "type"
  },
  "fields": {
    "exampleStringField": "TextString"
  }
}

Set Shipping CustomField

action
String
"setShippingCustomField"
shippingKey
String
The shippingKey of the Shipping to customize. Used to specify which Shipping Method to customize on a Order with Multiple ShippingMode. Leave this empty to customize the one and only ShippingMethod on a Single ShippingMode Order.
name
String
Name of the Custom Field.
value
If value is absent or null, this field will be removed if it exists. Trying to remove a field that does not exist will fail with an InvalidOperation error. If value is provided, it is set for the field defined by name.
Example: json
{
  "action": "setShippingCustomField",
  "shippingKey": "shipping-key-express",
  "name": "exampleStringField",
  "value": "TextString"
}

on Delivery

Set Delivery Address

Produces the DeliveryAddressSet Message.
action
String
"setDeliveryAddress"
deliveryId
String
id of an existing Delivery.
Either deliveryId or deliveryKey must be provided.
deliveryKey
String
key of an existing Delivery.
Either deliveryId or deliveryKey must be provided.
address

Value to set. If empty, any existing value will be removed.

Example: json
{
  "action": "setDeliveryAddress",
  "deliveryId": "{{deliveryId}}",
  "address": {
    "key": "exampleKey",
    "title": "My Address",
    "salutation": "Mr.",
    "firstName": "Example",
    "lastName": "Person",
    "streetName": "Example Street",
    "streetNumber": "4711",
    "additionalStreetInfo": "Backhouse",
    "postalCode": "80933",
    "city": "Exemplary City",
    "region": "Exemplary Region",
    "state": "Exemplary State",
    "country": "DE",
    "company": "My Company Name",
    "department": "Sales",
    "building": "Hightower 1",
    "apartment": "247",
    "pOBox": "2471",
    "phone": "+49 89 12345678",
    "mobile": "+49 171 2345678",
    "email": "email@example.com",
    "fax": "+49 89 12345679",
    "additionalAddressInfo": "no additional Info",
    "externalId": "Information not needed"
  }
}

Add Parcel to Delivery

To add a Parcel, at least one Delivery must exist.
Produces the Parcel Added To Delivery Message.
action
String
"addParcelToDelivery"
deliveryId
String
id of an existing Delivery.
Either deliveryId or deliveryKey must be provided.
deliveryKey
String
key of an existing Delivery.
Either deliveryId or deliveryKey must be provided.
parcelKey
String
key of an existing Parcel.
measurements

Value to set.

trackingData

Value to set.

items
Array of DeliveryItem

Value to set.

custom

Custom Fields for the Parcel.

Example: json
{
  "action": "addParcelToDelivery",
  "deliveryId": "{{deliveryId}}",
  "measurements": {
    "heightInMillimeter": 11,
    "lengthInMillimeter": 11
  },
  "trackingData": {
    "trackingId": "{{trackingId}}"
  },
  "items": {
    "id": "{{lineItemId}}",
    "quantity": 2
  }
}

Remove Parcel from Delivery

Produces the ParcelRemovedFromDelivery Message.
action
String
"removeParcelFromDelivery"
parcelId
String
id of an existing Parcel.
Either parcelId or parcelKey must be provided.
parcelKey
String
key of an existing Parcel.
Either parcelId or parcelKey must be provided.
Example: json
{
  "action": "removeParcelFromDelivery",
  "parcelId": "{{parcelId}}"
}

Set Delivery Items

Produces the Delivery Items Updated Message.
action
String
"setDeliveryItems"
deliveryId
String
id of an existing Delivery.
Either deliveryId or deliveryKey must be provided.
deliveryKey
String
key of an existing Delivery.
Either deliveryId or deliveryKey must be provided.
items
Array of DeliveryItem

Value to set. If empty, any existing value is removed.

Example: json
{
  "action": "setDeliveryItems",
  "deliveryId": "{{deliveryId}}",
  "items": [
    {
      "id": "{{itemId}}",
      "quantity": 2
    }
  ]
}

Set Delivery Custom Type

action
String
"setDeliveryCustomType"
deliveryId
String
id of an existing Delivery.
Either deliveryId or deliveryKey must be provided.
deliveryKey
String
key of an existing Delivery.
Either deliveryId or deliveryKey must be provided.
type
Defines the Type that extends the Delivery with Custom Fields. If absent, any existing Type and Custom Fields are removed from the Delivery.
fields
Object containing the Custom Fields fields for the Delivery.
Required if at least one Custom Field is defined as required in the fieldDefinitions of the referenced Type.
Example: json
{
  "action": "setDeliveryCustomType",
  "deliveryId": "exampleDeliveryID",
  "type": {
    "id": "{{type-id}}",
    "typeId": "type"
  },
  "fields": {
    "exampleStringField": "TextString"
  }
}

Set Delivery CustomField

action
String
"setDeliveryCustomField"
deliveryId
String
id of an existing Delivery.
Either deliveryId or deliveryKey must be provided.
deliveryKey
String
key of an existing Delivery.
Either deliveryId or deliveryKey must be provided.
name
String
Name of the Custom Field.
value
If value is absent or null, this field will be removed if it exists. Removing a field that does not exist returns an InvalidOperation error. If value is provided, it is set for the field defined by name.
Example: json
{
  "action": "setDeliveryCustomField",
  "deliveryId": "exampleDeliveryID",
  "name": "exampleStringField",
  "value": "TextString"
}

on Delivery Address

Set Delivery Address Custom Type

action
String
"setDeliveryAddressCustomType"
deliveryId
String
id of an existing Delivery.
Either deliveryId or deliveryKey must be provided.
deliveryKey
String
key of an existing Delivery.
Either deliveryId or deliveryKey must be provided.
type
Defines the Type that extends the Delivery address with Custom Fields. If absent, any existing Type and Custom Fields are removed from the Delivery address.
fields
Object containing the Custom Fields fields for the Delivery address.
Required if at least one Custom Field is defined as required in the fieldDefinitions of the referenced Type.
Example: json
{
  "action": "setDeliveryAddressCustomType",
  "deliveryId": "{{delivery-id}}",
  "type": {
    "id": "{{type-id}}",
    "typeId": "type"
  },
  "fields": {
    "exampleStringField": "TextString"
  }
}

Set Delivery Address CustomField

action
String
"setDeliveryAddressCustomField"
deliveryId
String
id of an existing Delivery.
Either deliveryId or deliveryKey must be provided.
deliveryKey
String
key of an existing Delivery.
Either deliveryId or deliveryKey must be provided.
name
String
Name of the Custom Field.
value
If value is absent or null, this field will be removed if it exists. Removing a field that does not exist returns an InvalidOperation error. If value is provided, it is set for the field defined by name.
Example: json
{
  "action": "setDeliveryAddressCustomField",
  "deliveryId": "{{delivery-id}}",
  "name": "exampleStringField",
  "value": "TextString"
}

on Parcel

Set Parcel Measurements

Produces the ParcelMeasurementsUpdated Message.
action
String
"setParcelMeasurements"
parcelId
String
id of an existing Parcel.
Either parcelId or parcelKey must be provided.
parcelKey
String
key of an existing Parcel.
Either parcelId or parcelKey must be provided.
measurements

Value to set. If empty, any existing value will be removed.

Example: json
{
  "action": "setParcelMeasurements",
  "parcelId": "{{parcelId}}",
  "measurements": {
    "heightInMillimeter": 11,
    "widthInMillimeter": 11
  }
}

Set Parcel Tracking Data

Produces the ParcelTrackingDataUpdated Message.
action
String
"setParcelTrackingData"
parcelId
String
id of an existing Parcel.
Either parcelId or parcelKey must be provided.
parcelKey
String
key of an existing Parcel.
Either parcelId or parcelKey must be provided.
trackingData

Value to set. If empty, any existing value will be removed.

Example: json
{
  "action": "setParcelTrackingData",
  "parcelId": "{{parcelId))",
  "trackingData": {
    "trackingId": "{{trackingId}}",
    "carrier": "TNT",
    "provider": "providerName",
    "providerTransaction": "{{transactionId}}",
    "isReturn": false
  }
}

Set Parcel Items

Produces the ParcelItemsUpdated Message.
action
String
"setParcelItems"
parcelId
String
id of an existing Parcel.
Either parcelId or parcelKey must be provided.
parcelKey
String
key of an existing Parcel.
Either parcelId or parcelKey must be provided.
items
Array of DeliveryItem

Value to set. If empty, any existing value will be removed.

Example: json
{
  "action": "setParcelItems",
  "parcelId": "{{parcelId}}",
  "items": [
    {
      "id": "{{lineItemId}}",
      "quantity": 2
    }
  ]
}

Set Parcel Custom Type

action
String
"setParcelCustomType"
parcelId
String
id of an existing Parcel.
Either parcelId or parcelKey must be provided.
parcelKey
String
key of an existing Parcel.
Either parcelId or parcelKey must be provided.
type
Defines the Type that extends the Parcel with Custom Fields. If absent, any existing Type and Custom Fields are removed from the Parcel.
fields
Object containing the Custom Fields fields for the Parcel.
Required if at least one Custom Field is defined as required in the fieldDefinitions of the referenced Type.
Example: json
{
  "action": "setParcelCustomType",
  "parcelId": "exampleParcelID",
  "type": {
    "id": "{{type-id}}",
    "typeId": "type"
  },
  "fields": {
    "exampleStringField": "TextString"
  }
}

Set Parcel CustomField

action
String
"setParcelCustomField"
parcelId
String
id of an existing Parcel.
Either parcelId or parcelKey must be provided.
parcelKey
String
key of an existing Parcel.
Either parcelId or parcelKey must be provided.
name
String
Name of the Custom Field.
value
If value is absent or null, this field will be removed if it exists. Removing a field that does not exist returns an InvalidOperation error. If value is provided, it is set for the field defined by name.
Example: json
{
  "action": "setParcelCustomField",
  "parcelId": "exampleParcelID",
  "name": "exampleStringField",
  "value": "TextString"
}

on ReturnItem

Set ReturnItem Custom Type

action
String
"setReturnItemCustomType"
returnItemId
String
id of the ReturnItem to update. Either returnItemId or returnItemKey is required.
returnItemKey
String
key of the ReturnItem to update. Either returnItemId or returnItemKey is required.
type
Defines the Type that extends the Return Item with Custom Fields. If absent, any existing Type and Custom Fields are removed from the Return Item.
fields
Object containing the Custom Fields fields for the Return Item.
Required if at least one Custom Field is defined as required in the fieldDefinitions of the referenced Type.
Example: json
{
  "action": "setReturnItemCustomType",
  "returnItemId": "examplereturnItemID",
  "type": {
    "id": "{{type-id}}",
    "typeId": "type"
  },
  "fields": {
    "exampleStringField": "TextString"
  }
}

Set ReturnItem CustomField

action
String
"setReturnItemCustomField"
returnItemId
String
id of the ReturnItem to update. Either returnItemId or returnItemKey is required.
returnItemKey
String
key of the ReturnItem to update. Either returnItemId or returnItemKey is required.
name
String
Name of the Custom Field.
value
If value is absent or null, this field will be removed if it exists. Removing a field that does not exist returns an InvalidOperation error. If value is provided, it is set for the field defined by name.
Example: json
{
  "action": "setReturnItemCustomField",
  "returnItemId": "exampleReturnItemID",
  "name": "exampleStringField",
  "value": "TextString"
}

Apply OrderEdit

The stagedActions field cannot be updated if the Order Edit result is OrderEdit Applied.
POST
https://api.{region}.commercetools.com/{projectKey}/orders/edits/{id}/apply
Applying an OrderEdit produces the OrderEditApplied Message.
OAuth 2.0 Scopes:
manage_order_edits:{projectKey}
Path parameters:
region
String
Region in which the Project is hosted.
projectKey
String
key of the Project.
id
String
id of the OrderEdit.
Request Body:
application/json
If the editVersion and/or resourceVersion do not match the actual version, a ConcurrentModification error will be returned.
editVersion
Int
Current version of the OrderEdit to be applied.
resourceVersion
Int
Current version of the Order to which the OrderEdit is applied.
Response:
200

OrderEdit

as
application/json

Delete OrderEdit

Delete OrderEdit by ID

Deleting an OrderEdit does not affect the related Order.

DELETE
https://api.{region}.commercetools.com/{projectKey}/orders/edits/{id}

Deletes an OrderEdit in the Project.

OAuth 2.0 Scopes:
manage_order_edits:{projectKey}
Path parameters:
region
String
Region in which the Project is hosted.
projectKey
String
key of the Project.
id
String
id of the OrderEdit.
Query parameters:
version
Int

Last seen version of the resource.

expand
The parameter can be passed multiple times.
Response:
200

OrderEdit

as
application/json
Request Example:cURL
curl -X DELETE https://api.{region}.commercetools.com/{projectKey}/orders/edits/{id}?version={version} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
200 Response Example: OrderEditjson
{
  "id": "df20c5ea-b114-4aab-b330-740b0e9f3099",
  "version": 1,
  "resource": {
    "typeId": "order",
    "id": "ed454f4e-c43a-485f-a86f-046c691b1363"
  },
  "key": "order-edit-key",
  "createdAt": "2018-10-04T15:22:31.639Z",
  "lastModifiedAt": "2018-10-04T15:22:31.639Z",
  "stagedActions": [
    {
      "action": "setCustomerEmail",
      "email": "user@localhost"
    }
  ],
  "result": {
    "preview": {
      "type": "Order",
      "id": "ed454f4e-c43a-485f-a86f-046c691b1363",
      "version": 3,
      "customerId": "bf5d96ce-4704-45b2-8842-d409dd34cdfc",
      "customerEmail": "user@localhost",
      "createdAt": "2018-05-15T12:40:17.301Z",
      "lastModifiedAt": "2018-05-15T12:40:17.301Z",
      "totalPrice": {
        "type": "centPrecision",
        "currencyCode": "EUR",
        "centAmount": 3970,
        "fractionDigits": 2
      },
      "taxedPrice": {
        "totalNet": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 3336,
          "fractionDigits": 2
        },
        "totalGross": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 3970,
          "fractionDigits": 2
        },
        "taxPortions": [
          {
            "rate": 0.19,
            "amount": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 634,
              "fractionDigits": 2
            },
            "name": "19% MwSt"
          }
        ]
      },
      "country": "DE",
      "orderState": "Open",
      "syncInfo": [],
      "returnInfo": [],
      "refusedGifts": [],
      "shippingInfo": {
        "shippingMethodName": "DHL",
        "price": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 570,
          "fractionDigits": 2
        },
        "shippingRate": {
          "price": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 570,
            "fractionDigits": 2
          },
          "tiers": []
        },
        "taxRate": {
          "name": "19% MwSt",
          "amount": 0.19,
          "includedInPrice": true,
          "country": "DE",
          "id": "rrsT1Jbw",
          "subRates": []
        },
        "taxCategory": {
          "typeId": "tax-category",
          "id": "fdeb9625-10f8-476c-a549-5d5c6d1bd412"
        },
        "deliveries": [],
        "shippingMethod": {
          "typeId": "shipping-method",
          "id": "d18b3f77-92de-4893-b6e3-b5c9c8c1eb96"
        },
        "taxedPrice": {
          "totalNet": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 479,
            "fractionDigits": 2
          },
          "totalGross": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 570,
            "fractionDigits": 2
          },
          "taxPortions": [
            {
              "rate": 0.1,
              "amount": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 634,
                "fractionDigits": 2
              },
              "name": "Bla"
            }
          ]
        },
        "shippingMethodState": "MatchesCart"
      },
      "taxMode": "Platform",
      "inventoryMode": "None",
      "taxRoundingMode": "HalfEven",
      "taxCalculationMode": "LineItemLevel",
      "origin": "Customer",
      "lineItems": [
        {
          "id": "31099128-dba8-40a7-bb6c-d12857149ff8",
          "productId": "d6d0c517-572e-4d26-b80e-ffce825334a4",
          "name": {
            "en": "GIRLS CREW"
          },
          "productType": {
            "typeId": "product-type",
            "id": "6dc75271-b0e5-4ae9-9158-faa1fff65f7b",
            "version": 2
          },
          "productSlug": {
            "en": "girls-crew1522841378290"
          },
          "variant": {
            "id": 1,
            "sku": "sku_GIRLS_CREW_variant1_1522841378290",
            "prices": [
              {
                "value": {
                  "type": "centPrecision",
                  "currencyCode": "EUR",
                  "centAmount": 3400,
                  "fractionDigits": 2
                },
                "id": "b5595b13-bbb8-44ab-a2e2-89c18edf1b22"
              }
            ],
            "images": [
              {
                "url": "https://www.commercetools.com/cli/data/253234387_1.jpg",
                "dimensions": {
                  "w": 1400,
                  "h": 1400
                }
              }
            ],
            "attributes": [],
            "assets": []
          },
          "price": {
            "value": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3400,
              "fractionDigits": 2
            },
            "id": "b5595b13-bbb8-44ab-a2e2-89c18edf1b22"
          },
          "quantity": 1,
          "discountedPricePerQuantity": [],
          "taxRate": {
            "name": "19% MwSt",
            "amount": 0.19,
            "includedInPrice": true,
            "country": "DE",
            "id": "rrsT1Jbw",
            "subRates": []
          },
          "state": [
            {
              "quantity": 1,
              "state": {
                "typeId": "state",
                "id": "60a64e06-b4e8-4205-a0f3-94bc203e2d6d"
              }
            }
          ],
          "priceMode": "Platform",
          "totalPrice": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 3400,
            "fractionDigits": 2
          },
          "taxedPrice": {
            "totalNet": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 2857,
              "fractionDigits": 2
            },
            "totalGross": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3400,
              "fractionDigits": 2
            },
            "taxPortions": [
              {
                "rate": 0.1,
                "amount": {
                  "type": "centPrecision",
                  "currencyCode": "EUR",
                  "centAmount": 634,
                  "fractionDigits": 2
                },
                "name": "Bla"
              }
            ]
          },
          "lineItemMode": "Standard",
          "perMethodTaxRate": [],
          "taxedPricePortions": []
        }
      ],
      "customLineItems": [],
      "transactionFee": true,
      "discountCodes": [],
      "cart": {
        "typeId": "cart",
        "id": "6c97e772-9769-4419-8adc-501c7c5b6088"
      },
      "shippingAddress": {
        "id": "51RkSh-E",
        "salutation": "Mr",
        "firstName": "user",
        "lastName": "lastname",
        "streetName": "streetname",
        "streetNumber": "2",
        "postalCode": "101256",
        "city": "Berlin",
        "country": "DE",
        "building": "34",
        "pOBox": "12344",
        "email": "user@example.com"
      },
      "billingAddress": {
        "id": "51RkSh-E",
        "salutation": "Mr",
        "firstName": "user",
        "lastName": "lastname",
        "streetName": "streetname",
        "streetNumber": "2",
        "postalCode": "101256",
        "city": "Berlin",
        "country": "DE",
        "building": "34",
        "pOBox": "12344",
        "email": "user@example.com"
      },
      "itemShippingAddresses": [],
      "shipping": [],
      "shippingMode": "Single"
    },
    "messagePayloads": [
      {
        "email": "user@localhost",
        "type": "OrderCustomerEmailSet"
      },
      {
        "edit": {
          "typeId": "order-edit",
          "id": "df20c5ea-b114-4aab-b330-740b0e9f3099"
        },
        "result": {
          "type": "Applied",
          "appliedAt": "2018-10-04T15:29:14.091Z",
          "excerptBeforeEdit": {
            "totalPrice": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3970,
              "fractionDigits": 2
            },
            "taxedPrice": {
              "totalNet": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3336,
                "fractionDigits": 2
              },
              "totalGross": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3970,
                "fractionDigits": 2
              },
              "taxPortions": [
                {
                  "rate": 0.19,
                  "amount": {
                    "type": "centPrecision",
                    "currencyCode": "EUR",
                    "centAmount": 634,
                    "fractionDigits": 2
                  },
                  "name": "19% MwSt"
                }
              ]
            },
            "version": 1
          },
          "excerptAfterEdit": {
            "totalPrice": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3970,
              "fractionDigits": 2
            },
            "taxedPrice": {
              "totalNet": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3336,
                "fractionDigits": 2
              },
              "totalGross": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3970,
                "fractionDigits": 2
              },
              "taxPortions": [
                {
                  "rate": 0.19,
                  "amount": {
                    "type": "centPrecision",
                    "currencyCode": "EUR",
                    "centAmount": 634,
                    "fractionDigits": 2
                  },
                  "name": "19% MwSt"
                }
              ]
            },
            "version": 3
          }
        },
        "type": "OrderEditApplied"
      }
    ],
    "type": "PreviewSuccess"
  },
  "comment": "sample-comment"
}

Delete OrderEdit by Key

Deleting an Order Edit does not affect the related Order.

DELETE
https://api.{region}.commercetools.com/{projectKey}/orders/edits/key={key}

Deletes an OrderEdit in the Project.

OAuth 2.0 Scopes:
manage_order_edits:{projectKey}
Path parameters:
region
String
Region in which the Project is hosted.
projectKey
String
key of the Project.
key
String
key of the OrderEdit.
Query parameters:
version
Int

Last seen version of the resource.

expand
The parameter can be passed multiple times.
Response:
200

OrderEdit

as
application/json
Request Example:cURL
curl -X DELETE https://api.{region}.commercetools.com/{projectKey}/orders/edits/key={key}?version={version} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
200 Response Example: OrderEditjson
{
  "id": "df20c5ea-b114-4aab-b330-740b0e9f3099",
  "version": 1,
  "resource": {
    "typeId": "order",
    "id": "ed454f4e-c43a-485f-a86f-046c691b1363"
  },
  "key": "order-edit-key",
  "createdAt": "2018-10-04T15:22:31.639Z",
  "lastModifiedAt": "2018-10-04T15:22:31.639Z",
  "stagedActions": [
    {
      "action": "setCustomerEmail",
      "email": "user@localhost"
    }
  ],
  "result": {
    "preview": {
      "type": "Order",
      "id": "ed454f4e-c43a-485f-a86f-046c691b1363",
      "version": 3,
      "customerId": "bf5d96ce-4704-45b2-8842-d409dd34cdfc",
      "customerEmail": "user@localhost",
      "createdAt": "2018-05-15T12:40:17.301Z",
      "lastModifiedAt": "2018-05-15T12:40:17.301Z",
      "totalPrice": {
        "type": "centPrecision",
        "currencyCode": "EUR",
        "centAmount": 3970,
        "fractionDigits": 2
      },
      "taxedPrice": {
        "totalNet": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 3336,
          "fractionDigits": 2
        },
        "totalGross": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 3970,
          "fractionDigits": 2
        },
        "taxPortions": [
          {
            "rate": 0.19,
            "amount": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 634,
              "fractionDigits": 2
            },
            "name": "19% MwSt"
          }
        ]
      },
      "country": "DE",
      "orderState": "Open",
      "syncInfo": [],
      "returnInfo": [],
      "refusedGifts": [],
      "shippingInfo": {
        "shippingMethodName": "DHL",
        "price": {
          "type": "centPrecision",
          "currencyCode": "EUR",
          "centAmount": 570,
          "fractionDigits": 2
        },
        "shippingRate": {
          "price": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 570,
            "fractionDigits": 2
          },
          "tiers": []
        },
        "taxRate": {
          "name": "19% MwSt",
          "amount": 0.19,
          "includedInPrice": true,
          "country": "DE",
          "id": "rrsT1Jbw",
          "subRates": []
        },
        "taxCategory": {
          "typeId": "tax-category",
          "id": "fdeb9625-10f8-476c-a549-5d5c6d1bd412"
        },
        "deliveries": [],
        "shippingMethod": {
          "typeId": "shipping-method",
          "id": "d18b3f77-92de-4893-b6e3-b5c9c8c1eb96"
        },
        "taxedPrice": {
          "totalNet": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 479,
            "fractionDigits": 2
          },
          "totalGross": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 570,
            "fractionDigits": 2
          },
          "taxPortions": [
            {
              "rate": 0.1,
              "amount": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 634,
                "fractionDigits": 2
              },
              "name": "Bla"
            }
          ]
        },
        "shippingMethodState": "MatchesCart"
      },
      "taxMode": "Platform",
      "inventoryMode": "None",
      "taxRoundingMode": "HalfEven",
      "taxCalculationMode": "LineItemLevel",
      "origin": "Customer",
      "lineItems": [
        {
          "id": "31099128-dba8-40a7-bb6c-d12857149ff8",
          "productId": "d6d0c517-572e-4d26-b80e-ffce825334a4",
          "name": {
            "en": "GIRLS CREW"
          },
          "productType": {
            "typeId": "product-type",
            "id": "6dc75271-b0e5-4ae9-9158-faa1fff65f7b",
            "version": 2
          },
          "productSlug": {
            "en": "girls-crew1522841378290"
          },
          "variant": {
            "id": 1,
            "sku": "sku_GIRLS_CREW_variant1_1522841378290",
            "prices": [
              {
                "value": {
                  "type": "centPrecision",
                  "currencyCode": "EUR",
                  "centAmount": 3400,
                  "fractionDigits": 2
                },
                "id": "b5595b13-bbb8-44ab-a2e2-89c18edf1b22"
              }
            ],
            "images": [
              {
                "url": "https://www.commercetools.com/cli/data/253234387_1.jpg",
                "dimensions": {
                  "w": 1400,
                  "h": 1400
                }
              }
            ],
            "attributes": [],
            "assets": []
          },
          "price": {
            "value": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3400,
              "fractionDigits": 2
            },
            "id": "b5595b13-bbb8-44ab-a2e2-89c18edf1b22"
          },
          "quantity": 1,
          "discountedPricePerQuantity": [],
          "taxRate": {
            "name": "19% MwSt",
            "amount": 0.19,
            "includedInPrice": true,
            "country": "DE",
            "id": "rrsT1Jbw",
            "subRates": []
          },
          "state": [
            {
              "quantity": 1,
              "state": {
                "typeId": "state",
                "id": "60a64e06-b4e8-4205-a0f3-94bc203e2d6d"
              }
            }
          ],
          "priceMode": "Platform",
          "totalPrice": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 3400,
            "fractionDigits": 2
          },
          "taxedPrice": {
            "totalNet": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 2857,
              "fractionDigits": 2
            },
            "totalGross": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3400,
              "fractionDigits": 2
            },
            "taxPortions": [
              {
                "rate": 0.1,
                "amount": {
                  "type": "centPrecision",
                  "currencyCode": "EUR",
                  "centAmount": 634,
                  "fractionDigits": 2
                },
                "name": "Bla"
              }
            ]
          },
          "lineItemMode": "Standard",
          "perMethodTaxRate": [],
          "taxedPricePortions": []
        }
      ],
      "customLineItems": [],
      "transactionFee": true,
      "discountCodes": [],
      "cart": {
        "typeId": "cart",
        "id": "6c97e772-9769-4419-8adc-501c7c5b6088"
      },
      "shippingAddress": {
        "id": "51RkSh-E",
        "salutation": "Mr",
        "firstName": "user",
        "lastName": "lastname",
        "streetName": "streetname",
        "streetNumber": "2",
        "postalCode": "101256",
        "city": "Berlin",
        "country": "DE",
        "building": "34",
        "pOBox": "12344",
        "email": "user@example.com"
      },
      "billingAddress": {
        "id": "51RkSh-E",
        "salutation": "Mr",
        "firstName": "user",
        "lastName": "lastname",
        "streetName": "streetname",
        "streetNumber": "2",
        "postalCode": "101256",
        "city": "Berlin",
        "country": "DE",
        "building": "34",
        "pOBox": "12344",
        "email": "user@example.com"
      },
      "itemShippingAddresses": [],
      "shipping": [],
      "shippingMode": "Single"
    },
    "messagePayloads": [
      {
        "email": "user@localhost",
        "type": "OrderCustomerEmailSet"
      },
      {
        "edit": {
          "typeId": "order-edit",
          "id": "df20c5ea-b114-4aab-b330-740b0e9f3099"
        },
        "result": {
          "type": "Applied",
          "appliedAt": "2018-10-04T15:29:14.091Z",
          "excerptBeforeEdit": {
            "totalPrice": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3970,
              "fractionDigits": 2
            },
            "taxedPrice": {
              "totalNet": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3336,
                "fractionDigits": 2
              },
              "totalGross": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3970,
                "fractionDigits": 2
              },
              "taxPortions": [
                {
                  "rate": 0.19,
                  "amount": {
                    "type": "centPrecision",
                    "currencyCode": "EUR",
                    "centAmount": 634,
                    "fractionDigits": 2
                  },
                  "name": "19% MwSt"
                }
              ]
            },
            "version": 1
          },
          "excerptAfterEdit": {
            "totalPrice": {
              "type": "centPrecision",
              "currencyCode": "EUR",
              "centAmount": 3970,
              "fractionDigits": 2
            },
            "taxedPrice": {
              "totalNet": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3336,
                "fractionDigits": 2
              },
              "totalGross": {
                "type": "centPrecision",
                "currencyCode": "EUR",
                "centAmount": 3970,
                "fractionDigits": 2
              },
              "taxPortions": [
                {
                  "rate": 0.19,
                  "amount": {
                    "type": "centPrecision",
                    "currencyCode": "EUR",
                    "centAmount": 634,
                    "fractionDigits": 2
                  },
                  "name": "19% MwSt"
                }
              ]
            },
            "version": 3
          }
        },
        "type": "OrderEditApplied"
      }
    ],
    "type": "PreviewSuccess"
  },
  "comment": "sample-comment"
}