> For the complete documentation index, see [llms.txt](https://docs.pakk.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pakk.io/account-setup/shipping-methods/restricting-shipping-methods.md).

# Restricting Shipping Methods

Before thinking about calculating charges for a shipping method, consider the availability of that method. You've got some powerful controls at your fingertips here.

* `web enabled` determines whether this method is available **at all** on your websites. You might want to disable this if you are creating a method that only admins should be able to use.
* `websites`: like everything else in Pakk, you can attribute this shipping method to none, one or any number of your sites. Remember: if you don't attribute the method to a site, it won't appear there
* Restrict the countries to which this method is available by choosing `countries`. You can set this up as a whitelist (countries for which this method **is** available) or a blacklist (countries for which this method **is not** available; with the implication that it will be available for **all others**).
* Within a country, you can restrict areas to which this method will be available by specifying `postcodes` tp match: again, this can be a *whitelist* or *blacklist*. See 'Postcode Matching' below for more details on how to lists postcodes for matching.
* Restrict based on minimum and maximum values like `order value ex tax`, `order value inc tax`, `number of units`, `number of items`, `weight`.
* Restrict based on a list of products that **must** be in the cart - you can even choose to restrict the shipping method if **any other products** apart from those you list, are in the cart.
* Restrict based on a list of products that **must not** be in the cart.

#### Postcode Matching <a href="#postcode-matching" id="postcode-matching"></a>

You can specify postcodes on an "exact match" or "prefix match" basis. Note that neither are case sensitive, so it doesn't matter whether you (or the customer) enters the postcode with upper or lower case characters.

* "Exact match" means that the postcode entered by the customer must match **exactly** the postcode you enter into the list. For example, if one of the postcodes you enter is "28001" then the only postcode that will match will be "28001".
* "Prefix match" postcodes are entered with a "**\***" to signify the non-prefix part of the postcode: for example, if you enter "**AB\***", then all postcodes that start with "AB" will be matched. This is useful for most country postcode schemes where the first part of the postcode refers to the wider area, and rest of the postcode gets more specific.

Some countries use slightly more complex postcode schemes so matching may only be performed on a portion of the postcode. For example, for UK postcodes, only the fist part of the postcode is considered for matching (e.g in "NW1 5GY", only "NW1").


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.pakk.io/account-setup/shipping-methods/restricting-shipping-methods.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
