placeOrder
Place an order.
Signature
declare function placeOrder(
context: Context,
input: PlaceOrderInput,
customHeaders?: CustomHeaders
): Promise<FetchResult<PlaceOrderMutation>>;Parameters
| Name | Required | Type | Description |
|---|---|---|---|
context | Required | Context | |
input | Required | PlaceOrderInput | |
customHeaders | Optional | CustomHeaders |
Referenced Types
- Context
- PlaceOrderInput
- CustomHeaders
FetchResultPlaceOrderMutation
Examples
Simple usage:
import { sdk } from '~/sdk.config.ts';
// place an order
const result = await sdk.magento.placeOrder({cart_id: 'some-cart-id'});
// example result:
{
"data": {
"placeOrder": {
"__typename": "PlaceOrderOutput",
"order": {
"__typename": "Order",
"order_number": "000000522"
}
}
}
}The complete flow of placing an order for a guest user:
const emptyCart = await sdk.magento.createEmptyCart(); // create an empty cart
const cartId = emptyCart?.data?.createEmptyCart || ''; // get cart id from the response
// set guest email on the cart
await sdk.magento.setGuestEmailOnCart({ cart_id: cartId, email: 'john.doe+test@vuestorefront.io' });
// add products to the cart
await sdk.magento.addProductsToCart({
cartId,
cartItems: [
{
quantity: 1,
sku: 'some-sku',
// size and color
selected_options: ['Y29uZmlndXJhYmxlLzkzLzUz', 'Y29uZmlndXJhYmxlLzE0NC8xNzE=']
}
]
});
const address = {
firstname: 'John',
lastname: 'Doe',
city: 'New York',
country_code: 'US',
street: ['Street 1', 'Street 2'],
telephone: '123 123 123',
region: 'AL',
postcode: '10001',
save_in_address_book: false
}
// set shipping and billing address
await sdk.magento.setShippingAddressesOnCart({
cart_id: cartId,
shipping_addresses: [{ address }]
});
await sdk.magento.setBillingAddressOnCart({
cart_id: cartId,
billing_address: { address }
});
//
await sdk.magento.setShippingMethodsOnCart({
cart_id: cartId,
shipping_methods: [{ carrier_code: 'flatrate', method_code: 'flatrate' }]
});
await sdk.magento.setPaymentMethodOnCart({
cart_id: cartId,
payment_method: { code: 'checkmo' }
});
// place the order
const result = await sdk.magento.placeOrder({ cart_id: cartId });