# Try 'Iterative Checkout'

{% hint style="info" %}
If this is your first time trying Violet's Checkout API, we recommend following this guide step by step. Our docs allow you to try endpoints by entering your own values and submitting the request directly. You can also use cURL or any HTTP client of your choice — the request and response examples throughout serve as a reference for properly formatted requests when building your own integration with Violet.
{% endhint %}

So far you have been able to view all the Merchants available for your application, view their catalog of products and select one specific product. Here you will learn how to go through the entire flow of purchasing a product through Violet. To get started with the Checkout process, we will create a cart and add products to it. For this section, we have taken the SKU that we retrieved details for in [Interact with Catalogs](/prism/overview/interact-with-catalogs.md).

{% hint style="warning" %}
Currently Violet passes all failures in checkout relating to surpassing rate limits downstream. When integrating with Violet you must consider and prepare for such scenarios in all API calls to Violet. [Handling rate limits with Violet](/concepts/rate-limits.md)
{% endhint %}

{% hint style="warning" %}
A cart response can come back with status code `200` and still have errors in the `errors` field. This is because there might only be errors on some of the SKUs or Bags while the rest of the order is in a good state.

Make sure your system is coded to always check for the presence of the `errors` field on responses, no matter the status code.

Note that not all order errors are blocking. `INTERNAL_ADD_ITEM` for example just indicates that an item could not be added to the cart, this does not block checkout of other items.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.violet.io/prism/overview/place-an-order.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
