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.
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.
-
Custom payment module
Integrating a provider with no official module, or rewriting an integration so providers can be swapped painlessly.
-
Product feed errors
Understanding why a feed is rejected or a merchant account suspended, and what has to be taken out of it.
-
Variants that drift
Missing combinations and inconsistent stock once the variant matrix grows wide.
Frequently asked questions
Do you really need two payment providers from day one?
Can a product feed be sent to a comparison engine or ad network?
How should age verification be implemented?
Where should batch analysis results be stored?
How do you block sales to a country where the product is not permitted?
Describe your need in one minute
A few targeted questions so I can reply with an estimate rather than another questionnaire.