• Online Stores · OpenCart 4.x and 3.x

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.

See how it works
Price
after a free audit
Guarantee
30 days after project sign-off
Stores in the EU in the portfolio
Spain and Bulgaria, both measured on 07/31/2026
after a free audit
Price
30
Guarantee

days after project sign-off

Spain and Bulgaria, both measured on 07/31/2026
Stores in the EU in the portfolio
76
Spanish shop

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
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

Sales commissionno: pay for hosting, payment gateway and shipping
Buyer contactyours: mail, order history, the right to write yourself
Legal outlineyour area: seller details, terms, order cancellation, data consent
Price and assortmentmanage yourself, including prices by country
Start date30–55 working days from approval of technical specifications
What remains when stoppingsite, base, domain and buyers
What we need from you

We can't start without this — best to prepare in advance

  1. List of countries where you actually sell and ship to. Not "Europe", but the list - everything else is calculated from it.
  2. From where the goods are shipped: a warehouse in Ukraine, a warehouse in an EU country or fulfillment.
  3. Seller registration data for the company data page: legal name, address, registration number, work contact.
  4. Your EU tax status and the person who maintains it: without it, the shop will calculate the amounts at random.
  5. Price list with prices, weight and dimensions of items - without weight, the delivery calculator will not work.
  6. Terms of sale, returns and data policies from your lawyer.
  7. One 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

View cases
  • Reply within 2 hours
  • No commitment
  • We work under a contract

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.