> For the complete documentation index, see [llms.txt](https://kb.bevica.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.bevica.com/documentation/integration/shopify/shopify-duty-free-orders.md).

# Shopify Duty Free Orders

Set up Shopify duty free orders so Bevica creates the right ship-to address, duty status, and sales lines.

## <mark style="color:red;">**FEATURE AVAILABLE IN**</mark> [<mark style="color:red;">**V22.4.12.0**</mark>](/roadmap/bevica-roadmap/bevica-extensions/shopify-connector-releases.md)

Use this setup so duty free Shopify orders create the right sales order in Bevica. It avoids manual ship-to changes, wrong duty status, and incorrect line defaults.

### Prerequisites

* Shopify store already connected to Bevica
* Bevica inventory and duty management already set up
* Duty Free item variants synchronised to Shopify
* Access to **Shopify Admin** and **Shopify Shop**

### Prepare Shopify

Set Shopify up so Bevica can identify a duty free order and create it correctly.

{% stepper %}
{% step %}

#### Publish duty free variants

Publish the Duty Free variants from Bevica to Shopify.
{% endstep %}

{% step %}

#### Set duty free variants as non-taxable

Mark those Shopify variants as non-taxable.
{% endstep %}

{% step %}

#### Keep each order on one duty status

Make sure each Shopify order contains either Duty Free lines or Duty Paid lines.

Do not mix duty statuses in the same order.
{% endstep %}

{% step %}

#### Tag duty free orders

Add the tag `Duty Free` to each duty free Shopify order.

Bevica uses this tag to apply the duty free order logic.
{% endstep %}
{% endstepper %}

### Set up Bevica

#### Create the ship-to configuration template

Go to **Configuration Templates** and create a template for table `222 Ship-to Address`.

Bevica uses the template's `Code` as the Ship-to Address `Code`.

Suggested fields:

<table><thead><tr><th width="216.4000244140625">Field</th><th>Note</th></tr></thead><tbody><tr><td><code>Code</code></td><td>Bevica uses the configuration template's <code>Code</code> as the Ship-to Address <code>Code</code>. It can be populated here but is ignored by this process.</td></tr><tr><td><code>Customer No.</code></td><td>Bevica uses the Shopify order's customer as the Ship-to <code>Customer No.</code>. It can be populated here but is ignored by this process.</td></tr><tr><td><code>Name</code></td><td>If left blank, Bevica uses the customer name from the Shopify order.</td></tr><tr><td>Address fields</td><td>Populate as required.</td></tr><tr><td><code>TVT Duty Status</code></td><td>Must set this to <strong>Duty Free</strong>.</td></tr><tr><td><code>Location Code</code></td><td>The value here will popaulted the Ship-to Address record, but Bevica uses the Shopify order's <code>Location Code</code> when it creates the sales order.</td></tr><tr><td>Other fields</td><td>Populate any other fields you need as standard defaults.</td></tr></tbody></table>

#### Set the Shopify Shop fields

Go to **Shopify Shop** and open the **Bevica** FastTab.

* Set **Default Duty Free Ship-to Template** to the configuration template you created for **Ship-to Address**.
* Set **Default Duty free Transaction Type** if you want duty free Shopify orders to default to a specific transaction type such as **Sale Into Reserve**.

{% hint style="danger" %}
Do not set **Shopify Force Unique Variant**.

It clashes with the duty free order process on this page.
{% endhint %}

{% hint style="danger" %}
Do not set **Force Duty Paid Variant on Sales orders**.

It also clashes with the duty free order process on this page.
{% endhint %}

For the wider Shopify settings, see [Bevica Shopify Connector](/documentation/integration/shopify/business_central_bevica_shopify_connector.md).

### How Bevica creates the order

When Bevica detects the Shopify tag `Duty Free`, it creates the sales order as follows.

{% stepper %}
{% step %}

#### Check the Ship-to Address

Bevica checks whether the templated Ship-to Address already exists for the customer.

If it does not exist, Bevica creates it automatically.
{% endstep %}

{% step %}

#### Create the sales order

Bevica creates the order using the standard Shopify order routine.

It applies the templated Ship-to Address and sets the order to **Duty Free**.
{% endstep %}

{% step %}

#### Create the sales lines

Bevica creates the lines from the Shopify order details.

It sets the line `Transaction Line Type` from the Shopify Shop default.
{% endstep %}
{% endstepper %}

### Validate the created sales order

After the order is created, check these values on the Bevica sales order:

* `Customer No.` is correct
* Ship-to Address uses the template `Code`
* `TVT Duty Status` is **Duty Free**
* `Location Code` matches the Shopify order
* VAT is correct for the order
* Line prices are correct
* `Transaction Line Type` matches the default on **Shopify Shop**

{% hint style="info" %}
Also test a normal Duty Paid Shopify order.

That confirms the duty free setup has not affected your standard order flow.
{% endhint %}


---

# 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://kb.bevica.com/documentation/integration/shopify/shopify-duty-free-orders.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.
