# Offering Packages

The data packages that are offered to your users for sale are defined by the **inventory**. You can define the inventory following the [Configure Inventory](/start-with-gigastore/configure-inventory.md) section. The inventory API can be used to show available packages to the end-user.

Gigastore offers an inventory of data packages (`items`) that differ in&#x20;

* Covered Countries
* Size
* Validity
* Price

Each item also has a unique **ID**, later referred as `inventoryItemId`.

```
GET /gigastore/products/inventory

Response:
{
    "items": [
        {
            "id": "14ed2704-35ff-4feb-82a3-12345678abcd",
            "productId": "12345678-1234-abcd-1234-12345678abcd",
            "name": "eSIM Worldwide 50 MB",
            "sizeValue": 50,
            "sizeUnit": "MB",
            "validitySize": 365,
            "validityUnit": "days",
            "validityUnlimited": false,
            "countrySet": "WWW",
            "prices": [
                {
                    "sortIndex": 0,
                    "priceValue": 1.49,
                    "currencyCode": "USD"
                }
            ],
            "retailPrices": [
                {
                    "sortIndex": 0,
                    "priceValue": 4.99,
                    "currencyCode": "USD"
                }
            ],

...
```

### Covered Countries

Each package refers to a set of supported countries, the `countryset`. This set can contain one country (single country package) or many countries, like the Worldwide data package.

You can find the supported countries set in the [Gigastore portal](https://dent.giga.store/#/data-packages) and via API in the [Countries API](/api/countries-api.md) section.

### Offering Mixed Coverage

Each user on Gigastore supports only one `countrySet`. For example, if users register by activating a "Worldwide" package, they can only receive top-ups from the same coverage, "Worldwide." Any other package will result in a failed request.

However, you can still assign multiple `countrySet` packs to a customer by registering a new user on Gigastore and saving that user's UID to link it with the customer in your system.

Please note that each customer requires a separate eSIM for each `countrySet`  type.

For additional details, refer to the Customers section.

### Size

The size of a data package defines the usable amount of data. The size is split into **sizeValue** and **sizeUnit**.

* 50MB: sizeValue = 50 and sizeUnit = "MB"
* 10GB: sizeValue = 10 and sizeUnit = "GB"

These values can be used to show the user the size of the package.&#x20;

{% hint style="warning" %}
Please remember that **1 GB equals 1024 MB.**
{% endhint %}

### Validity

Gigastore provides data packages with different days of validity to be sold and activated to end users.&#x20;

which The validity of a data package defines the period within the package can be used.  The validity timer starts with the [activation](/api/first-package.md) of the package.

The validity is split into **validitySize** and **validityUnit**.

* 30 days: validitySize = 30 and validityUnit = "days"

### Price

Each package has a purchase price and a retail price.&#x20;

The **purchase price** will be **deducted from your credit** balance when activating a package.

The retail price is intended to be shown to your users. You can define the retail price for each package in the [Gigastore portal.](https://dent.giga.store/#/your-store/inventory?sortDir=ASC\&sortKey=price)

The API will provide both prices:

```
"prices": [
    {
        "sortIndex": 0,
        "priceValue": 1.49,
        "currencyCode": "USD"
    }
],
"retailPrices": [
    {
        "sortIndex": 0,
        "priceValue": 4.99,
        "currencyCode": "USD"
    }
],
```

The `retailsPrices` array refers to the **retail price** of the package.

The `prices` array refers to the **purchase price** of the package.

{% hint style="info" %}
The API already supports multiple prices to be able to return different currencies later. We recommend filtering for *currencyCode=USD*.
{% 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.giga.store/api/offering-packages.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.
