# E-commerce development for CBD, hemp and vaping

> In this sector the first architectural decision is neither the theme nor the catalogue: it is the ability to keep taking payments the day a provider closes the merchant account. Everything else is built after that.

- Source canonique : [https://allaux.fr/en/secteurs/cbd-cigarette-electronique](https://allaux.fr/en/secteurs/cbd-cigarette-electronique)
- Langue : EN
- Dernière mise à jour : 2026-09-30

## Taking payment: the real subject, settled at design time

Many payment providers classify this activity as high risk and can close a merchant account very quickly, sometimes with no useful notice. The consequence is technical rather than commercial: you need two independent means of taking payment from the outset, carried by two separate providers, with the integration code isolated behind a shared interface instead of letting a module dictate how checkout behaves.

In practice that means the checkout only knows abstract operations — authorise, capture, refund, notify — and an adapter translates them for whichever provider is active. Switching then becomes a configuration change, applied without rebuilding the checkout, without breaking orders mid-authorisation and without losing the history of transactions already settled.

## Advertising is closed to you, so acquisition is technical

Ad networks and price comparison engines refuse these products. Sending a standard product feed to a shopping engine risks suspension of the merchant account, and sometimes the loss of all the history attached to it. Visibility therefore rests on organic search and on channels you own outright, which shifts where the investment goes.

The practical result is that the budget which elsewhere would fund the ad auction has to fund catalogue structure, rendering speed and depth of content instead. A legible category tree, range pages that are genuinely written, internal links between flavours and strengths, and controlled response times on faceted pages: those are the jobs that produce traffic, not tuning an advertising conversion tag.

## Regulatory attributes the catalogue must carry

- Age verification: sale to minors is prohibited, with a check on entry, a confirmation at checkout and retention of the proof.
- Delta-9-tetrahydrocannabinol content: only varieties at or below 0.30 % are permitted; the level, the variety and the batch analysis belong on the product record.
- Analysis document: the batch certificate must be attached to the reference and viewable, not emailed on request.
- E-liquid nicotine: capped at 20 mg/ml by the European tobacco products directive.
- Volumes: refill bottles limited to 10 ml, prefilled cartridges to 2 ml.
- Prior notification to the health agency before placing on the market: notification status governs whether a reference may go live.
- Geographic restrictions: legality varies by country, and the block must live in the carrier calculation, not only in the terms of sale.

## Flavour by strength by volume: a regulated matrix

One flavour exists in several strengths and several volumes. Every cell of that matrix has its own stock, price, barcode and notification status. It is the combinatorial problem fashion faces with size and colour, plus one extra constraint: a single combination may be prohibited while its neighbours are permitted.

So a regulatory attribute cannot live at parent product level. Nicotine strength, volume, notification status and the identifier of the analysis document must be carried by the variant, filterable on the front end and auditable in bulk. Otherwise updating a range means reopening every page by hand, and the first mistake goes unnoticed until an inspection.

On these catalogues I also set a publication rule: a variant whose regulatory attribute is empty does not display. A missing reference is better than a live one with no stated level and no document.

## What I handle around this sector

- **Payments that stop going through** — Diagnosing a payment module that declines, stops notifying, or leaves orders stuck awaiting authorisation. ([/prestashop/probleme-paiement](/prestashop/probleme-paiement))
- **Custom payment module** — Integrating a provider with no official module, or rewriting an integration so providers can be swapped painlessly. ([/expertises/module-paiement-sur-mesure-prestashop](/expertises/module-paiement-sur-mesure-prestashop))
- **Product feed errors** — Understanding why a feed is rejected or a merchant account suspended, and what has to be taken out of it. ([/services/tracking/corriger-erreurs-merchant-center](/services/tracking/corriger-erreurs-merchant-center))
- **Variants that drift** — Missing combinations and inconsistent stock once the variant matrix grows wide. ([/prestashop/problemes/declinaisons-produits-bugs](/prestashop/problemes/declinaisons-produits-bugs))

## A moving legal frame: never hard-code it

> In late 2022 the French Conseil d’État annulled the order banning the sale of hemp flowers and leaves, and the applicable framework keeps evolving. That is one more reason for level, variety, volume and notification status to be attributes editable in bulk rather than sentences copied into descriptions. I do not give legal advice: I build the catalogue so your adviser can have a rule change applied in one operation rather than three weeks of data entry.

## FAQ

### Do you really need two payment providers from day one?

In this sector, yes. A merchant account can be closed quickly and with no immediate remedy. Having a second contract already signed and an adapter already written turns a business shutdown into a configuration change.

### Can a product feed be sent to a comparison engine or ad network?

These products are refused by the main networks and submitting them usually triggers suspension. Where a site also sells items outside that scope, the only workable approach is to exclude the affected references from the feed strictly, filtering at source rather than by hand.

### How should age verification be implemented?

With a check on entry to the site, an explicit confirmation at checkout, and a timestamped record of that confirmation attached to the order. A banner dismissed with one click leaves no usable evidence.

### Where should batch analysis results be stored?

Attached to the reference, with the batch number, the analysis date and a document viewable from the product page. A file sent on request goes missing, and makes it impossible to trace which batch matched which order.

### How do you block sales to a country where the product is not permitted?

By applying the restriction in the delivery method calculation and in the basket check, per product category. A clause in the terms of sale prevents nothing technically and still lets parcels leave that should not.
