Available in Basel

WooCommerce Developer in Basel

Professional WooCommerce services in Basel - your business deserves the best digital outcomes

WooCommerce Developer → Basel

We support the WordPress Community in Basel

We are not just a remote agency. We are an active part of the ecosystem. We believe in Open Source and contributing back to the community that powers over 40% of the web (W3Techs).

    WordPress & WooCommerce Developer in Basel

    01. Local SEO Performance

    In Basel's competitive market, site speed is your strongest SEO asset. Our Astro + Headless WP stack delivers performance that leaves competitors behind.

    02. Enterprise-Grade Security

    For businesses in Basel serving Local SMB and Enterprise, data security is paramount. Headless architecture virtually eliminates standard WordPress attack vectors.

    A lab-supplier shop in Basel sits next to Roche on Grenzacherstrasse, the Novartis Campus on Fabrikstrasse, DayOne accelerators in the BaselArea cluster, the Art Basel calendar at Messe Basel, and a trilingual region where impressum must match Zefix, not a German Amtsgericht entry. That is not a reason for WooCommerce to pretend it is a GxP system or a validated clinical ordering portal. It is a reason for checkout, MWST, TWINT and the order-data trail to be written the way Basel compliance expects and the way a Polish operations team works when the storefront ships in DE, FR and EN.

    WPPoland builds this WooCommerce from a senior Polish team for businesses in Basel and across the life sciences cluster. The scope is WooCommerce development: custom checkout, TWINT and card gateways, MWST logic, shipping zones, B2B wholesale, ERP hooks and code review on Git. Corporate WordPress sites without a cart and ongoing maintenance are separate topics, with links at the end.

    #WooCommerce development for businesses in Basel and the life sciences cluster

    Basel combines three forces that rarely meet at this scale in one city. First, pharma and biotech: Roche and Novartis set the bar for documentation, partner onboarding and procurement traceability. Around them grows an ecosystem of CROs, suppliers, spin-offs and accelerators promoted by BaselArea (baselarea.swiss). Second, trilingual operations: Basel-Stadt uses German as the official language, the border region with France (Weg bis nach Saint-Louis) translates regulatory and B2B copy into French, and English is the working language in life sciences. Third, Switzerland as a jurisdiction: the revised Federal Act on Data Protection (nDSG), MWST on invoices, TWINT as a default consumer payment method, and hosting with Cyon in Basel, Infomaniak or Metanet, not the cheapest VPS across the ocean.

    For a WooCommerce store these facts do not mean the checkout should count clinical samples or sync with a LIMS. They mean three harder requirements. Product and order data may be regulated (Datenschutzerklärung, impressum with UID and Firmenwortlaut from Zefix, DE/FR/EN versions). The storefront must stay consistent across languages without broken hreflang and without MWST copied from a German USt template. Hosting, log retention, payment webhooks and the question of origin in Switzerland are kickoff topics, because someone nearby will ask about nDSG, about the Federal Data Protection and Information Commissioner (FDPIC, EDÖB in German) or about cross-border data transfer when the ERP sits in Germany.

    A typical brief that reaches seniors in Basel does not read “install Woo and add products”. It reads: inherited theme with 40 plugins, TWINT that fails on mobile Safari, MWST wrong on B2B orders to France, editorial team in Poland, compliance in Basel-Stadt, and a supplier catalogue that still syncs from CSV because the ERP webhook was never finished. That is a checkout, integration and Git process problem, not a marketplace template problem.

    WPPoland is not a supplier to Roche, Novartis or BaselArea. Proximity to the pharma cluster sets the documentation, role and Git bar for order paths. It does not set a reference list.

    #Checkout, TWINT and Swiss payment gateways

    Payment in Basel is not “turn on Stripe and forget”. Consumer buyers expect TWINT. B2B buyers expect invoice with QR-Rechnung and correct MWST line items. Cross-border buyers in the Dreiländereck expect shipping and tax logic that does not break at the first postcode in Germany or France.

    #TWINT, cards and the gateway boundary

    TWINT integration lives in a gateway plugin or a custom connector, not in the theme. The theme renders product pages; the plugin owns redirect URLs, webhook endpoints, order status transitions and idempotency when the app callback arrives twice. For card payments, Stripe with 3D Secure 2.0 is the common choice; PostFinance and PayPal remain when the brief or existing merchant contract requires them.

    Each gateway gets a runbook before production:

    GatewayFlows documentedBasel-specific note
    TWINTredirect, webhook, refundtest on mobile Safari and Android; peak load during Art Basel week
    Stripecard, 3DS, wallet, refundCHF settlement and receipt language per locale
    PostFinancecard, e-finance where applicablemerchant ID and test environment from Swiss acquirer
    B2B invoiceQR-Rechnung, payment termsUID and MWST on PDF, not only in Woo admin

    End-to-end QA on staging covers cart, checkout, payment, order confirmation email, admin order edit and refund on every active gateway. Failure paths matter: declined card, TWINT timeout, webhook 500, duplicate callback. Those are the incidents that leave finance with unmatched orders on a Monday in Kleinbasel.

    Custom checkout fields (PO number, cost centre, delivery note for a CRO campus) belong in a plugin that hooks woocommerce_checkout_fields and validates server-side. Client-side-only validation is how a B2B order without a mandatory reference reaches a warehouse that cannot ship.

    #PCI scope and webhook security

    Card data should reach the gateway directly (Stripe Elements, hosted fields). WooCommerce stores order metadata, not PAN. Webhook endpoints verify signatures, reject replayed payloads, and log enough for finance reconciliation without storing full card numbers in wp_postmeta. Admin accounts use 2FA; shop managers do not get install_plugins on production.

    #MWST, shipping zones and the Dreiländereck

    Swiss VAT (MWST) is not German USt copied into Woo tax settings. Standard and reduced rates, exempt categories for certain supplies, and B2B reverse-charge scenarios for cross-border B2B need a written tax map before the first product goes live. The team documents which product classes carry which rate, how prices display (inclusive vs exclusive), and what the invoice PDF must show for UID and Firmenwortlaut from Zefix.

    Shipping zones reflect geography, not marketing regions:

    • Switzerland: Swiss Post, DPD, pickup at Messe Basel events, or campus delivery rules negotiated with the client.
    • Germany and France (Dreiländereck): separate zones with carrier APIs, customs documentation where goods cross borders, and delivery time copy in DE and FR.
    • Rest of EU and international: DHL or UPS with weight and dimension rules; avoid a single “Europe flat rate” that loses money on heavy lab equipment.

    B2B wholesale often needs role-based pricing, minimum order quantities, request-for-quote for catalogue lines that cannot be priced publicly, and separate payment terms (invoice on account vs card at checkout). That logic lives in a plugin; the theme only renders the price HTML the plugin filters provide.

    Product import from ERP (SAP Business One, Abacus, custom middleware) uses scheduled Action Scheduler jobs, conflict resolution when SKU stock diverges, and explicit failure alerts. A silent sync that zeroes stock on a Friday afternoon is worse than a visible error ticket.

    #Basel: pharma suppliers, Art Basel and deployment freeze

    Basel is not a financial hub above the Rhine or a container port on the Elbe. Life sciences suppliers, trilingual operations and a calendar that changes deployment priorities matter here.

    #Life sciences suppliers and B2B catalogues

    Roche headquarters sit on Grenzacherstrasse. Novartis Campus is on Fabrikstrasse. Around them, CROs, lab suppliers, packaging firms and BaselArea spin-offs sell consumables, instruments and services online or through hybrid quote-to-order flows. That is market geography, not a WPPoland client list and not a GxP certification promise.

    A B2B WooCommerce store in Basel often mixes public SKU lines with gated catalogue sections, PDF datasheets, and checkout fields that capture internal cost centres. REST endpoints or headless frontends appear when the mobile app or partner portal must read the same stock the web shop shows. The plugin boundary keeps Woo updates from breaking the corporate theme on the same installation, or the reverse.

    Basel Digital Hub and BaselArea promote the region as a life sciences cluster with access to three countries. For WooCommerce that implies hreflang on product URLs, consistent MWST display in DE and FR checkout copy, and impressum that matches Handelsregisteramt des Kantons Basel-Stadt, not a Zurich template.

    #Art Basel freeze: a calendar that changes deployment priorities

    Art Basel fills Messe Basel and the region every June: galleries, hotels, catering, transport, media. Hospitality, retail and event-adjacent stores within a few kilometres of Messeplatz see traffic spikes that do not appear in normal CrUX data.

    The development runbook for clients in Basel treats the Art Basel window as a period of elevated operational risk. That week does not schedule checkout changes, new gateways, MWST class edits or plugin updates unless it is a security hotfix with written product-owner approval. Staging receives changes; production waits until the Monday after the fair. A payment regression during peak hotel and restaurant bookings is an incident finance remembers longer than a slow category page in February.

    #Trilingual DE/FR/EN storefront

    The Polish team knows WooCommerce. The client in Basel asks something else: whether the French checkout shows the same MWST wording as German, whether hreflang points to de-CH not de-DE, whether consent copy matches the Datenschutzerklärung in all languages, whether a product description updated in EN does not leave FR with stale stock status.

    #Multilingual commerce is architecture, not a one-time setup

    WPML WooCommerce Multilingual or Polylang for WooCommerce needs regression after every translation-plugin, theme or gateway update. The staging checklist covers: add to cart in DE, checkout in FR, order email in EN, hreflang on product URLs, URL map without duplicate canonicals, TWINT redirect returning to the correct locale.

    Basel-Stadt has German as the official language, but the border region with France translates regulatory and B2B copy into French. English is the operational language in life sciences. A template copied only from the German market (Amtsgericht, USt-IdNr, Straße with ß) onto a Basel AG site is an error a local lawyer spots faster than a Lighthouse regression.

    Swiss German conventions in storefront copy: ss instead of ß (Strasse, not Straße), MWST instead of MwSt, Gross instead of groß. The French version must keep company data (UID, registered office) aligned with German even when marketing copy is local.

    Practical rules written into the runbook:

    • Interface strings (buttons, validation errors, aria-label on checkout fields) use formal German on the DE front if that is the agreed register. French and English versions are formal too.
    • Impressum, Datenschutz and Widerruf pages are linked from checkout footer templates, not optional widgets an editor can remove.
    • Order confirmation emails are tested in all three languages with real product names, MWST lines and TWINT receipt links.

    Polylang and WPML solve hreflang and language copies. They do not solve process: who approves German legal text before production. The brief records whether approval sits with the client in Basel or with the Polish content lead.

    #nDSG, FDPIC and GDPR for order and customer data

    Proximity to Roche and Novartis does not make a WooCommerce shop a GxP system or a certified clinical environment. The team does not claim the store “meets GxP” or “is ISO 27001 certified”. Most ecommerce WordPress sites in Basel are not standalone subjects of those regimes. Some sit next to organisations that are. Then WooCommerce must deliver inventory, access trail and Git discipline the client can paste into their own documentation.

    The revised nDSG entered into force on 1 September 2023. Supervision sits with the Federal Data Protection and Information Commissioner (FDPIC, Eidgenössischer Datenschutz- und Öffentlichkeitsbeauftragter EDÖB). For stores processing personal data the team prepares:

    • Consent configuration for marketing, analytics and optional account fields, aligned with the Datenschutzerklärung in DE/FR/EN.
    • Data minimisation on checkout: collect only fields the warehouse and finance actually use.
    • Processor agreements where gateways, email providers, ERP middleware and hosting act as processors.
    • Log retention agreed under nDSG, not “keep every webhook payload forever in wp_options”.

    GDPR still applies to processing aimed at people in the EU. A shop in Basel with traffic from the Union therefore has two layers, not one. Cookie banners, analytics tags and newsletter checkboxes at checkout must match both frameworks as verified by the client’s process owner, not by a generic plugin defaults screen.

    Hosting “in Switzerland” (Cyon operates from Basel; Infomaniak and Metanet run in-country centres) is an argument about jurisdiction, not a magic shield. A plugin that exports all customer orders to an unauthenticated CSV URL fails compliance in any hosting region.

    Customer accounts, order history, saved addresses and B2B company profiles are personal data. Role separation ensures Polish catalogue editors cannot download full order exports unless the brief requires it. Backups are tested on staging; a backup without a tested restore is decoration.

    #Plugin boundary, hooks, Git and staging

    This is the layer that separates senior WooCommerce work from “install a checkout builder and hope”. In Basel a client with an IT department asks about Git on the second meeting, especially if the reviewer comes from Basel Digital Hub or internal IT at a CRO supplier.

    The repository holds the custom plugin (gateways, B2B pricing, ERP sync, checkout fields) and the storefront theme. WooCommerce core and plugins from wordpress.org are pinned versions, not copied folders in Git unless there is a fork or patch reason.

    One feature branch per change: new gateway webhook handler, MWST class fix, shipping zone for France. A pull request has a description, screenshots or screen recording from checkout, and a checklist: i18n, no secrets, TWINT tested on mobile, ERP sync dry-run, rollback noted.

    Code review is done by a senior who did not write the branch. Review reads WooCommerce and WordPress Coding Standards but also intent: should B2B pricing live in the plugin, does the theme duplicate template overrides Woo already provides, does a hook on init run heavy queries on every cart fragment request.

    Staging is a copy of production with anonymised customer data. Real gateways in test mode, TWINT sandbox credentials, crons that would email real buyers disabled. Shop managers click through staging with real product counts, not a developer’s localhost with three SKUs. Trilingual checkout regression (DE, FR, EN), B2B PO field validation and ERP sync dry-run happen here. Production promotion is a documented step: tag or merge to main, asset build, cache warmup, rollback path. The team does not “quickly upload” one gateway file over SFTP, because then nobody can reconstruct what ran on production the Friday before Art Basel.

    Performance is part of acceptance, not a separate project. Lighthouse and Core Web Vitals on category archive, single product and checkout. Cart fragments and uncached AJAX are common bottlenecks; Redis object cache helps when transients and product queries prove it, not because “pharma suppliers expect Redis”. Images in AVIF/WebP through the build pipeline; lazy load below the fold without breaking LCP on the hero SKU.

    For a shop in Basel, time to first byte from a corporate network in CH and from a campus VPN matters, not only mobile on the Rhine. Monitoring from one US region lies. A measurement point in Switzerland or at least Central Europe is part of the operational contract.

    #Case: TWINT webhook and multilingual checkout on staging

    A lab-supplier store run by a Polish team, selling consumables to accounts in the Basel region, TWINT and Stripe active, DE/EN/FR checkout, MWST on mixed B2B and B2C lines. A gateway plugin update and a multilingual patch waited in the production queue during the week before a regional trade fair.

    On staging, cloned from production with translations, TWINT orders in the FR checkout stuck on “pending” because the webhook URL changed and the new plugin version expected a different query argument. In parallel, hreflang on product pages pointed to de-DE instead of de-CH because the SEO plugin and WooCommerce Multilingual both wrote tags. On production the same set would have shipped while the client’s finance team reconciled daily TWINT settlements.

    Staging stopped promotion. Rollback on the test copy confirmed the fix: webhook endpoint registered in the custom plugin, locale mapping documented, checklist (DE, FR, EN, TWINT, Stripe refund, MWST on B2B invoice PDF) passed; only then production. There is no company name here because this is the shape of an event, not a logo case study. There is a mechanism: copy first, production second. Without a copy you get manual order entry and angry buyers at Messe Basel hotels.

    The same shape returns with ERP sync zeroing stock, object cache serving an old checkout template, and a “small” plugin update in Art Basel week that breaks TWINT at peak traffic. Basel does not forgive that more quietly than another market. It looks worse because someone nearby asks about nDSG, Zefix and TWINT reconciliation.

    #Corporate WordPress is a separate scope

    This page builds checkout, gateways, MWST logic and product catalogues. If the brief is only a corporate site without a cart, scope changes owner and is described on the WordPress developer in Basel page. Pillar without city: WordPress developer. Mixing a full shop with a life-sciences conference landing in one theme without a plugin boundary is the fastest way for a Woo update to break editorial patterns, or the reverse.

    A corporate site with one “shop” button to external Woo on a subdomain can stay in the theme as a link. Cart logic itself does not.

    #After launch: handover or maintenance

    A development engagement ends with documentation, a handover session and Git access for the client team. The runbook describes: how to add a shipping zone, rotate TWINT credentials, run a branch, rebuild staging, whom to call when checkout returns 500 after a plugin update. If ongoing Core, Woo and gateway updates, monitoring and on-call are needed after go-live, that is WordPress maintenance and support in Basel, not a hidden annex to the checkout build. Pillar without city: WordPress maintenance.

    Development pricing is individual and issued in writing after scope is agreed. There is no price list or hour packages on this page. Scope change (sudden B2B portal, a third language, ERP integration) returns to the written record before it enters the sprint.

    #How to start a project in Basel

    A short brief is enough to begin: which theme and plugins exist today, which gateways and MWST rules are live, who manages the catalogue (PL/DE/FR/EN), whether B2B pricing or ERP sync is in scope, whether Basel IT requires Git and staging from day zero, whether hosting must stay in Switzerland. The team reviews the installation, lists risks (TWINT only tested on desktop, secrets in the repo, MWST copied from Germany, checkout plugins fighting multilingual URLs) and proposes a plan with acceptance criteria.

    Contact: WPPoland contact form. The service pillar without a city slug stays at WooCommerce developer.

    Map of Basel and surrounding area

    We serve clients in Basel and nearby areas.

    Curated Content:

    This page features specific insights for Basel.

    A lab-supplier shop in Basel sits next to Roche on Grenzacherstrasse, the Novartis Campus on Fabrikstrasse, DayOne accelerators in the BaselArea cluster, the Art Basel calendar at Messe Basel, and a trilingual region where impressum must match Zefix, not a German Amtsgericht entry. That is not a reason for WooCommerce to pretend it is a GxP system or a validated clinical ordering portal. It is a reason for checkout, MWST, TWINT and the order-data trail to be written the way Basel compliance expects and the way a Polish operations team works when the storefront ships in DE, FR and EN.

    WPPoland builds this WooCommerce from a senior Polish team for businesses in Basel and across the life sciences cluster. The scope is WooCommerce development: custom checkout, TWINT and card gateways, MWST logic, shipping zones, B2B wholesale, ERP hooks and code review on Git. Corporate WordPress sites without a cart and ongoing maintenance are separate topics, with links at the end.

    #WooCommerce development for businesses in Basel and the life sciences cluster

    Basel combines three forces that rarely meet at this scale in one city. First, pharma and biotech: Roche and Novartis set the bar for documentation, partner onboarding and procurement traceability. Around them grows an ecosystem of CROs, suppliers, spin-offs and accelerators promoted by BaselArea (baselarea.swiss). Second, trilingual operations: Basel-Stadt uses German as the official language, the border region with France (Weg bis nach Saint-Louis) translates regulatory and B2B copy into French, and English is the working language in life sciences. Third, Switzerland as a jurisdiction: the revised Federal Act on Data Protection (nDSG), MWST on invoices, TWINT as a default consumer payment method, and hosting with Cyon in Basel, Infomaniak or Metanet, not the cheapest VPS across the ocean.

    For a WooCommerce store these facts do not mean the checkout should count clinical samples or sync with a LIMS. They mean three harder requirements. Product and order data may be regulated (Datenschutzerklärung, impressum with UID and Firmenwortlaut from Zefix, DE/FR/EN versions). The storefront must stay consistent across languages without broken hreflang and without MWST copied from a German USt template. Hosting, log retention, payment webhooks and the question of origin in Switzerland are kickoff topics, because someone nearby will ask about nDSG, about the Federal Data Protection and Information Commissioner (FDPIC, EDÖB in German) or about cross-border data transfer when the ERP sits in Germany.

    A typical brief that reaches seniors in Basel does not read “install Woo and add products”. It reads: inherited theme with 40 plugins, TWINT that fails on mobile Safari, MWST wrong on B2B orders to France, editorial team in Poland, compliance in Basel-Stadt, and a supplier catalogue that still syncs from CSV because the ERP webhook was never finished. That is a checkout, integration and Git process problem, not a marketplace template problem.

    WPPoland is not a supplier to Roche, Novartis or BaselArea. Proximity to the pharma cluster sets the documentation, role and Git bar for order paths. It does not set a reference list.

    #Checkout, TWINT and Swiss payment gateways

    Payment in Basel is not “turn on Stripe and forget”. Consumer buyers expect TWINT. B2B buyers expect invoice with QR-Rechnung and correct MWST line items. Cross-border buyers in the Dreiländereck expect shipping and tax logic that does not break at the first postcode in Germany or France.

    #TWINT, cards and the gateway boundary

    TWINT integration lives in a gateway plugin or a custom connector, not in the theme. The theme renders product pages; the plugin owns redirect URLs, webhook endpoints, order status transitions and idempotency when the app callback arrives twice. For card payments, Stripe with 3D Secure 2.0 is the common choice; PostFinance and PayPal remain when the brief or existing merchant contract requires them.

    Each gateway gets a runbook before production:

    GatewayFlows documentedBasel-specific note
    TWINTredirect, webhook, refundtest on mobile Safari and Android; peak load during Art Basel week
    Stripecard, 3DS, wallet, refundCHF settlement and receipt language per locale
    PostFinancecard, e-finance where applicablemerchant ID and test environment from Swiss acquirer
    B2B invoiceQR-Rechnung, payment termsUID and MWST on PDF, not only in Woo admin

    End-to-end QA on staging covers cart, checkout, payment, order confirmation email, admin order edit and refund on every active gateway. Failure paths matter: declined card, TWINT timeout, webhook 500, duplicate callback. Those are the incidents that leave finance with unmatched orders on a Monday in Kleinbasel.

    Custom checkout fields (PO number, cost centre, delivery note for a CRO campus) belong in a plugin that hooks woocommerce_checkout_fields and validates server-side. Client-side-only validation is how a B2B order without a mandatory reference reaches a warehouse that cannot ship.

    #PCI scope and webhook security

    Card data should reach the gateway directly (Stripe Elements, hosted fields). WooCommerce stores order metadata, not PAN. Webhook endpoints verify signatures, reject replayed payloads, and log enough for finance reconciliation without storing full card numbers in wp_postmeta. Admin accounts use 2FA; shop managers do not get install_plugins on production.

    #MWST, shipping zones and the Dreiländereck

    Swiss VAT (MWST) is not German USt copied into Woo tax settings. Standard and reduced rates, exempt categories for certain supplies, and B2B reverse-charge scenarios for cross-border B2B need a written tax map before the first product goes live. The team documents which product classes carry which rate, how prices display (inclusive vs exclusive), and what the invoice PDF must show for UID and Firmenwortlaut from Zefix.

    Shipping zones reflect geography, not marketing regions:

    • Switzerland: Swiss Post, DPD, pickup at Messe Basel events, or campus delivery rules negotiated with the client.
    • Germany and France (Dreiländereck): separate zones with carrier APIs, customs documentation where goods cross borders, and delivery time copy in DE and FR.
    • Rest of EU and international: DHL or UPS with weight and dimension rules; avoid a single “Europe flat rate” that loses money on heavy lab equipment.

    B2B wholesale often needs role-based pricing, minimum order quantities, request-for-quote for catalogue lines that cannot be priced publicly, and separate payment terms (invoice on account vs card at checkout). That logic lives in a plugin; the theme only renders the price HTML the plugin filters provide.

    Product import from ERP (SAP Business One, Abacus, custom middleware) uses scheduled Action Scheduler jobs, conflict resolution when SKU stock diverges, and explicit failure alerts. A silent sync that zeroes stock on a Friday afternoon is worse than a visible error ticket.

    #Basel: pharma suppliers, Art Basel and deployment freeze

    Basel is not a financial hub above the Rhine or a container port on the Elbe. Life sciences suppliers, trilingual operations and a calendar that changes deployment priorities matter here.

    #Life sciences suppliers and B2B catalogues

    Roche headquarters sit on Grenzacherstrasse. Novartis Campus is on Fabrikstrasse. Around them, CROs, lab suppliers, packaging firms and BaselArea spin-offs sell consumables, instruments and services online or through hybrid quote-to-order flows. That is market geography, not a WPPoland client list and not a GxP certification promise.

    A B2B WooCommerce store in Basel often mixes public SKU lines with gated catalogue sections, PDF datasheets, and checkout fields that capture internal cost centres. REST endpoints or headless frontends appear when the mobile app or partner portal must read the same stock the web shop shows. The plugin boundary keeps Woo updates from breaking the corporate theme on the same installation, or the reverse.

    Basel Digital Hub and BaselArea promote the region as a life sciences cluster with access to three countries. For WooCommerce that implies hreflang on product URLs, consistent MWST display in DE and FR checkout copy, and impressum that matches Handelsregisteramt des Kantons Basel-Stadt, not a Zurich template.

    #Art Basel freeze: a calendar that changes deployment priorities

    Art Basel fills Messe Basel and the region every June: galleries, hotels, catering, transport, media. Hospitality, retail and event-adjacent stores within a few kilometres of Messeplatz see traffic spikes that do not appear in normal CrUX data.

    The development runbook for clients in Basel treats the Art Basel window as a period of elevated operational risk. That week does not schedule checkout changes, new gateways, MWST class edits or plugin updates unless it is a security hotfix with written product-owner approval. Staging receives changes; production waits until the Monday after the fair. A payment regression during peak hotel and restaurant bookings is an incident finance remembers longer than a slow category page in February.

    #Trilingual DE/FR/EN storefront

    The Polish team knows WooCommerce. The client in Basel asks something else: whether the French checkout shows the same MWST wording as German, whether hreflang points to de-CH not de-DE, whether consent copy matches the Datenschutzerklärung in all languages, whether a product description updated in EN does not leave FR with stale stock status.

    #Multilingual commerce is architecture, not a one-time setup

    WPML WooCommerce Multilingual or Polylang for WooCommerce needs regression after every translation-plugin, theme or gateway update. The staging checklist covers: add to cart in DE, checkout in FR, order email in EN, hreflang on product URLs, URL map without duplicate canonicals, TWINT redirect returning to the correct locale.

    Basel-Stadt has German as the official language, but the border region with France translates regulatory and B2B copy into French. English is the operational language in life sciences. A template copied only from the German market (Amtsgericht, USt-IdNr, Straße with ß) onto a Basel AG site is an error a local lawyer spots faster than a Lighthouse regression.

    Swiss German conventions in storefront copy: ss instead of ß (Strasse, not Straße), MWST instead of MwSt, Gross instead of groß. The French version must keep company data (UID, registered office) aligned with German even when marketing copy is local.

    Practical rules written into the runbook:

    • Interface strings (buttons, validation errors, aria-label on checkout fields) use formal German on the DE front if that is the agreed register. French and English versions are formal too.
    • Impressum, Datenschutz and Widerruf pages are linked from checkout footer templates, not optional widgets an editor can remove.
    • Order confirmation emails are tested in all three languages with real product names, MWST lines and TWINT receipt links.

    Polylang and WPML solve hreflang and language copies. They do not solve process: who approves German legal text before production. The brief records whether approval sits with the client in Basel or with the Polish content lead.

    #nDSG, FDPIC and GDPR for order and customer data

    Proximity to Roche and Novartis does not make a WooCommerce shop a GxP system or a certified clinical environment. The team does not claim the store “meets GxP” or “is ISO 27001 certified”. Most ecommerce WordPress sites in Basel are not standalone subjects of those regimes. Some sit next to organisations that are. Then WooCommerce must deliver inventory, access trail and Git discipline the client can paste into their own documentation.

    The revised nDSG entered into force on 1 September 2023. Supervision sits with the Federal Data Protection and Information Commissioner (FDPIC, Eidgenössischer Datenschutz- und Öffentlichkeitsbeauftragter EDÖB). For stores processing personal data the team prepares:

    • Consent configuration for marketing, analytics and optional account fields, aligned with the Datenschutzerklärung in DE/FR/EN.
    • Data minimisation on checkout: collect only fields the warehouse and finance actually use.
    • Processor agreements where gateways, email providers, ERP middleware and hosting act as processors.
    • Log retention agreed under nDSG, not “keep every webhook payload forever in wp_options”.

    GDPR still applies to processing aimed at people in the EU. A shop in Basel with traffic from the Union therefore has two layers, not one. Cookie banners, analytics tags and newsletter checkboxes at checkout must match both frameworks as verified by the client’s process owner, not by a generic plugin defaults screen.

    Hosting “in Switzerland” (Cyon operates from Basel; Infomaniak and Metanet run in-country centres) is an argument about jurisdiction, not a magic shield. A plugin that exports all customer orders to an unauthenticated CSV URL fails compliance in any hosting region.

    Customer accounts, order history, saved addresses and B2B company profiles are personal data. Role separation ensures Polish catalogue editors cannot download full order exports unless the brief requires it. Backups are tested on staging; a backup without a tested restore is decoration.

    #Plugin boundary, hooks, Git and staging

    This is the layer that separates senior WooCommerce work from “install a checkout builder and hope”. In Basel a client with an IT department asks about Git on the second meeting, especially if the reviewer comes from Basel Digital Hub or internal IT at a CRO supplier.

    The repository holds the custom plugin (gateways, B2B pricing, ERP sync, checkout fields) and the storefront theme. WooCommerce core and plugins from wordpress.org are pinned versions, not copied folders in Git unless there is a fork or patch reason.

    One feature branch per change: new gateway webhook handler, MWST class fix, shipping zone for France. A pull request has a description, screenshots or screen recording from checkout, and a checklist: i18n, no secrets, TWINT tested on mobile, ERP sync dry-run, rollback noted.

    Code review is done by a senior who did not write the branch. Review reads WooCommerce and WordPress Coding Standards but also intent: should B2B pricing live in the plugin, does the theme duplicate template overrides Woo already provides, does a hook on init run heavy queries on every cart fragment request.

    Staging is a copy of production with anonymised customer data. Real gateways in test mode, TWINT sandbox credentials, crons that would email real buyers disabled. Shop managers click through staging with real product counts, not a developer’s localhost with three SKUs. Trilingual checkout regression (DE, FR, EN), B2B PO field validation and ERP sync dry-run happen here. Production promotion is a documented step: tag or merge to main, asset build, cache warmup, rollback path. The team does not “quickly upload” one gateway file over SFTP, because then nobody can reconstruct what ran on production the Friday before Art Basel.

    Performance is part of acceptance, not a separate project. Lighthouse and Core Web Vitals on category archive, single product and checkout. Cart fragments and uncached AJAX are common bottlenecks; Redis object cache helps when transients and product queries prove it, not because “pharma suppliers expect Redis”. Images in AVIF/WebP through the build pipeline; lazy load below the fold without breaking LCP on the hero SKU.

    For a shop in Basel, time to first byte from a corporate network in CH and from a campus VPN matters, not only mobile on the Rhine. Monitoring from one US region lies. A measurement point in Switzerland or at least Central Europe is part of the operational contract.

    #Case: TWINT webhook and multilingual checkout on staging

    A lab-supplier store run by a Polish team, selling consumables to accounts in the Basel region, TWINT and Stripe active, DE/EN/FR checkout, MWST on mixed B2B and B2C lines. A gateway plugin update and a multilingual patch waited in the production queue during the week before a regional trade fair.

    On staging, cloned from production with translations, TWINT orders in the FR checkout stuck on “pending” because the webhook URL changed and the new plugin version expected a different query argument. In parallel, hreflang on product pages pointed to de-DE instead of de-CH because the SEO plugin and WooCommerce Multilingual both wrote tags. On production the same set would have shipped while the client’s finance team reconciled daily TWINT settlements.

    Staging stopped promotion. Rollback on the test copy confirmed the fix: webhook endpoint registered in the custom plugin, locale mapping documented, checklist (DE, FR, EN, TWINT, Stripe refund, MWST on B2B invoice PDF) passed; only then production. There is no company name here because this is the shape of an event, not a logo case study. There is a mechanism: copy first, production second. Without a copy you get manual order entry and angry buyers at Messe Basel hotels.

    The same shape returns with ERP sync zeroing stock, object cache serving an old checkout template, and a “small” plugin update in Art Basel week that breaks TWINT at peak traffic. Basel does not forgive that more quietly than another market. It looks worse because someone nearby asks about nDSG, Zefix and TWINT reconciliation.

    #Corporate WordPress is a separate scope

    This page builds checkout, gateways, MWST logic and product catalogues. If the brief is only a corporate site without a cart, scope changes owner and is described on the WordPress developer in Basel page. Pillar without city: WordPress developer. Mixing a full shop with a life-sciences conference landing in one theme without a plugin boundary is the fastest way for a Woo update to break editorial patterns, or the reverse.

    A corporate site with one “shop” button to external Woo on a subdomain can stay in the theme as a link. Cart logic itself does not.

    #After launch: handover or maintenance

    A development engagement ends with documentation, a handover session and Git access for the client team. The runbook describes: how to add a shipping zone, rotate TWINT credentials, run a branch, rebuild staging, whom to call when checkout returns 500 after a plugin update. If ongoing Core, Woo and gateway updates, monitoring and on-call are needed after go-live, that is WordPress maintenance and support in Basel, not a hidden annex to the checkout build. Pillar without city: WordPress maintenance.

    Development pricing is individual and issued in writing after scope is agreed. There is no price list or hour packages on this page. Scope change (sudden B2B portal, a third language, ERP integration) returns to the written record before it enters the sprint.

    #How to start a project in Basel

    A short brief is enough to begin: which theme and plugins exist today, which gateways and MWST rules are live, who manages the catalogue (PL/DE/FR/EN), whether B2B pricing or ERP sync is in scope, whether Basel IT requires Git and staging from day zero, whether hosting must stay in Switzerland. The team reviews the installation, lists risks (TWINT only tested on desktop, secrets in the repo, MWST copied from Germany, checkout plugins fighting multilingual URLs) and proposes a plan with acceptance criteria.

    Contact: WPPoland contact form. The service pillar without a city slug stays at WooCommerce developer.

    Methodology guides (SEO, GEO, compliance)

    How we approach AI citations, WooCommerce B2B modernization, and NIS2-aligned operational resilience on WordPress. These guides apply to every client location.

    See Also in Switzerland

    What Makes Basel Unique

    Local expertise: - Senior WooCommerce development for ecommerce businesses in Basel and the life sciences cluster - TWINT, Stripe, PostFinance and B2B QR-Rechnung with MWST logic and DE/FR/EN checkout - Hook-based extensions over core edits, REST API extension, server-side block patterns Our team understands the Basel market and tailors solutions to local business needs. Key project decisions are based on real data from the Basel market, not template assumptions.

    Need this service: WooCommerce Developer in Basel?

    Let's discuss how we can bring top-tier performance to your project.

    Schedule free consultation in Basel

    Latest WooCommerce Developer articles

    Stay updated with the WooCommerce Developer community

    Sep 3, 2026

    Google goto: redirects in search results

    Since 26 August 2026, links in Google results go through google.com/goto instead of straight to the page. What this changes in analytics, in rank tracking tools and in WordPress, and what it does not change at all.

    Sep 1, 2026

    Update WP Rocket to 3.23.2.2 before WordPress 7.1

    WP Rocket 3.23.2.1 and earlier fatal on WordPress 7.1: TypeError in Cloudflare.php line 562. GitHub report 6 July, sites down 19 August, fix 3.23.2.2 on 20 August. Update the plugin first.

    Aug 30, 2026

    Googlebot and JSON-LD: a single unescape pass

    Google changed its JSON-LD extraction and now applies only one pass of HTML unescaping. Double-escaped entities are no longer unrolled, so the block stops parsing and the structured data disappears. How to measure your own corpus and how to encode it correctly.

    Aug 29, 2026

    Site reputation abuse policy in the EEA from 30 August 2026

    Google splits site reputation manual actions by searcher location from 30 August 2026. Outside the EEA the demotion still hits the affected portion. Inside the EEA that impact does not apply; the section may rank independently. Why parasite SEO does not return.

    More articles are available on /en/blog/

    FAQ - WooCommerce Developer Basel

    What WooCommerce work do you take on in Basel?

    Custom checkout flows, TWINT and card gateway integration, MWST and B2B QR-Rechnung logic, shipping zones for Switzerland and the Dreiländereck, DE/FR/EN storefronts, ERP/inventory integrations, B2B wholesale pricing, and refactors of stores that grew organically. The brief stays anchored to WooCommerce for businesses in Basel and the life sciences cluster. If a different platform would serve you better, the team says so in writing.

    Do you modify the WooCommerce core?

    No. The store has to survive Woo updates, so customisation goes through the documented action and filter hooks, plus a custom plugin and theme split where it belongs. Core file edits are not done. The boundary between Woo core, custom plugin code and theme code is set during architecture and recorded in the runbook.

    How do you handle TWINT and payment gateway integration in Basel?

    For each gateway the team documents supported flows (one-shot, recurring, refunds, partial refunds, 3DS for cards, TWINT app redirect and webhook callbacks), the test credential matrix, webhook endpoints, and the local idempotency story. End-to-end QA on staging covers cart to payment to order to email to admin edit to refund on every active gateway, including failure paths, in DE/FR/EN where the store is multilingual.

    How does nDSG and FDPIC affect WooCommerce checkout in Basel?

    Order data, customer accounts, marketing consent and analytics tags all process personal data under the revised Federal Act on Data Protection (nDSG), supervised by the Federal Data Protection and Information Commissioner (FDPIC, EDÖB in German). GDPR still applies to processing aimed at people in the EU. The team configures consent, data minimisation, processor agreements and log retention for verification with your process owner. Hosting in Switzerland (Cyon, Infomaniak, Metanet) is a jurisdiction choice, not a substitute for access control on order exports.

    What does handover and ongoing maintenance look like?

    Living documentation for shop managers, editors and developers; runbook for each gateway, MWST class and non-trivial integration; written architecture decision record; handover session at the end of the engagement. The store can then move to your team or to the optional maintenance retainer with the same documentation. Ongoing updates and monitoring are covered on the separate WordPress maintenance page for Basel, not hidden inside this development brief.

    Technologies & Expertise - Basel

    We work with:

    WooCommerceWordPressNovartisRocheSEOWeb performance
    Related cluster

    Explore other WordPress services and knowledge base

    Strengthen your business with professional technical support in key areas of the WordPress ecosystem.