# Orders in your free trial

{% hint style="success" %}

#### Prerequisites

* Access to a free trial tenant[^1] (email with credentials)
* Read our [Free trial information](/documentation/using-our-free-trial/free-trial-information.md), [Setting up Postman for your free trial](/documentation/using-our-free-trial/free-trial-information/setting-up-postman-for-your-free-trial.md), [Facilities in your free trial](/documentation/using-our-free-trial/free-trial-information/facilities-in-your-free-trial.md), [Listings in your free trial](/documentation/using-our-free-trial/free-trial-information/listings-in-your-free-trial.md), and [Configuring stock in your free trial](/documentation/using-our-free-trial/free-trial-information/configuring-stock-in-your-free-trial.md) articles
* Access to Postman (you can use an HTTP tool of your choice, but for this article, we'll focus on working with Postman)
  {% endhint %}

## What's an order?

An order is the entry point for the fulfillment process. The platform consumes the following information from an order object:

* The consumer's location
* The time the order was placed
* The line items of the order, including:
  * Article (`title` and `tenantArticleId`)
  * `quantity`

This is the minimum information the platform needs for order fulfillment. However, more information can be provided. For example, an order line item can contain a list of scannable codes that must be scanned when the item is picked in a facility. Furthermore, it's recommended to configure the `deliveryPreferences` for the order.

## Why does it matter for my free trial?

For this tutorial, we're assuming we're a shop with products to sell and a consumer wants to order those products, and then pick up that order from our shop. For that, we need to let the system know that an order has taken place on our online shop.

Let's add an order to our facility.

## Placing an order

{% stepper %}
{% step %}
**Open the orders endpoint**

In Postman, find the `POST Add new order` endpoint (under Order routing, then Orders). You'll see the body is prefilled with some data. For our example, we'll replace all the prefilled data with our own.

```json
{
    "orderDate": "2025-12-11T08:16:07.000Z",
    "status": "OPEN",
    "consumer": {
        "addresses": [
            {
                "firstName": "Phil",
                "lastName": "Bison",
                "street": "4th Street",
                "houseNumber": "1000",
                "postalCode": "90403",
                "city": "Los Angeles",
                "country": "US",
                "phoneNumbers": [
                    {
                        "value": "0177-555-6273",
                        "label": "private",
                        "type": "MOBILE"
                    }
                ],
                "email": "phil.bison@ocff.com"
            }
        ]
    },
    "orderLineItems": [
        {
            "article": {
                "tenantArticleId": "TSHIRT-W-2468",
                "title": "Basic T-Shirt White"
            },
            "quantity": 1
        },
        {
             "article": {
                "tenantArticleId": "SNEAK-W-4891",
                "title": "White Sneakers"
            },
            "quantity": 1
        }        
    ],
    "deliveryPreferences": {
        "collect": [
            {
            "facilityRef": "INSERT-YOUR-FACILITYID",
            "paid": true
            }
        ]
    },
      "tenantOrderId": "R456728546"
}
```

{% hint style="info" %}
We're only using the required fields in this example, and not all the available option. See o[ur orders article](/documentation/by-pillar/order-management/orders.md) for more details and the API specification.
{% endhint %}
{% endstep %}

{% step %}
**Edit data**

You can edit the body in any way you wish, or leave it as it is.
{% endstep %}

{% step %}
**Send the request**

Click **Send**.

{% hint style="info" %}
Ensure you've refreshed your `authToken` if it's been more than 60 minutes since your last refresh.
{% endhint %}

You should get a `201 Created` response. You'll notice some extra fields that are part of the response and have been automatically created.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Although you can create orders manually, we recommend implementing a solution that receives incoming orders from shop systems. See our orders integration article for more information.
{% endhint %}

The order will also be visible in Backoffice for other team members to use. We'll take you through using Backoffice in the next article.

[^1]: An instance of fulfillmenttools for each customer. Each tenant works in different environments. For example, there'll be a tenant for pre-production, and one for production.


---

# 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.fulfillmenttools.com/documentation/using-our-free-trial/free-trial-information/orders-in-your-free-trial.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.
