Research Storefront
EU-only WooCommerce storefront — custom theme, AI support bot, ticketing & affiliate system
A German E-commerce storefront built on WordPress + WooCommerce with a fully custom PHP theme. Covers a hardened EU-only checkout with DHL Packstation support and mandatory legal disclaimers, a preorder + restock workflow, an in-house affiliate dashboard with preset-cart links, a newsletter tool, and a Claude-powered support bot wired into a custom WordPress ticketing system.
Overview
A freelance takeover of a German online shop, rebuilt as a fully custom WordPress/WooCommerce theme — no page builder, no external CSS framework, just PHP, vanilla JS and CSS variables.
The storefront is strictly EU-only (27 member states), bilingual (DE/EN) via a homegrown translation layer, and legally hardened with 18+, compliance and Packstation-specific confirmations captured as audit-trail order meta.
Around the shop sits a freelance-grade ops stack: a preorder + restock system, an in-house affiliate dashboard that auto-syncs with the WooCommerce Affiliates plugin, a newsletter & broadcast tool, and a Claude-powered support bot wired into a custom WordPress ticketing system with a public chat-style ticket-status page.
Architecture
WordPress + custom PHP theme → WooCommerce (HPOS) → custom ticket CPT + AI support bot → Paygatedotto + Proton Mail
Tech stack
MVP features
Entirely hand-rolled PHP theme with a dark + gold visual system, hero stats, configurable shipping banner, trust bar with SVG icons, and a WebP payment-methods bar. No WordPress default templates used.
Own translation layer with cookie-based language switching (?lang=de / ?lang=en) and flag icons in the header.
A custom checkout template replaces WooCommerce's default templates with a 3-step indicator, slim billing fields (no phone), and country-aware state/county fields. WooCommerce's default form is suppressed.
Delivery-method dropdown dynamically swaps in the relevant fields, validates client- and server-side, marks required fields with asterisks, and persists the chosen Packstation address into order meta.
18+, compliance and delivery-delay (preorder-only) checkboxes plus three Packstation-specific confirmations. Validated server-side in woocommerce_checkout_process and stored with timestamps as audit-trail order meta.
Per-product opt-in via an admin meta box keeps OOS items buyable, sets a custom 'Vorbestellen' button label, propagates to variations, and only shows the delivery-delay checkbox when a preorder item is in the cart.
Rich product meta (specs, lot/reference numbers, datasheet URL, form, size, storage temp) with per-field and per-card visibility toggles, plus a shipment-tracking box that surfaces carrier + tracking number in emails and on My Account.
In-house My Account view that reads WooCommerce Affiliates coupons straight from the database, shows earnings, referrals and commission, and lets affiliates configure a personalised preset-cart link with chosen products, variations and quantities (AJAX save).
Custom Urls that prefill the cart with the affiliate's preconfigured products + variations, auto-apply the discount and redirect to the cart. And an additional link resets the cart without the discount.
Subscriber list stored in WordPress with CSV export and a broadcast tool, plus a per-product restock waitlist that emails customers automatically when stock is replenished.
The /support/ form sends the customer's question to Claude, which checks a curated FAQ knowledge base for common cases ('product looks odd', 'tracking status open', 'not shipped yet'). Known questions get an instant detailed answer; unknown ones are escalated cleanly.
Custom ticket post type with status (Open/In Progress/Resolved/Closed) and priority taxonomies, agent assignment with email notifications, bot answer stored on the ticket, attached images in a dedicated meta box, and a staff reply box that emails the customer with optional images.
/ticket-status/ is accessible via a personalised link (ticket ID + email) and renders the full ticket history as a chat. Customers reply with text + images straight from the page; replies appear instantly in WP-Admin and notify the admin by email.
All outbound mail routed through Proton Mail with Reply-To set to support. A custom password-reset handler bypasses WooCommerce; tracking info is embedded in both HTML and plain-text order emails; pending orders get a payment-link email.
Workflows
Checkout with Packstation
- 1
Customer picks delivery type in the custom checkout: home delivery, DHL Packstation, or Postfiliale.
- 2
JavaScript swaps in the relevant required fields (Postnummer, station number, etc.) and marks them with visible asterisks.
- 3
On submit, server-side validation in woocommerce_checkout_process verifies all required fields and all legal confirmations (18+, compliance, Packstation acknowledgements).
- 4
Confirmations and the resolved Packstation address are stored as order meta with timestamps for the audit trail before payment is initiated via Paygatedotto.
Affiliate preset-cart link
- 1
Affiliate logs into My Account, picks products (including variable products with specific variations) and quantities, and saves the config via AJAX.
- 2
System generates a personalised URL of the form ?ref=CODE&kp_cart=1 tied to their WooCommerce Affiliates coupon.
- 3
When a visitor opens the link, the cart is cleared, prefilled with the configured products + variations, the coupon is auto-applied, and the visitor is redirected to the cart.
AI-assisted support
- 1
Customer submits the /support/ form (name, email, message, optional images).
- 2
Claude checks the message against the FAQ knowledge base and either answers directly with a detailed response or returns a clean hand-off message.
- 3
Customer chooses 'That helped!' or 'Escalate to support'; either way a ticket is created with status, priority and the bot's answer attached.
- 4
Assigned agent replies from the WP-Admin reply box (text + images); the customer is emailed and can continue the conversation on the public ticket-status chat page.
Security
- EU-only sales scope enforced in WooCommerce — billing/shipping restricted to the 27 EU member states.
- Mandatory 18+ and compliance confirmations on every order, stored as audit-trail order meta with timestamps.
- Server-side validation of every checkout disclaimer and Packstation field (no trust in client-side checks alone).
- Custom password-reset handler that bypasses WooCommerce's default flow to keep the auth surface area predictable.
- EU-DSGVO posture: all customer, ticket and newsletter data lives inside WordPress — no external SaaS pipeline.
- HPOS-compatible order handling so custom meta and the audit trail stay intact under WooCommerce's new order storage.
- Support bot is scoped to a curated FAQ knowledge base; unknown questions are escalated rather than answered speculatively.