Start a project
We'll respond as soon as possible with clear next steps — no obligations.
Case study · Logistics
Dynamex Produkte AG in Ossingen ZH supplies wooden pallets, plastic pallets and pallet collars, and repairs, exchanges and transports pallets. We are updating its WooCommerce site: the B2B catalogue merged into the shop, buy-now and on-request products side by side, freight priced by weight and schema with verified facts only.

The brief
Dynamex Produkte AG supplies wooden pallets, plastic pallets and pallet collars from Ossingen ZH, and repairs, exchanges, transports and takes back pallets for industry, trade and private customers across Switzerland. The site was already live, with a shop and a separate B2B catalogue next to it.
The update had to fold that B2B catalogue into the WooCommerce shop without losing an address, let business customers request what they cannot order online, price freight by weight and describe every product to search engines without invented prices — prepared on a dev server while the current site keeps running.
The challenge
Before the update, a separate B2B catalogue with 19 entries ran next to a shop with 10 products. Both had to become one catalogue, without a lost address and without a spec that nobody had checked.
Some pallets sell online, others only on request — and freight for bulky goods depends on weight, with pickup in Ossingen as an option.
The B2B post type was retired. Its 43 addresses redirect to the matching products, and a SKU audit handed open spec questions back to Dynamex.
Each product sells online, in limited quantities or only on request. Request items keep a stored price that must never show in filters or schema.
The current site keeps running. Work ships to a dev server through GitHub Actions, and content moves across block by block.
Behind the build
The update runs alongside the live site. One in-house team audited what to keep, merged the catalogues, rebuilt pages from new blocks and reworked the schema, with every change reviewed in a pull request and deployed to a dev server. The launch date is still open.
What we built
B2B page
The page “Geschäftskunden” is built from six B2B blocks — hero, info, categories, product grid, benefits and industries — and ends with a request form. Business buyers see the range and the industries it serves on one page.
Purchase type
A switch “Sofort kaufen / Auf Anfrage” sits in the shop sidebar and in the mobile filter panel. Behind it, a hidden taxonomy mirrors each product’s sale mode so the theme’s filter can use it, and request items stay out of the price filter.
Request flow
Request-only products replace the cart with a request button. It opens a form modal that already knows the product and the quantity, and the tax and shipping line stays hidden for these items.
Applications
The applications page compares pallets for private projects in an Applications Compass that turns into an accordion on phones. Two application guides, one for furniture and interiors and one for gardening, go into detail.
Services
The service pages for return, transport, exchange and repair use a service info block, and a licences block shows the licences Dynamex holds — mirrored in the Service and Certification schema.
Inside the project
Most agencies show you the finished site. We show you how it got there. Open any discipline to see what the team did and what it handed over.
01 / Project management
The update began with an audit of what to keep: the B2B post type, the cross-shop link and the old FAQ feature went. Every change ran through a pull request, and a SKU-by-SKU audit put open spec questions to Dynamex instead of guessing.
49
catalogue cards compared in the SKU audit
7
open items handed to Dynamex for a decision
What we did
Handed over Approved scope and requirements → Design
02 / UI/UX design
The new blocks share one set of SCSS mixins, so B2B, service, application and news pages read as one site. Phone layouts get their own variants — the Applications Compass becomes an accordion — and icons come in as inline SVG.
5
block categories: global, applications, services, news, B2B
What we did
Artifacts
Handed over Figma designs and a block system → Development
03 / Development
The child theme gained a hidden purchase-type taxonomy, request-only catalogue rules and a schema stack. Two plugins of ours handle sale modes and weight-based freight, and the blocks plugin grew by 18 blocks to 22. One-off B2B migration tools were removed after use.
18
new Gutenberg blocks, 22 in total
17
weight tiers for freight
29
old theme files retired
What we did
Artifacts
Handed over Tested build on staging → Content & SEO
04 / Content
The catalogue holds 20 products in four categories, half of them sold on request. Around it sit four service pages, two application guides and five Ratgeber articles, all written for de-CH.
20
products in one catalogue
5
Ratgeber articles
9
FAQ answers on three articles
What we did
Artifacts
Handed over Structured content in the CMS → SEO & GEO
05 / SEO & GEO
Schema that states only verified facts: request-only pallets stay Products without an offer, services are marked up as Service, and one Organization entity carries the licences. 95 redirects catch the old addresses, and robots.txt keeps filter and sort parameters out of the crawl.
95
301 redirects
43
retired B2B addresses redirected
29
URLs in the automated schema check
What we did
Handed over Indexed, crawlable site → Launch
The project in numbers
Each figure is counted from the local update — its code, its database and its checks.
20
products in one catalogue, from 10 shop products and 19 B2B entries
10
products sold only on request
95
301 redirects
43
retired B2B addresses caught
18
new Gutenberg blocks
17
weight tiers for freight
49
catalogue cards compared in the SKU audit
29
URLs in the automated schema check
Below the surface
Buyers see pallets, prices and a request button. Underneath sit the rules that keep old links working, request items free of invented prices and freight priced by weight.
95 permanent redirects, 43 of them for retired B2B catalogue addresses, each pointing to the matching product.
Request-only pallets stay Products in the schema but carry no price and no offer, and no ratings are added.
One Organization and LocalBusiness entity across the site, with UID, address, geo data and opening hours, plus the licences Dynamex holds.
Request items keep a stored price, so the theme keeps them out of the price slider and filter and always lists them last.
Pallets and collars carry an internal weight, freight comes from 17 gross tiers, and pickup in Ossingen is free of charge.
49 catalogue cards were compared after the merge, and open spec questions went to Dynamex as a decision list.
Playwright checks new blocks at 1440 and 390 pixels and walks the schema graph: 29 URLs, 94 references.
Icons in the blocks are inline SVG, and their markup passes a kses allowlist before it reaches the page.
What you can expect
We build for the things that last — a platform that is clearer to navigate, more credible to every visitor and genuinely easier for your team to run and grow.
Clear categories, filters and prices let visitors find the right offer themselves instead of writing to ask where to begin.
A site that looks and reads like the quality behind it — for first-time visitors and long-standing customers alike.
Your team updates products, content and news itself — no developer ticket, no waiting in a queue.
New products, categories and languages slot in as the business expands — without a rebuild.
We agree the goals that matter up front and build toward them together — then stay on as a partner after launch to keep the platform sharp as the business grows.
In their words
A project counts when the people who use it every day would choose it again.
Our B2B range and the shop are finally one catalogue, and business customers can request what they cannot order online — all in one place.
Working with
Start a project
We will respond as soon as possible with clear next steps — no obligations.