Adds a custom line item to an existing order. For example, you could add a gift wrapping service as a [custom line item](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing#add-a-custom-line-item). To learn how to edit existing orders, refer to [Edit an existing order with Admin API](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing).
Access Scopes
`write_order_edits` access scope. Also: To use the GraphQL Admin API to edit orders, your app needs to request the `write_order_edits` access scope for a Shopify store.
Arguments
id:
ID! -
The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder)
or the order edit session to edit. This is the edit to which the custom item is added.
locationId:
ID -
The ID of the retail [location](https://shopify.dev/api/admin-graphql/latest/objects/location)
(if applicable) from which the custom item is sold. Used for tax calculations. A default location will be chosen automatically if none is provided.
price:
MoneyInput! -
The unit price of the custom item. This value can't be negative.
quantity:
Int! -
The quantity of the custom item. This value must be greater than zero.
requiresShipping:
Boolean -
Whether the custom item requires shipping. Defaults to `false`.
sku:
String -
The optional SKU for the custom item to add.
taxable:
Boolean -
Whether the custom item is taxable. Defaults to `true`.
title:
String! -
The name of the custom item to add.
weight:
WeightInput -
Specifies the weight unit and value inputs.
Returns
calculatedLineItem:
CalculatedLineItem
The custom line item that will be added to the order based on the current edits.
calculatedOrder:
CalculatedOrder
An order with the edits applied but not saved.
orderEditSession:
OrderEditSession
The order edit session with the edits applied but not saved.
userErrors:
UserError!
The list of errors that occurred from executing the mutation.