
01 / 09 — Bulgaria
Cannapopolis’s local Bulgarian brand, Kanabidiol.com, with a free-delivery bar, quick order and an AI assistant.
- BG
- EUR · BGN
- Econt · Speedy · Pigeon · BOX NOW
- Cash on delivery
A custom e-commerce platform that runs nine national online stores from one shared core.

Brief
Nine European markets, without a separate site for each country.


01Challenge
The brand sold through a standard online store and wanted to open new European markets without building a separate site for each country. It needed a system that could open a country in days, respect the strict rules for communicating about CBD products and show honestly where every order came from.
02Approach
We built one core with a profile per market: language, currency, prices, couriers, payments, legal texts, SEO and tracking. Every risky feature sits behind its own switch, and every release goes through automated tests.
03Result
Less than four weeks after the first line of code, all nine stores were live. Today the platform brings together the catalogue and local pricing, delivery through local carriers, card or cash-on-delivery payment, content in nine languages and a private centre for order and ad intelligence.
Highlights
CH. 01—06
Chapters
Cannapopolis Core is a platform we built for the brand: it runs the brand’s CBD-oil stores in Bulgaria, Romania, Greece, Hungary, Italy, Slovenia, Czechia, Poland and the Netherlands. Each store has its own language, currency, couriers, payments, legal pages and SEO, and behind the storefront sit customer-journey tracking, a dossier for every order and a watch on the checkout.
CH. 01 / 06 — Multi-market platform
One codebase runs nine national stores. Each market has its own language, currency, prices, couriers, payments, legal pages and SEO: nine stores that work as one multilingual, multi-country shop.
Bulgaria
Cannapopolis’s local Bulgarian brand, Kanabidiol.com, with a free-delivery bar, quick order and an AI assistant.
PL. 01 — Bulgaria · kanabidiol.com

01 / 09 — Bulgaria
Cannapopolis’s local Bulgarian brand, Kanabidiol.com, with a free-delivery bar, quick order and an AI assistant.

02 / 09 — Romania
Romanian copy, prices in lei and a price-per-mg comparison button.

03 / 09 — Greece
Greek copy, euro prices and an order assistant.

04 / 09 — Hungary
Hungarian copy, forint prices and a product-data headline.

05 / 09 — Italy
Italian copy, clear label data and euro prices.

06 / 09 — Slovenia
Slovene copy and euro prices.

07 / 09 — Czechia
Czech copy and koruna prices.

08 / 09 — Poland
Polish copy and złoty prices.

09 / 09 — Netherlands
Dutch copy and euro prices.

01 / 09 — Bulgaria
Cannapopolis’s local Bulgarian brand, Kanabidiol.com, with a free-delivery bar, quick order and an AI assistant.

02 / 09 — Romania
Romanian copy, prices in lei and a price-per-mg comparison button.

03 / 09 — Greece
Greek copy, euro prices and an order assistant.

04 / 09 — Hungary
Hungarian copy, forint prices and a product-data headline.

05 / 09 — Italy
Italian copy, clear label data and euro prices.

06 / 09 — Slovenia
Slovene copy and euro prices.

07 / 09 — Czechia
Czech copy and koruna prices.

08 / 09 — Poland
Polish copy and złoty prices.

09 / 09 — Netherlands
Dutch copy and euro prices.
CH. 02 / 06 — Tracking & attribution
From first touch to delivery, every step leaves a trace: only with consent, and with no names, emails or phone numbers in the reports. Without consent the source stays “unknown”; the system never guesses.
A click from search or an ad
Campaigns are reported per market and never mix countries or currencies.
What gets recorded
Visit source
Demo data
01 / 07 — Ad
A click from search or an ad
Campaigns are reported per market and never mix countries or currencies.
What gets recorded
Visit source
Demo data
02 / 07 — Landing
A page that explains
Guides and articles in nine languages lead to the right product, with no promises of effect.
What gets recorded

03 / 07 — Product
Strength and spectrum
The shopper picks a strength and spectrum and sees each variant’s price in their own currency.
What gets recorded

04 / 07 — Cart
“3 for the price of 2”, no spreadsheets
Bundles are priced automatically in the cart, for every market and currency.
What gets recorded

05 / 07 — Checkout
Checkout and payment
Card in eight markets or cash on delivery in all nine. The purchase is reported with its currency, value and order number, never twice.
What gets recorded

06 / 07 — Delivery
A local carrier, one partner
15 local carriers across the nine countries, with every order going through one fulfilment partner.
What gets recorded

07 / 07 — Dossier
A dossier for every order
Automatic checks right away and after 1, 24 and 72 hours, cross-checked with Google Ads, GA4 and Meta. Each check is a separate, immutable record.
What gets recorded
Order dossier
Demo data
01 / 07 — Ad
A click from search or an ad
Campaigns are reported per market and never mix countries or currencies.
What gets recorded
Visit source
Demo data
02 / 07 — Landing
A page that explains
Guides and articles in nine languages lead to the right product, with no promises of effect.
What gets recorded

03 / 07 — Product
Strength and spectrum
The shopper picks a strength and spectrum and sees each variant’s price in their own currency.
What gets recorded

04 / 07 — Cart
“3 for the price of 2”, no spreadsheets
Bundles are priced automatically in the cart, for every market and currency.
What gets recorded

05 / 07 — Checkout
Checkout and payment
Card in eight markets or cash on delivery in all nine. The purchase is reported with its currency, value and order number, never twice.
What gets recorded

06 / 07 — Delivery
A local carrier, one partner
15 local carriers across the nine countries, with every order going through one fulfilment partner.
What gets recorded

07 / 07 — Dossier
A dossier for every order
Automatic checks right away and after 1, 24 and 72 hours, cross-checked with Google Ads, GA4 and Meta. Each check is a separate, immutable record.
What gets recorded
Order dossier
Demo data
CH. 03 / 06 — Ads & measurement
We built separate Google Ads and Meta campaigns for every store and every country. The ads centre sets their reports next to the store’s real orders, and copy is checked against banned-claim lists because CBD is a restricted category.
Google Ads campaign
Separate Google Ads campaigns for every store and its country, each reported per market.
| Campaigns for every country | ||||||||
|---|---|---|---|---|---|---|---|---|
| BGkanabidiol.com | Live | Live | Live | Live | Live | Live | Live | Live |
| ROcannapopolis.ro | Live | Live | Live | Live | Live | Live | Live | Live |
| GRcannapopolis.gr | Live | Live | Live | Live | Live | Live | Live | Live |
| HUcannapopolis.hu | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| ITcannapopolis.it | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| SIcannapopolis.si | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| CZcannapopolis.cz | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| PLcannapopolis.pl | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| NLcannapopolis.nl | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| Live | 9/9 | 9/9 | 9/9 | 9/9 | 9/9 | 3/9 | 9/9 | 9/9 |
| Campaigns for every country | Google Ads campaign | Meta campaign | Google tag | Purchase → Google Ads | GA4 per market | Meta Pixel + CAPI | Meta catalogue | Behaviour & speed |
|---|---|---|---|---|---|---|---|---|
| BGkanabidiol.com | Live | Live | Live | Live | Live | Live | Live | Live |
| ROcannapopolis.ro | Live | Live | Live | Live | Live | Live | Live | Live |
| GRcannapopolis.gr | Live | Live | Live | Live | Live | Live | Live | Live |
| HUcannapopolis.hu | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| ITcannapopolis.it | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| SIcannapopolis.si | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| CZcannapopolis.cz | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| PLcannapopolis.pl | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| NLcannapopolis.nl | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| Live | 9/9 | 9/9 | 9/9 | 9/9 | 9/9 | 3/9 | 9/9 | 9/9 |
| Campaigns for every country | Google Ads campaign | Meta campaign | Google tag | Purchase → Google Ads | GA4 per market | Meta Pixel + CAPI | Meta catalogue | Behaviour & speed |
|---|---|---|---|---|---|---|---|---|
| BGkanabidiol.com | Live | Live | Live | Live | Live | Live | Live | Live |
| ROcannapopolis.ro | Live | Live | Live | Live | Live | Live | Live | Live |
| GRcannapopolis.gr | Live | Live | Live | Live | Live | Live | Live | Live |
| HUcannapopolis.hu | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| ITcannapopolis.it | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| SIcannapopolis.si | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| CZcannapopolis.cz | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| PLcannapopolis.pl | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| NLcannapopolis.nl | Live | Live | Live | Live | Live | Built, ready to switch on | Live | Live |
| Live | 9/9 | 9/9 | 9/9 | 9/9 | 9/9 | 3/9 | 9/9 | 9/9 |
CH. 04 / 06 — Reliability
A flight recorder follows every checkout step, from the cart to the confirmation, in all nine markets. Recording is pseudonymous and never stops a sale if the recording itself fails.
checkout event types
error codes, each with a clear cause
markets under watch

CH. 05 / 06 — Content & trust
More than 100 localised articles, a label guide, an archive of lab analyses and reviews with their source stated. The content describes the product, with no health claims and no dosing.
Label guide
One bottle, three numbers: %, mg and ml, explained in one place.
PL. 01 — Label guide

01 / 09 — Label guide
One bottle, three numbers: %, mg and ml, explained in one place.

02 / 09 — mg/ml calculator
Total mg ÷ ml = mg/ml, linked to the matching product.

03 / 09 — Certificates
Archived lab analyses per strength, openly labelled as previous batches.

04 / 09 — Reviews with provenance
Historical reviews from the original store, with a note on source and translation; a badge only for verified purchases.

05 / 09 — From plant to product data
Six field photos: planting, growth, flowering, ripening, drying and extraction.

06 / 09 — A blog in 9 languages
“CBD in plain words”: a four-article path for first-time visitors.

07 / 09 — Articles that compare
Full spectrum, broad spectrum and isolate compared, with contents and a cited study.

08 / 09 — Partner map
56 partner locations in Bulgaria, filterable by city and type.

09 / 09 — An AI assistant in 9 languages
Answers questions on strength, mg/ml, spectrum, price and delivery, with no medical claims, no dosing and no invented stock.

01 / 09 — Label guide
One bottle, three numbers: %, mg and ml, explained in one place.

02 / 09 — mg/ml calculator
Total mg ÷ ml = mg/ml, linked to the matching product.

03 / 09 — Certificates
Archived lab analyses per strength, openly labelled as previous batches.

04 / 09 — Reviews with provenance
Historical reviews from the original store, with a note on source and translation; a badge only for verified purchases.

05 / 09 — From plant to product data
Six field photos: planting, growth, flowering, ripening, drying and extraction.

06 / 09 — A blog in 9 languages
“CBD in plain words”: a four-article path for first-time visitors.

07 / 09 — Articles that compare
Full spectrum, broad spectrum and isolate compared, with contents and a cited study.

08 / 09 — Partner map
56 partner locations in Bulgaria, filterable by city and type.

09 / 09 — An AI assistant in 9 languages
Answers questions on strength, mg/ml, spectrum, price and delivery, with no medical claims, no dosing and no invented stock.
CH. 06 / 06 — Scale & pace
From the first line of code on 11 June to the ninth store on 4 July. Then the platform kept growing: card payments, fulfilment, tracking and content in nine languages.
stores, one core
indexable pages with hreflang
localised articles
local carriers
currencies
automated tests
PL. 01—03


Contact
Want something like this?
30 minutes, no commitment. You’ll leave with concrete ideas for your website, processes or product.
Pick a time that suits you in our calendar.
Tell us about the project. We reply within a few hours on business days.
Tell us about the project. We reply within a few hours on business days.