A watch boutique on Rue du Rhône, an NGO donor shop tied to a Geneva foundation, a B2B spare-parts catalogue for suppliers around Carouge, or a luxury goods reseller near Quai du Mont-Blanc is not a reason for WooCommerce to pretend it is a UN procurement system or a private-bank core. It is a reason for checkout, gateways, MWST display and order data to be built the way a Geneva legal desk, a multilingual shop manager in Poland and a senior developer in Warsaw expect: CHF totals that match the invoice, TWINT that works on a phone at Cornavin, and customer data handled under revFADP with FDPIC context, not a cookie banner copied from a German SaaS defaults page.
WPPoland delivers this WooCommerce from a senior Polish team for retailers, NGOs, distributors and B2B sellers with a headquarters, warehouse or donor base in Geneva. Scope is WooCommerce development: custom checkout, payment gateways, tax and shipping rules, hook-based extensions, ERP or inventory hooks, performance work and code review on Git. Custom WordPress themes, UN publication sites and standing maintenance are separate topics, with links at the end and on WordPress developer in Geneva.
#WooCommerce development in Geneva
Geneva concentrates buyers and compliance attention in one canton. Palais des Nations and dozens of UN agencies bring international staff, delegates and NGOs with English and French expectations. Geneva Financial Centre brings wealth-management clients who judge a slow checkout on a phone the same way they judge a sloppy PDF terms sheet. Geneva Digital Hub at Rue du Stand 5 and the lake-side startup scene add brands that want a shop without hiring a full internal ecommerce team. Polish editorial and operations teams often run the catalogue from Warsaw or Gdynia while legal and tax sign-off sit in Canton de Genève.
For WooCommerce those facts translate into engineering constraints, not marketing slogans. Payments must include what Swiss buyers actually use: TWINT, cards through Stripe or PayPal, sometimes PostFinance, rarely a single EU-only gateway. Tax must show MWST correctly for CH and handle EU OSS or export rules when the warehouse ships cross-border. The storefront is often FR-CH plus EN, sometimes DE-CH, with formal French vous in buttons and error strings. Order data triggers revFADP / nDSG and often GDPR as well, with FDPIC supervision in Bern for the Swiss layer. Hosting discussions start with Infomaniak in Geneva, Hostpoint or Metanet, and whether origin stays in CH with edge CDN, not with the cheapest VPS abroad.
The brief that reaches seniors rarely says “install Woo and a theme”. It says: forty plugins, checkout in three languages, TWINT added without breaking Stripe webhooks, MWST wrong on mixed B2B carts, cart fragments killing mobile performance before a Council-week traffic spike, and nobody who can explain what happens to order exports if the marketing CRM changes. That is architecture, gateway QA and Git, not a marketplace child theme.
#Checkout, gateways and what Swiss buyers expect in Geneva
Checkout in Geneva is judged on a phone, often on mobile data between meetings. A wallet flow that opens TWINT, confirms in the app and returns to a thank-you page without a double charge is baseline. Card flows need 3DS where the issuer requires it, clear CHF display, and no surprise FX if the gateway settles in another currency.
| Method | Typical use in Geneva | Engineering notes |
|---|
| TWINT | retail, food, services, mid-market ecommerce | mobile-first return URL, webhook idempotency, test on real devices |
| Stripe / PayPal | cards, international buyers, subscriptions | 3DS matrix, refund and partial refund paths, dispute webhooks |
| PostFinance | CH buyers who expect domestic acquirer | sandbox credentials, reconciliation fields in order notes |
| Invoice / B2B | corporate buyers, NGOs | QR-Rechnung or PDF invoice plugin boundary in custom code, not theme |
For each gateway the runbook records: supported flows (one-shot, recurring if Woo Subscriptions is in scope, refunds), test credentials, webhook URLs, which server receives callbacks (staging versus production), and how duplicate callbacks are ignored without double-shipping. End-to-end QA on staging runs cart, payment, order row, customer email, admin edit and refund on every active method. Failure paths matter: declined card, TWINT abandoned, timeout, webhook delayed five minutes.
Custom checkout fields stay minimal. Geneva B2B often needs company UID, reference number or delivery slot; NGOs may need a donor ID. Each field is mapped to order meta with export rules documented so ERP or mail tools do not leak internal IDs to the customer email template. Express checkout plugins are used only when they do not bypass consent checkboxes required under revFADP for marketing opt-in.
Gateway credentials and API keys do not live in Git. Environment variables or host-level secrets, same rule as on the WordPress side. A PostFinance or Stripe secret in a committed wp-config.php is an incident, not a cleanup ticket for next quarter.
#MWST, invoicing and cross-border tax from Geneva
Swiss MWST display on WooCommerce is a product and legal alignment task, not a single checkbox. Standard and reduced rates, exempt categories, B2B reverse-charge style setups for qualified buyers, and EU distance sales when the warehouse in Geneva ships to France or Germany each need explicit classes, customer role rules and written agreement with whoever signs the tax brief in Geneva.
QR-Rechnung and PDF invoice plugins are common in CH B2B. The boundary matters: invoice layout and QR generation can sit in a supported plugin; fee rules, credit notes and export to accounting stay in custom code or a named integration plugin so a theme update does not change VAT math. Rounding mode (per line versus per order) is fixed in the architecture note because accounting in Geneva will reconcile to cents.
Cross-border from Canton de Genève adds OSS or export documentation, customs content on commercial invoices for physical goods, and shipping tax interaction when the carrier API returns duty estimates. Woo tax settings alone rarely cover the full story; hooks adjust totals only where the written tax brief says so, with audit trail in order notes.
#Shipping, carriers and fulfilment for shops in Geneva
Physical goods from Geneva use Swiss Post, DHL, UPS or regional carriers depending on product weight and SLA. Woo shipping zones separate CH domestic, EU and rest of world. Table rates, weight and dimension rules, and free-shipping thresholds are tested with real product samples, not only with a one-kilo test SKU.
Click-and-collect or boutique pickup near Rive or Eaux-Vives appears in retail briefs: a location picker tied to stock per warehouse, not a fake “free shipping” label that hides pickup scheduling. B2B may integrate WMS or 3PL webhooks on order status processing so the warehouse in Satigny or across the border does not receive duplicate API calls when an editor re-saves the order.
Release freeze around major events is a delivery decision agreed in writing. During a UN conference week or a foundation report launch, production may not get a new shipping plugin or zone map change unless security forces it; hotfixes go through staging with rollback first.
#Multilingual FR-CH, EN and checkout strings in Geneva
The shop front is often FR-CH and EN, sometimes DE-CH for German-speaking buyers in the region. Polylang or WPML WooCommerce Multilingual translates products and checkout fields; they do not fix register. FR-CH interface strings use formal vous: “Veuillez saisir votre adresse”, not informal tu. EN stays formal institutional tone for NGO and finance-adjacent brands. Polish admin locale for editors in Poland does not have to match the front language.
Hreflang for product and category URLs is verified on staging alongside checkout, because cached pages that strip link rel="alternate" break both SEO and buyer trust. FR-CH is not FR-FR: administrative terms and Swiss spelling differ from Parisian defaults in machine translation. A DeepL overnight job is not an editorial process; glossary entries for programme names and product lines live in documentation and .po files.
Checkout email templates get per-locale review: order confirmation in the language the customer used, not the language of the first admin user who installed Woo.
#revFADP, FDPIC, GDPR and order data in WooCommerce
WooCommerce stores personal data by default: account, address, email, phone, purchase history, IP in logs if retention is careless. The revised Federal Act on Data Protection (revFADP / nDSG) has applied since 1 September 2023. Supervision sits with the Federal Data Protection and Information Commissioner (FDPIC, EDÖB) in Bern. Art. 19 expects identity of the controller, purpose, recipients and, for transfers outside Switzerland or the EEA, country and safeguards. A personal data breach with likely high risk to personality or fundamental rights is reported by the controller; the processor reports to the controller. FDPIC operates a DataBreach portal that assigns a Report-ID to controller submissions. Guidance on Art. 24 was updated in April 2025.
GDPR still applies to processing aimed at people in the EU. A Geneva shop with French, German and Italian cross-border sales therefore often runs two layers, not one. A consent plugin tuned only for Germany is not automatically nDSG-aligned; absence of a banner is not automatically lawful when analytics, profiling or transfer to an inadequate country is active. Development does not provide legal advice. It keeps checkout marketing checkboxes, consent logs and subprocessors (mail, analytics, CDN, gateway) aligned with what stands in the politique de confidentialité and Datenschutzerklärung, and verifies that logs still write after a GTM or consent-plugin update.
For Geneva financial-sector adjacent shops (luxury, advisory bundles, client gifting), FINMA cyber-security guidance on third-party risk may matter to the client’s own compliance pack even when the shop is not a supervised bank system. That is flagged at kickoff, not at launch.
Data minimization in code: do not store card data on WordPress; rely on gateway tokenization. Trim order meta exports to what ERP needs. Retention for guest orders and logs follows the written retention brief. Hosting in CH (Infomaniak, Hostpoint, Metanet) is a residency argument clients raise; edge CDN with origin in CH is the usual compromise.
#Plugin boundary, hooks and surviving Woo updates
WooCommerce core is not edited. Customisation uses action and filter hooks, a custom plugin for fees, gateways, ERP callbacks and checkout logic, and a theme or child theme for layout. If removing the theme breaks TWINT return handling, the architecture was wrong.
High-Performance Order Storage (HPOS) is enabled when order volume or admin search slowness warrants migrating off legacy post tables, with a staged cutover and rollback plan. Not every Geneva boutique needs HPOS on day one; a B2B catalogue with thousands of monthly orders often does.
Subscriptions, memberships and donation flows use Woo extensions only when the brief truly needs recurring billing or gated content. Otherwise a simpler gateway schedule or an external donor platform may be recorded as a written alternative.
PHPUnit covers non-trivial fee and tax helpers. Cypress or Playwright covers checkout smoke on staging. Query Monitor and Lighthouse on product, category and checkout URLs find cart-fragment and autoload pain before Black Friday or conference-week traffic.
Buyers in Geneva measure speed on mobile networks, not only on office Wi-Fi at WHO or a bank on Quai du Mont-Blanc. Cart fragments, unbounded related-product queries, hero images without dimensions, and consent scripts blocking render show up as abandoned TWINT sessions.
Images use AVIF or WebP through the build or upload pipeline, with explicit width and height to protect CLS. Object cache (Redis) helps when transients and session-heavy plugins justify it. Checkout keeps JavaScript lean: no page builder loading editor bundles on checkout. Critical CSS for checkout is part of acceptance when the brief cites Core Web Vitals.
Performance baselines are recorded before and after change on the URLs that matter: top category, best-selling SKU, checkout and thank-you. Poland and Geneva share CET/CEST, so weekday staging tests overlap with Geneva IT hours.
#Git, staging and code review for WooCommerce in Geneva
The repository holds the custom plugin and storefront theme. Woo core and marketplace plugins are not copied into Git unless forked or patched. One branch per change: new gateway, MWST rule, shipping zone. Pull requests include screenshots or screen recording of checkout, checklist for i18n, gateways, no secrets, and whether HPOS tables need migration scripts.
Code review is by a senior who did not write the branch. PHPCS with WooCommerce sniffs plus intent review: should this fee live in the plugin, does this hook fire twice on woocommerce_cart_calculate_fees, does TWINT callback verify signature. Geneva IT often wants French in shop-manager docs and English in the diff.
Staging is production-like with anonymised orders, separate gateway keys, crons that do not email real customers, and TWINT sandbox reachable from a phone on staging VPN or allowlisted IP. Promotion to production is documented: tag, asset build, cache warmup, rollback tag identified before deploy. No SFTP hotfix to production on a Friday before a donor campaign.
#WordPress corporate sites stay a separate scope
This page does not build block themes, NGO publication archives or advisory firm marketing sites. If the brief is only WordPress without a cart, scope moves to WordPress developer in Geneva. A corporate site with one external “boutique” link can stay a link in the theme. Cart logic, MWST on products and gateway webhooks do not.
Mixing a foundation conference landing and a full Woo install in one repo without plugin boundaries is the fastest way for a Woo security update to break a publication pattern, or for a theme deploy to drop a webhook endpoint.
#After delivery: handover or maintenance in Geneva
Development ends with documentation, gateway runbooks, MWST change checklist, architecture decision record, shop-manager notes and a handover session. Git access goes to the client team when agreed. The runbook states how to toggle a gateway, add a shipping zone, run staging checkout tests, and which Council or report dates block release.
Ongoing Woo security updates, gateway certificate renewals, monitoring and standing operator duty sit on WordPress maintenance in Geneva or the national maintenance pillar, not as a hidden annex to development.
Pricing is individual and issued in writing after scope is agreed. This page has no rate card. Scope change (second language, ERP integration, headless front) returns to the written record before it enters the sprint.
#How to start a WooCommerce project in Geneva
A short written brief is enough: current theme and plugins, active gateways, FR-CH/EN/DE-CH needs, formal vous on French front, B2B or NGO constraints, whether hosting must stay in CH, ERP or inventory endpoints, and calendar dates that should block release. The team reviews the install, lists risks (webhook duplicates, MWST rounding, TWINT only tested on desktop, consent log silent after GTM change, HPOS not planned while orders clog admin search) and returns a plan with acceptance criteria.
Contact: WPPoland contact form. The service pillar without city in the slug remains at WooCommerce developer.