SerhiiNadolskyi
Hire me

Vehicle manufacturing group · DE · 2024–2026

Vehicle manufacturing group: WooCommerce, TYPO3 and API work

Seven jobs I did for a German vehicle maker: a WooCommerce catalogue app, a supplier sync plugin, a used-vehicle marketplace API integration, live auction fixes and TYPO3 content work.

Together
2+years

From a Multisite consultation in 2024 to TYPO3 work in July 2026.

Projects
7projects

WooCommerce, TYPO3 and custom PHP, from a live auction to a supplier sync plugin.

A German B2B manufacturer of vehicles and machinery, with several sites on WordPress and TYPO3. I worked for it through a German web agency.

The work ran from 2024 to 2026. It started with an architecture consultation and grew into a line of jobs across WooCommerce, TYPO3 and custom PHP. On most of them I was the only developer. The agency brought each new kind of problem on this client to me, and I kept my experiments off the live sites.

Projects

  1. 2024

    WordPress Multisite architecture consultation

    The group had small WordPress sites on subdomains, each with its own updates, plugins and users. The question was whether they should become one Multisite network, with Elementor still working.

    To answer it, I built a local network of six sites and showed it on video. The gains: one update for all sites, shared plugins and themes, and users limited to one site. The limit: headers and styles don’t sync by themselves. I named the one question that decides the setup, a shared header or separate ones, and offered a short trial.

    Stack: WordPress, Elementor

  2. 2025

    WooCommerce auction fixes during a live auction

    I fixed a live auction while bidding was open. Another developer had built the site with WooCommerce, an auction plugin and Bricks.

    The bid history was missing. I reproduced it on a test copy and showed there how to restore it. Auction emails failed too, so I reproduced that locally and rebuilt the «you won» email as a branded German template in the child theme. I limited bidding to registered users with a complete address, and put a short German notice at checkout in place of a payment error.

    I delivered every fix with bidding open, and proved each one on a test account, from sign-up to a placed bid.

    Stack: WordPress, WooCommerce, Bricks, PHP, JavaScript

  3. 2025

    WooCommerce catalogue app with AJAX filtering

    I built a web app for the machinery division’s trade-fair highlights, where visitors browse machines by category and request a quote. There is no online checkout.

    I was the only developer, from April to July. The app-style interface runs on WooCommerce and Elementor: home, shop, cart, a tabbed profile and an icon menu the client can change. For quotes I set up a plugin with prices hidden and an enquiry pop-up, and wrote down its limits, which were approved before further work.

    A filter plugin broke the categories, so I rebuilt the shop and category pages as custom child-theme templates, with subcategory filtering that works without reloading and custom sorting. After the browser’s Back button, visitors got a blank page. I made the page-transition script run on pages restored from the browser cache too, and caching stayed on.

    Stack: WordPress, WooCommerce, Elementor, PHP, JavaScript

  4. 2025

    Used-vehicle marketplace API integration on a TYPO3 site

    I finished a used-vehicle catalogue for the manufacturer’s TYPO3 site, fed from a marketplace API and kept inside its usage limits.

    I set up the official widget first, as the simplest option, and then completed the PHP catalogue the agency had started on the API. Images load from the marketplace’s image server. Prices come from the API, formatted, with the list data as a fallback when a detail request fails. Categories are built from the API’s own data, with filters by category and manufacturer and stable paging. The enquiry form opens in a pop-up and sends without reloading, with a request log, and I made the element that places the list on a TYPO3 page.

    To stay inside the limits I raised the cache from 1 hour to 48 and removed duplicate requests. A German dashboard logs every API call and lets the client clear or refresh the cache without a developer. I handed the working catalogue to the agency in August 2025. It showed the list could run on the site with real prices, filters and enquiries, inside the API limits.

    Stack: PHP, JavaScript, Bootstrap, TYPO3, REST APIs

  5. 2025

    Custom WooCommerce plugin for supplier catalogue sync

    I wrote a WooCommerce plugin that fills a machinery catalogue shop from a supplier’s website. The supplier had no feed, only product pages and a CSV list of their links.

    The plugin imports the CSV, reads each product page and creates or updates the product. It runs on a schedule or by hand, and logs every run.

    German prices came out wrong at first: «2.272,90 €» was read as 2.27. I rewrote the price reading so thousands, decimals and the VAT wording come out right. I also fixed how similar article numbers were matched: 6 of 16 test products synced before, 16 of 16 after. Images come only from the product gallery, at full size, without logos and banners.

    For the client’s team I made a German admin: a sync dashboard, settings and a help page. Later I added shipping groups, created and updated on every sync.

    I handed the plugin to the agency with two real catalogues imported, for its presentation to the client.

    Stack: WordPress, WooCommerce, PHP, JavaScript

  6. 2025

    Removing WPML from a WordPress site

    I took WPML out of one of the group’s WordPress sites and left the group’s other sites as they were.

    Before any change I pulled a full copy of the live site into a local environment. I cleaned the database first and only then switched WPML off. Every stage stayed as its own full copy: the original, the cleaned database, WPML off and the final state. That site now works without WPML, and the other sites keep it.

    Stack: WordPress, WPML

  7. 2026

    TYPO3 content entry and QA for a service partner search

    I brought the service partner search for one country up to date from the local subsidiary’s PDF list, and entered and checked it in the TYPO3 backend.

    I entered the new and changed partner records, each with the head-office contact. I checked addresses and phone numbers against the source, corrected a typo in one company name and logged every record, so each change can be traced. I also removed a retired employee from the spare-parts contact page, in German and in English.

    In September 2026 every partner came up in the public search, so customers in that country find the right service partner.

    Stack: TYPO3

Contact

Have something similar?

Use the form or message me on LinkedIn.

Already working with me on Upwork? Write there.