Shop for the EU market: currency, tax, shipping and mandatory pages
Catalog translation is a showcase, not a market. The European buyer arrives at the payment when he sees the final amount in his currency, understands who pays at the border, and finds the seller's details on the website with the conditions for canceling the order. Therefore, the work here is not divided into design and layout, but into four contours: price with tax, delivery with customs scenario, legal pages and data consent. We have two measured stores for the European market - for Spain and Bulgaria, both removed on July 31, 2026. We name the cost after a free audit: until there is a list of countries and an answer to where the goods are coming from, any figure will be fictitious.
products, 88 addresses in the site map, discrepancy 0
3
Bulgarian shop
language versions bg/en/ru, 6 JSON-LD types, TTFB 512.6ms
30–55
Term
working days from approval of technical specifications
after a free readiness audit, 3-5 business days
Cost
50%
Conditions
advance payment, contract, invoice, deed, warranty period of 30 days
Who it's for
Situations where this service delivers results
Scenario 1 of 4
You sell in Europe through the marketplace and run into someone else's rules
The site gives the buyer, but reserves the commission, customer contact and the right to change the terms without notice. The platform does not replace your store — it adds a channel in which you can see where the order came from and can write to the buyer yourself.
We'll review your situation in a free audit
Scenario 2 of 4
A manufacturer or brand that wants a branded store for a European buyer
Both of our measured stores in the EU are just that: a Bulgarian cosmetics brand with 23 items of the entire range and a furniture catalog with 76 items for Spain. The catalog here is small, and the work is in languages, payment and terms, and the estimate reflects this.
Scenario 3 of 4
The store operates in Ukraine, and the first orders from the EU come by themselves
The most frequent start. The order is already there, but the manager manually calculates the delivery every time and explains in correspondence what will happen at the border. This is the point where a separate circuit under the EU pays off faster than a redesign.
Scenario 4 of 4
EU company buyers request a tax-free invoice
The B2B branch of the checkout with the verification of the tax number in the VIES register is established at the start: it takes longer to integrate it into the ready checkout than to do it right away. Along with it, the document changes at the exit — the legal entity is waiting for an invoice with its details, the check will not work for it.
Cases
Tasks and results in numbers — all metrics measured by us
online furniture store for the Spanish market
Task
Launch a store for the Spanish market: fully Spanish-language interface, catalog with filters by type of furniture, material and color, large galleries for each item.
Solution
OpenCart 3 on oct_deals by LiteSpeed. Spanish version with valid hreflang, payment by Visa/Mastercard and bank transfer, GTM connected, showcases on Instagram and TikTok.
Result
76 products in the catalog - the number coincided in two independent sources: /sitemap-products.xml contains exactly 76 addresses, standard search without pagination gives the same 76. Altogether, the site map has 88 addresses: 76 products, a category, 10 information pages and the main one, the discrepancy is zero. Measured on 07/31/2026: TTFB 348.2ms, full HTML load 515.6ms at 374KB. Defects found: there is no JSON-LD and no microdata on the main page, and the carrier is not named either on the main page or on the payment methods page.
a brand of natural Bulgarian cosmetics, a branded store for the EU market
Task
Bringing the brand to the European buyer: a multilingual store, understood both in Bulgaria and beyond, with clear terms of delivery throughout the country.
Solution
OpenCart 3 on nginx with a custom theme. Three language versions bg/en/ru with hreflang, Store markup with opening hours and contact point, courier delivery to office or address with free threshold from €35.
Result
23 products — the entire assortment of the brand, confirmed by standard search without pagination. Three language versions with hreflang, six types of JSON-LD on the main: Store, WebSite, SearchAction, ContactPoint, EntryPoint, OpeningHoursSpecification. Measured on 07/31/2026: TTFB 512.6ms, full load 640ms with 220.4KB HTML. Defects found: /sitemap.xml, /robots.txt and product feed return empty body or HTML instead of XML; there are no analytics counters on the main one. In the footer there is a public link to lionex.com.ua - the authorship of this work is checked and not declared.
What's included
Complete list of work and what you get as a result
Catalog and prices for each country of sale: display currency and final amount with tax for the retail buyer
Verification of the VAT number of the buyer-company in the checkout: a confirmed number removes the tax from the account, an unconfirmed one does not, and the buyer sees the reason
Delivery by zones: terms and cost by country, and in a separate line - who pays tax and duty at the border
Payment according to the market: card and bank transfer as a base, local method - according to the country where you actually sell
Legal outline of pages: seller details, terms of sale, cancellation of order within 14 days with form, guarantee of conformity, return
Checkout in which the full amount with delivery and fees is visible for payment, and the confirmation button directly states the obligation to pay
An opt-in banner with an equivalent opt-out button associated with opt-in mode in analytics
Language versions of the catalog with hreflang and x-default, along with service pages and order status emails
Accessibility of the interface: keyboard navigation, contrast, field signatures and readable form errors in checkout
Analytics by country and language: GTM, GA4, cart events and purchases with currency in events
Transfer: accesses, instruction to the manager, running of the test order from the EU country from the basket to the invoice
When this service isn't right
What's not included — so there are no surprises at delivery
Company registration in the EU, obtaining a tax number and submitting reports
Formulation of legal texts - we give the structure and places where they stand, the text is designed by your lawyer
Customs clearance and contract with the carrier
Translation of product cards by a native speaker
Post-launch advertising and promotion
Process steps
Transparent stages with approval at every step
Total duration:30–55 days
1
Analysis of the market and sales scenario
4-6 working days
We fix the list of countries, currencies, where the goods are shipped from and who pays at the border. Here we divide the branches: retail, business buyers or both. This is the entrance to the TK, and without it there is no point in moving on.
2
Structure of the catalog and language versions
4-6 working days
Tree of categories for the market, set of characteristics for the filter, addresses of language versions, list of service pages. We agree with the design - recycling addresses after launch means a table of redirects.
3
Showcase and checkout design
6-10 working days
Home, category, card, cart, checkout. Separately, we draw the delivery step with the customs scenario and the confirmation step: it is there that the buyer decides to pay. Immediately set the contrast and focus for the keyboard.
4
Assembly of the store and the price contour
8-12 working days
Layout, catalog, currencies, prices with tax, tax number verification branch in VIES, roles in admin. At the exit, the manager sees the order with the country, currency and type of buyer.
5
Payment, delivery and customs scenario
4-7 working days
Payment methods by country, zones and delivery rates, the selected scenario of fees at the border is displayed in the checkout text. Payment run in test mode for each connected method.
6
Legal pages, consent and analytics
3-5 working days
We lay out the lawyer's texts on pages, put an order refusal form, a consent banner with an equivalent refusal and the consent mode in GTM. GA4 with cart and purchase events, currency and country.
7
Testing from an EU country and transfer
3-5 working days
End-to-end ordering from a European address for each country from the list: price, tax, delivery, letter, document. Speed measurements, checking the site map for each language, going through the admin process with your manager.
Free EU market readiness audit
We are not looking at the design, but at what causes the order from Europe to fail: an unclear final amount, a missing page with the seller's data, silence about customs duties and a checkout that does not speak the same language as the catalog.
What we measure
Where do you actually sell?List of countries, not "Europe". Currencies, payment methods, delivery zones and tax scenarios depend on it - everything else is calculated after this list.
Where is the product shipped from?Warehouse in Ukraine, warehouse in an EU country or fulfillment. A shipment from Ukraine is an export with customs clearance, and the buyer should see its consequences at checkout. Finding out about them from the courier upon delivery is the most expensive option.
Showcase priceDoes the retail buyer see the final amount with tax and shipping before the checkout step. A surprise on the last screen is the most expensive way to lose a completed order.
Mandatory checkout pages and elementsSeller details, terms of sale, 14 day cancellation form, warranty, data policy and consent banner with equivalent cancel button.
Payment methods according to the country of saleIn the Spanish store we measured, it's Visa/Mastercard and bank transfer. In the Bulgarian code, only a mention of Visa is visible - we have not identified a specific gateway and are not inventing it.
Technical base of language versionshreflang, sitemap, markup. In the Bulgarian store, the three language versions bg/en/ru are correct, and /sitemap.xml and /robots.txt return an empty body or HTML instead of XML.
Does it measure anything?In the same Bulgarian store on the main one, there is no GTM, no gtag, no pixel - after the launch, no figures for traffic and orders can be obtained from anywhere.
Accessibility of the interfaceKeyboard navigation, contrast, signatures of fields in checkout. The European Accessibility Act applies to online commerce from 28 June 2025, with exceptions for micro-enterprises - your lawyer checks the limit, we prepare the interface.
What you get
Document on readiness: countries, currencies, payment, delivery, legal outline, status of language versions and technical base.
The list of what the store lacks for sale in the EU is broken down into "blocks launch" and "possible after launch".
Evaluation of works by stages with a range of terms.
Conversation for 30–40 minutes on the document.
Timeline: 3-5 working days
Why is it free
Because the estimate for the European store misses not in the code, but in the list of countries and where the goods are coming from. Counting it is a matter of several days, and after that the amount is called once.
What's next
After the audit — the amount and term by stages with dates, contract, invoice, report. We work both with the Ukrainian market and with customers from Europe: the portfolio includes stores for Spain and Bulgaria and a clinic website in Norway.
Short form: your contact and site URL
Contract, act and 30-day warranty
Every project gets a written contract: scope, deadlines, amount, acceptance procedure. After delivery — act and invoice, then 30 calendar days of warranty.
Sole proprietor & bank transfer
The contractor is a registered sole proprietor. Payment by invoice with closing documents.
Rights & access — yours
Code, design and materials transfer to you after full payment. Domain, hosting, repository and analytics are registered to you.
Client portal instead of email chains
During the project you get access to a portal: contracts, invoices, acts and project status in one place.
European clients
Among our work — projects for Norway, Bulgaria, Moldova and Spain.
Verifiable numbers
Every case in the portfolio comes with a link to a live site and a technical measurement.
Audit first, then pricing
There is no price list on the site intentionally: the scope of the same work differs multiples between clients.
We say "no" when unsure
If the task isn't ours or the deadline is unrealistic — we tell you upfront.
Did not find your case?
Describe how it works on your side — we will tell you whether “Development of an online store for the EU market” fits and what it means in your situation. No brief and no call: one question, one answer.
What affects the price
Why two seemingly identical tasks are priced differently
How many countries are on the list?One country — one currency, one set of payments, one delivery zone. The five countries multiply not the design, but the checks: each market must be checked out separately, from the currency to the order status letter.
Where is the product coming from?The warehouse in the EU country simplifies everything: the delivery is domestic, there is no customs scenario at the checkout. Shipping from Ukraine adds export logic, a choice between "fees included in the amount" and "recipient pays" and a separate page with an explanation.
Retail, B2B or bothThe retail branch shows the price with tax. The business branch checks the tax number in VIES, deducts the tax using the confirmed number and issues an invoice instead of a check. Two branches in one checkout stand in a separate line in the estimate.
Language versions and volume of translationIt is expensive not to add a language, but to translate what is in the catalog: conditions, payment, delivery, returns and letters. They are the ones most often interrupted by an order in a second language.
Status of legal textsReady-made texts from your lawyer take a few days to break down into pages. Texts that are not yet available stop acceptance: without them, the store is technically ready, and you cannot sell it.
Availability and consentKeyboard navigation, contrast, and readable form errors are built into the layout. It is more expensive to add them to a ready-made theme: you will have to redo the checkout together with the logic of the steps.
Technologies & integrations
What we build on and what it connects to
Stack
OpenCart 4.x and 3.x
WooCommerce
PHP
MySQL
nginx
HTTPS + HSTS
hreflang + x-default
JSON-LD Product / Offer / Store
WebP and delayed loading
consent mode in GTM
Cloudflare
Integrations
Stripe
PayPal
SEPA bank transfer
Klarna
iDEAL
Bancontact
BLIK
Bizum
DPD
GLS
DHL
Nova Poshta Global
Meest Express
verification of the VAT payer number in the VIES register
Google Tag Manager
GA4
Meta Pixel
Your shop in the EU versus trading through the European marketplace
How this option differs from the alternative
European marketplaceOur approach
Sales commissiona percentage of each order plus site fees, growing with turnoverno: pay for hosting, payment gateway and shipping
Buyer contactsite; correspondence mostly through its interface and according to its rulesyours: mail, order history, the right to write yourself
Legal outlinepart of it is closed by the site, but it does not remove the responsibility of the seller from youyour area: seller details, terms, order cancellation, data consent
Price and assortmentrules of categories, restrictions on items, the influence of the algorithm of issuing the sitemanage yourself, including prices by country
Start datefaster at the start — registration and catalog download30–55 working days from approval of technical specifications
What remains when stoppingrating and reviews live in the profile on the sitesite, base, domain and buyers
What we need from you
We can't start without this — best to prepare in advance
1List of countries where you actually sell and ship to. Not "Europe", but the list - everything else is calculated from it.
2From where the goods are shipped: a warehouse in Ukraine, a warehouse in an EU country or fulfillment.
3Seller registration data for the company data page: legal name, address, registration number, work contact.
4Your EU tax status and the person who maintains it: without it, the shop will calculate the amounts at random.
5Price list with prices, weight and dimensions of items - without weight, the delivery calculator will not work.
6Terms of sale, returns and data policies from your lawyer.
7One person on your side with the right to approve the catalog and checkout.
If something is missing — let us know, we'll help you gather it or do it as a separate task.
FAQ
Most frequently asked questions — with concrete answers
Is it possible to sell in the EU without opening a company in Europe?
It is possible, and most of our customers start this way: the goods are sent from Ukraine, and this is an export with customs clearance. The question is not whether it is allowed, but who pays the tax and duty at the border and whether the buyer knows about it before payment. Registration, rates and reporting are handled by your accountant - we are not tax consultants and do not enter this area. Our part: the store should calculate the amount according to the scenario you choose and show it in words at the checkout. The footnote "additional fees may apply" is not considered such a display.
In which currency to display prices?
In the currency of the country where you sell. For most markets, this is in euros, but Poland, the Czech Republic, Sweden, Denmark and Romania count in their own money, and the price "≈ €49" reads like someone else's. Two working options: fixed price in each currency or conversion according to the exchange rate. Fixed is more predictable - the price does not jump between visit and checkout and does not give penny tails like 47.83. Conversion is cheaper at the start, but needs a rounding rule, otherwise the showcase looks like an exchange table.
What pages must the store have for a buyer from the EU?
At least four things, and all of them before payment, not after. Seller data: legal name, address, registration number, work contact. Terms of sale with the right to cancel the order within 14 days and the form for this. Terms of guarantee of product conformity. A data policy with a consent banner where the decline button is equivalent to the consent button. Plus two checkout elements: the full amount with shipping and fees before the payment step and a confirmation button that directly states the obligation to pay. We do the mechanics, the wording is approved by your lawyer.
We already have a second language - is that enough to sell in the EU?
No, the language of the market does not. The most obvious example is the store of a Bulgarian cosmetics brand from our dimension: three language versions of bg/en/ru with correct hreflang, six types of JSON-LD markup on the main page, and /sitemap.xml and /robots.txt return an empty body or HTML instead of XML, and there is no analytics counter on the site. That is, the language showcase is done, but the indexing of three versions and the measurement of the result is not. We take the technical part of language versions to a separate page about hreflang, here it is only one item out of ten.
How does the buyer know how much he will pay at the border?
There are two ways, there is no third. Or you include tax and fees in the amount of the order - then the courier does not demand anything at the time of delivery. Or honestly write in the checkout that they are paid by the recipient. The most expensive option is silence: the parcel arrives, the buyer receives an unexpected bill and simply does not pick it up, and you pay for delivery twice and get your money back. We output the selected script in the text delivery step, instead of hiding it in a footnote.
Can a buyer from another EU country be refused?
Because of citizenship or country of residence - no, the rules of the single market forbid it: a buyer from Portugal must see the same catalog and the same prices as a buyer from Germany. But you are not obliged to deliver to every country. You can limit the delivery areas, leave self-pickup or allow the buyer to order his own carrier. The difference is that the restriction is on logistics, not on the passport - and in the checkout it should look like a list of delivery countries, not as a rejection after payment.
And company buyers ask for a tax-free invoice — is that difficult?
This is a separate branch of the checkout, and it must be laid at the start. The EU company enters its tax number, the store checks it against the European VIES register and, if the number is confirmed, generates a tax-free invoice. If the check fails, the bill goes with the rate, the buyer reads the reason for the rejection and can correct the number right there. In addition, the document itself is changing: the legal entity is waiting for an invoice with its details, not a check. If B2B is your main channel, see also the page about the wholesale store - there this logic is analyzed in more depth.
Are Norway and Britain the same project?
No, and confusing them is expensive. Norway is not part of the EU: it has its own regime for paying tax when importing small parcels and its own thresholds, that is, the store for Oslo calculates the amount differently than the store for Madrid. Our Norwegian project is a website for an aesthetic medicine clinic in Kristiansand, not a shop: WordPress with Bricks, 26 published pages, first server response 285.9ms, HTML 119.5KB. Therefore, when we talk about experience with Norway, we are talking about working with a Norwegian customer, and not about a run-down shop under Norwegian tax.
Send a list of countries you sell to and tell where the product is coming from.
In response, there is a document on readiness for the EU market, a list of what is blocking the start, and an assessment of the work by stages. If the European destination is not going to be arranged for your product, you will hear about it in the first email.
From measured cases23 products — the entire assortment of the brand, confirmed by standard search without pagination
There is no price list on the site on purpose: the same work differs several times over between two clients, and a “from” figure explains nothing in that case. First a free audit — we count your pages, duplicates and speed — then we name the sum and the deadline and fix both in the contract.