How can I place an order?
  • 29 Jun 2022
  • 1 Minute to read
  • Contributors
  • Dark
    Light

How can I place an order?

  • Dark
    Light

Article Summary

Placing and modifying an order.

A shopping cart is transformed into an order using the createOrder mutation.


createOrder

A shopping cart is transformed into an order using createOrder mutation.
Example:

mutation m1 {
  createOrder(orders:[{
    shoppingCartId: "<shoppingCartId>"
    expectedReceiptDateTime: {
      type: DELIVERY
      from: "2037-12-24T00:00:00Z",
      to: "2037-12-24T00:00:00Z"
      timeFrame: "0-24"
    }
    constructionSite: {
      code: "<code>"
    }  }]) {
    orderId
    shoppingCartId
    status {
      status
      message
      subStatus {
        warning
      }
    }
  }
}

Use the mutation createOrder to create one ore more orders. Add a shoppingCartId and a constructionSite to each order.

upsertExpectedReceiptDateTime

upsertExpectedReceiptDateTime and upsertStore define delivery time and store.

mutation m2 {
  upsertExpectedReceiptDateTime(
		orderIds: ["<orderId>"]
		expectedReceiptDateTime: {
			type: DELIVERY
			from: "2037-12-24T00:00:00Z"
      to: "2037-12-24T00:00:00Z"
      timeFrame: "0-24"
    }
  ) {
    orderId
  }
}

Use the mutation upsertExpectedReceiptDateTime before starting the checkout process. Set the pickup or delivery time.

The default delivery time can is returned by connectedDistributionGates query. timeFrame 0-24 means "some time during the day".

upsertStore

upsertStore defines the store location (code) of the order.

mutation m3 {
  upsertStore(orderIds: ["<orderId>"], store: {code: "<code>"}) {
    orderId
  }
}

Set the store; this is for billing purposes. The information is returned by the getUser query.

beginCheckout

mutation m3 {
  beginCheckout(orderIds: ["<orderId>"]) {
    status {
      status
    }
  }
}

Execute the mutation beginCheckout to start the checkout process. Pass the orderIds with the mutatoin. The new status status.status of the order is then IN_CHECKOUT.

If you change the order by adding or removing products, the status is reset to NEW.

finishOrder

finishOrder
mutation m4 {
  finishOrder(orderIds: ["<orderId>"]) {
    status {
      status
    }
  }
}

You can execute the mutation finishOrder if the status of the order is IN_CHECKOUT.

The new status is then FINISHING meaning that our system received the order and passed it to the ERP system of the distributor.

Execute the query "orders" until the status changed to FINISHED. Then, the "externalOrderNumber" is available as part of the response. This is the number of the order in the system of the distributor.


Was this article helpful?