# Shipping zones and methods

<figure><img src="/files/qSHyXo4j56gPj3nRqFpg" alt=""><figcaption></figcaption></figure>

{% hint style="info" icon="lightbulb" %}
Shipping zones group locations and determine which delivery options are available for a shipping address. Shipping methods define those options, with prices that can be flat, weight-tiered, or fetched from an external service.
{% endhint %}

## Shipping zones

[Shipping zones](/core-api-reference/shipping_zones.md) are groups of locations within a market. They determine which shipping methods are available for a given shipping address.

Zones are created and filtered using a regular expression to match the country, state, or zip code of an address.

## Shipping methods

[Shipping methods](/core-api-reference/shipping_methods.md) define the delivery options with prices available to customers. A shipping method not associated with any market, stock location, shipping category, or shipping zone can be set as the [default](/core-api-reference/markets.md#default-shipping-method) for one or more markets.

### Available shipping methods

Shipping methods are defined by currency and can be restricted to a specific market (in which case the currency is inherited from the market's price list). Delivery options can be further restricted by:

* **Shipping category** — the method is available only if the items belong to a specified shipping category.
* **Shipping zone** — the method is available only if the shipping address belongs to a specified shipping zone.
* **Stock location** — the method is available only if the items ship from a specific stock location.
* **Weight** — the method is available only if the total shipment weight falls within a specified minimum and/or maximum value. The total weight is calculated automatically from the individual weights of the items.

### Shipping method cost

When creating a shipping method, you must set a price used as its fixed cost. You can also define a **free-over amount** — the order total above which shipping becomes free (shipping methods can also be made free through promotions).

Three pricing schemes are supported (default: *flat*):

* **Flat** — a fixed price, set to zero when the order total exceeds the [free-over amount](/core-api-reference/shipping_methods.md#free-over-amount) (if defined).
* **Weight-tiered** — the price is [tiered](/core-api-reference/shipping_methods.md#shipping-weight-tiers) based on the total shipment weight. The free-over amount applies regardless of the tier.
* **External** — the price is fetched [from an external service](/core/external-resources/external-shipping-costs.md), overriding the price set in Commerce Layer.

### Shipping method tiers

You can define up to **5 weight-based tiers** per shipping method. For each tier you must specify:

* An upper limit for the weight value (the unit of weight is inherited from the shipping method).
* The price charged when the total shipment weight is lower than or equal to that limit.

If the upper limit is left empty, the tier is treated as a *beyond* tier — its price applies to all shipments whose weight exceeds the maximum tier's upper limit. If no *beyond* tier is defined, the shipping method's fixed cost is used instead.


---

# 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.commercelayer.io/data-model/shipping/shipping-zones-and-methods.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.
