createMyOrderFromCart
Create an order from cart.
In turn, it creates an order in commercetools by sending a request to its GraphQL API.
By default, it uses the createMyOrderFromCartDefaultQuery GraphQL query
This method can only be called on a non-empty cart with a shipping address set.
Signature
declare function createMyOrderFromCart(
context: CommercetoolsIntegrationContext,
draft: CreateMyOrderFromCartParams,
customQuery?: CustomQuery
): Promise<CreateMyOrderFromCartResponse>;Parameters
| Name | Required | Type | Description |
|---|---|---|---|
context | Required | CommercetoolsIntegrationContext | |
draft | Required | CreateMyOrderFromCartParams | |
customQuery | Optional | CustomQuery |
Returns
Returns a representation of the CreateMyOrderFromCartResponse.
Referenced Types
- CommercetoolsIntegrationContext
- CreateMyOrderFromCartParams
- CustomQuery
- CreateMyOrderFromCartResponse
Examples
Creating an order from cart.
const { order } = await sdk.commerce.createMyOrderFromCart({
cartId: '6931b5d2-986f-4d2b-8cba-45007a26eb5e',
cartVersion: 1
});Creating a custom GraphQL query for the method in middleware.config.ts. We can use it to specify response fields as well as overwrite certain query variables.
export const integrations = {
ct: {
// ...
customQueries: {
'create-my-order-from-cart-custom-query': ({ query, variables, metadata }) => ({
variables: Object.assign(variables, metadata?.variables),
query: `
mutation createMyOrderFromCart($draft: OrderMyCartCommand!, $storeKey: KeyReferenceInput) {
order: createMyOrderFromCart(draft: $draft, storeKey: $storeKey) {
${metadata?.fields}
}
}
`
})
}
}
}
};Creating an order from cart and selecting response fields using the custom GraphQL query from the previous example.
const { order } = await sdk.commerce.createMyOrderFromCart({
cartId: '6931b5d2-986f-4d2b-8cba-45007a26eb5e',
cartVersion: 1
}, {
updateCart: 'create-my-order-from-cart-custom-query',
metadata: {
fields: 'id, version'
}
})