Re-launch of a B2B shop for industrial valves on Magento 2.4.8 with the Hyvä theme
Complete redesign of industriearmaturen-shop24.de: custom theme via Hyvä, eight in-house developed modules, a self-built one-page checkout, five-layer security architecture and a DB-level migration from the predecessor system to Magento 2.4.8 — all within the ongoing B2B business operation.





Project Overview
industriearmaturen-shop24.de Barthel Armaturen's B2B online shop offers industrial fittings, hose assemblies and pipe fittings — with a focus on manufacturers Parker, GESTRA and ChlorineThe shop was migrated from Magento 2.4.7 to Magento 2.4.8, and the entire frontend was migrated from Magento's Luma theme to the performance-oriented one. Hyvä Theme redesigned and expanded to include numerous B2B-specific features.
Abstract: Magento 2.4.8 implementation of a German B2B shop with Hyvä theme, custom one-page checkout, friendly captcha instead Google reCAPTCHA, PayPal Express Review Flow, minimum order surcharge, country-based tax logic (DE 19% / abroad 0%), custom PDP gallery with hover zoom and pinch lightbox, and a five-layer defense-in-depth security architecture against the 2025/2026 Webshell wave (CosmicSting, PolyShell).
Technology stack
Consistent use of modern, lightweight technologies instead of the historically cumbersome Magento standard stack (KnockoutJS, RequireJS, LESS):Backend
Frontend
Third-party components
Infrastructure
Custom-developed Magento modules
Eight custom-designed modules cover all requirements that Magento standard or marketplace modules could not cleanly address — each as a clean DI-based solution.app/code/IA24/*-Modules without vendor patches:
IA24_OnePageCheckout
A fully customizable one-page checkout with B2B field logic, dynamic mandatory field control, a mandatory order number field for purchase on account, and an optional invoice email address. Includes a PayPal Express Review step.
IA24_PaymentRestrictions
Two restriction layers: (1) Net threshold (default 500 EUR locks purchase) on account), (2) Guest block (billing method only for logged-in existing customers). Works equally in OPC, REST API and Admin.
IA24_FreeShipping
Admin-only carrier with freely enterable name and amount in the Admin Order Create. Frontend not affected (clean area separation).
IA24_DisableFileOption
Hardening against the CosmicSting/PolyShell webshell wave: three plugins block file custom options on the frontend, adminhtml, and critical REST API path. POST /V1/guest-carts.
IA24_BreadcrumbsFix
Merges multiple category crumbs into a single path with a "›" separator. Active only when navigating from Category to Product.
IA24_Theme
Complete custom theme via Hyvä: PDP gallery (Alpine, hover zoom, pinch lightbox), mega menu, minicart hover dropdown, mobile snap scroll USPs, footer redesign, custom maintenance page with countdown.
MirasvitFix_SearchCartAddQty
Plugin against the hardcoded qty=1-Mirasvit search logic: Search autocomplete receives quantity pickers per hit.
Bot/IP blocker (PHP layer)
Own pub/bot_block.php with IP blocking (hard-enforced for 5 IPs) and UA/query string logging. Via auto_prepend_file Mounted in an update-safe manner.
B2B-specific functions
A B2B shop for industrial components has fundamentally different requirements than a B2C fashion shop. The following functions were specifically implemented for business customer operations:| Other specifications | Implementation |
|---|---|
| Control logic | Country-based: Germany 19%, all other 29 countries 0% (intra-Community / third country). 348 tax_calculation entries. |
| minimum quantity surcharge | Magecomp order fee with a threshold of 50 EUR / fee of 25 EUR. Stale-quote bug in collect() fixed, custom Hyvä-compatible templates. |
| Order number - required field | Mandatory field for purchases on account, in sales_order.po_number (32 characters) saved. |
| Billing email | Optional: separate email address per order as BCC for the customer's accounting department. |
| Net and gross display | Cart item: Net price in large letters, gross price in small letters below. Summary with "VAT (19%)" line via Alpine getter. |
| Category filter | Completely revised filter overlay system with paramKey/State/Label consistency. |
| Datasheet modal | PDF datasheets per product in modal with iframe preview, 434 absolute URLs migrated to relative paths. |
| Complementary Products | Cross-selling with its own quantity picker per item, toast confirmation “N × product”. |
Five-layer security architecture
Magento was targeted by several severe webshell waves in 2025/2026 (CosmicSting, PolyShell APSB25-94Adobe has not provided an official backport for version 2.4.8-p4 — therefore, several independent layers of defense exist:- nginx layer — Default Engine Off in
pub/mediaandpub/staticPHP execution is completely blocked there. - .user.ini engine=Off — Defense-in-Depth survives static-content:deploy. If the nginx rule ever fails, the PHP layer takes over.
- Custom bot/IP blocker
pub/bot_block.phpoverauto_prepend_fileHard blocking for 5 known attacker IPs, logging for UA patterns. - Sansec Shield WAF — composer module, 90 cloud rules synchronized, test endpoint
?SANSEC-SHIELD-TEST. - Hourly backdoor scan
backdoor_scan_v2.shwith automatic quarantine relocation of suspicious files outside the web root.
POST /V1/guest-carts/<token>/items hardened, because the file custom option bypasses the standard validation path and uses... Webapi\Processor::processFileContent running.
Migration from the previous system
The migration from the Magento 2.4.7 predecessor took place on April 30, 2026 as Database-level migration using column intersection strategyNot the standard Magento migration tool, but custom scripts — because the data schema has evolved in several places:- EAV Customer Attribute Remap for 5 attributes (moved attribute_id)
- Product ID mismatch for 264 SKUs cleanly remapped
- Complete replacement for customer, sales, wishlist and newsletter tables
- 91 hose prices updated pre-migration (catalog_* tables migrate-safe)
- Custom 503 service page with logo, animated gears and 45-minute live countdown
- Maxcluster cutover with IP reassignment from the old to the new server
Performance, SEO and discoverability
Performance
- Production mode with full page cache (FPC)
- Maintenance cron job for FPC cleanup every 30 minutes (prevents disk filling)
- OPcache reset in standard deployment procedure
- Hyvä reduces the JavaScript size by a factor of 10+ compared to Luma.
- 60 GB disk cleanup before going live (old logs, cache, sessions)
SEO measures
- Static
pub/robots.txtwith sitemap index - 2 sub-sitemaps with a total of 7.177 URLs, updated daily (Cron 02:00)
- 35 new canonical manufacturer URLs (Parker / GESTRA / Clorius) deployed
- 28 custom 301 redirects for modified manufacturer paths
- Structured data via Schema.org on product pages
- Clean meta descriptions and page titles, careful handling of layout XML
Frequently asked questions about the project
These questions are explicitly formulated to be suitable for direct inclusion in Featured Snippets and LLM answers:Which Magento version is running on industriearmaturen-shop24.de?
Magento Open Source 2.4.8 with security patch p4 on PHP 8.4. The frontend is based on the Hyvä theme with an IA24 custom theme on top. The system is running in production mode on Maxcluster managed hosting.
Why Hyvä instead of Magento's standard Luma theme?
Hyvä replaces KnockoutJS, RequireJS, and LESS with Alpine.js and Tailwind CSS. PageSpeed scores exceed 90, the JavaScript size is a fraction of Luma's, and frontend maintenance is significantly easier. For a B2B shop with long product detail pages, this is ideal. Performance crucial.
What custom modules were developed for the project?
Eight custom modules: IA24_OnePageCheckout, IA24_PaymentRestrictions, IA24_FreeShipping, IA24_DisableFileOption, IA24_BreadcrumbsFix, IA24_Theme-Override, MirasvitFix_SearchCartAddQty and the bot/IP block layer at the nginx level.
How was the old shop migrated?
Database-level migration using a column intersection strategy: 264 product IDs remapped, five EAV customer attributes translated, customer, order, wishlist, and newsletter tables replaced completely. Maintenance window with a custom 503 page and live countdown.
How is the shop protected against the Magento webshell wave?
Five layers of defense: nginx default engine off, .user.ini engine=Off, custom PHP bot/IP blocker, Sansec Shield WAF with 90 cloud rules, hourly backdoor scan cron with quarantine postponement. Additionally, the REST API file upload path is hardened (CosmicSting / PolyShell).
Which payment methods does the shop support?
PayPal Express with B2B review step, prepayment (bank transfer), and purchase on account (checkmo) — the latter only for logged-in existing customers up to €500 net. Order number is mandatory for invoice orders; invoice email address is optional.
How is the B2B tax policy implemented?
Country-based instead of customer group-based: Germany 19%, all other 29 countries 0% (intra-Community supply or export to third countries). A total of 348 tax_calculation entries. The basis for calculation is the invoice address.
Which industry and which manufacturers does the shop cover?
B2B shop for industrial valves, hose assemblies, and fittings. Main brands: Parker, GESTRA, Clorius. Also general industrial valves and shipbuilding valves. Target group: mechanical engineering, shipyards, industrial procurement.
Do you have a similar project?
If you're planning a B2B shop, a Magento migration, or a Hyvä theme project, please get in touch. This reference demonstrates that Magento 2, with the right stack, can still be the right choice for demanding B2B requirements in 2026—without Adobe Commerce Cloud and without vendor lock-in.
Live reference
www.industriearmaturen-shop24.de
Magento 2.4.8 + Hyvä, B2B industry, fully in-house development in the period 2025–2026.

















Be the first to leave a comment!