Shopify
Connect the store through Zenvio’s Integrations and verify the selected store and organization. Review invoice creation and automatic sending in the Shopify configuration, then test an order.
Invoice links
On a theme-based order page, link to the invoice using the order identifier:
<a href="{{ shop.url }}/apps/Zenvio/orders/{{ order.id }}/invoice/download.pdf">Download invoice</a>
Use open.pdf to open it in the browser instead. In an order notification template, use {{ id }} in place of {{ order.id }}.
The invoice must exist when the link is opened. If creation occurs only after fulfillment, review timing before adding it to an order confirmation.
Business identifiers
For legacy customer registration forms, these input names store identifiers in customer notes:
<input type="text" name="customer[note][Company Registration Number]"
placeholder="Company Registration Number">
<input type="text" name="customer[note][VAT Registration Number]"
placeholder="VAT Registration Number">
For theme cart forms, use attributes[Company Registration Number] and attributes[VAT Registration Number] as input names. Check a test order’s resulting invoice details.
EU VAT collection
In Integrations → Shopify → Configuration, review Collect EU VAT Numbers and, where appropriate, Enable EU VAT Exemptions, then save. Review the registration and transaction’s tax treatment separately.
The existing storefront VAT helper can be loaded once before the theme’s closing body tag. Select the hook for the customized page:
<script async src="https://cdn.zenvio.com/apps/shopify/client.js" id="zenvio-script"></script>
<script>
document.getElementById("zenvio-script").onload = function () {
Zenvio.configure({
customer: {
id: {{ customer.id | json }},
email: {{ customer.email | json }},
metafields: {{ customer.metafields.zenvio | json }}
},
cart: { attributes: {{ cart.attributes | json }} }
});
// Legacy registration page: Zenvio.VAT.onCustomerRegister();
// Product page: Zenvio.VAT.onProduct();
};
</script>
Shopify compatibility
Liquid examples apply to theme-based surfaces and legacy accounts. Current customer accounts use extensions; theme customizations do not carry over. See Shopify account customization.
The old Order status Additional scripts path has been retired. See Shopify’s migration guidance. This guide does not assume a Zenvio checkout or customer-account extension is available.