---
title: "Terminal Supply Co: WooCommerce and AS400 | Nathan Gamache"
description: "Lead developer on Terminal Supply Co’s WooCommerce rebuild since 2024: the theme, product importer, category imports and an AS400 integration."
url: https://www.nathangamache.com/projects/terminal-supply/
---

# Terminal Supply Co

Terminal Supply Co sells electrical, manufacturing and industrial parts. Since 2024 I have been the lead developer on the rebuild of their WooCommerce site, and for most of it the only one: I built the theme, the product importer and every category import, both sides of the integration with their internal AS400, and a long run of storefront features.

[Their current site](https://terminalsupplyco.com) · [All projects](https://www.nathangamache.com/projects/)

- Role: **Lead developer**
- Agency: **Perfect Afternoon**
- Years: **2024–2026**
- Catalog: **23 top-level categories (2024)**
- Work: **Imports · AS400 · Storefront**
- Stack: **WooCommerce · AS400 · PHP · Data imports**

![The rebuilt Terminal Supply Co home page, before launch: the Since 1966 logo and a product search bar across the top, the line Your source for electrical, manufacturing & industrial quality parts & service, and a company video playing beside it](https://www.nathangamache.com/assets/img/projects/terminal-supply.webp)

## What I did

When I started on the rebuild in 2024 the catalog had 23 top-level categories, with subcategories four and five levels deep, and its product data comes from AS400 exports combined with the client’s own category spreadsheets. The rebuild has not launched yet: the screenshot above is the rebuild, and the link goes to the company’s current site. My work on the rebuild falls into three parts: getting that catalog in, connecting the site to the AS400, and building the storefront features the catalog needed.

Since the project started I have been its only developer, apart from a colleague who has since joined me on the AS400 work. I built the theme, wrote all of the plugin code for the importer and the CSV and product data reformatting, and I review the catalog data with the client every two weeks.

Catalog

## Product imports

- **The importer, 2024.** A custom WooCommerce product importer for the launch catalog, with a script that turns the AS400’s raw item and category exports into import sheets, and a pre-importer that turns a simple template back into the importer’s format. The client fills in titles, descriptions and categories, and the code does the reformatting.
- **The first full import, September 2024.** Merged the client’s per-category spreadsheets into one master sheet, tested the import locally, imported it to the development site with high resolution images, and set up the parent and child categories.
- **A reusable reformatter, 2025.** Converts the per-category spreadsheets into WooCommerce’s import format. I extended it for required and suggested parts, notes, kit contents, and new titles and slugs, which meant modifying the WooCommerce importer. It fixes category delimiters, strips wire gauges out of SKU lists and corrects the casing of compliance labels on its own.
- **Terminals.** The first category-by-category re-import. I combined names, descriptions and images from an older AS400 export with the client’s new attribute and spec sheets, created the attributes, built product tables matched to them, and listed the SKU mismatches between the two sources for the client to correct.
- **Connectors.** Worked through the category data: parent and child delimiters, products in several subcategories, category names with commas in them. I imported hundreds of missing product images, and moved kit products onto a repeatable kit contents field.
- **Wire & Cable.** Imported it, then rebuilt it as WooCommerce variable products, with shorter wire lengths sorted first, images for 526 products, and an image gallery for each variation that switches when a shopper picks an option.
- **Every category so far.** I have run every category import to date, including Fuses & Accessories, Mirrors, and Forward & Work Lighting with its new subcategories, plus description paragraphs for 13 categories. I created the whole import process and the sheet template.
- **Cleanup, June 2026.** Removed roughly 5,000 legacy AS400 products from the rebuilt catalog, and added a search replacement so a partial part number (190) finds the product (190AG), since SearchWP no longer does fuzzy search.

Integration

## The AS400 integration

The company keeps its item data and customer pricing on an internal **AS400** (IBM i) server. I built the integration on both sides: I worked with the client to get their IBM i ready to host an API, then built a REST API on the AS400 side and another on the WordPress side, joined by a plugin built to sync customer data, product data, stock, orders and quotes.

- **Discovery, 2024.** Visited the client on site, researched ways to connect to the AS400, and after a meeting with the client’s team and an outside AS400 vendor, updated the integration scope to the new approach.
- **The AS400-side API.** It queries the AS400’s DB2 database. On it I built customer-specific pricing lookups that follow the client’s price structure rules.
- **The WordPress side.** The plugin’s architecture, its core functionality and a local development setup, and the REST API that talks to the AS400.
- **Pack quantity sync, February 2026.** A pack quantities endpoint on the AS400 API that reads the item master, and a cron job in the WordPress plugin that writes the quantity steps onto matching products. Those products got a quantity dropdown in place of the free entry box.
- **Pack sizes, mid-2026.** For products matched to the AS400, reworked buying quantities into one pack size increment per product: the quantity field steps by it, shows the total, and carries a Min/Mult label, refined with the client’s feedback.
- **Server move, 2024.** Helped move the development site to a new server: prepared the server, reconfigured the site after the move, and checked that the integration still worked there.

Storefront

## Features the catalog needed

- **Quotes and bulk orders.** A request-for-quote flow with YITH Request a Quote working alongside the product tables, and a Bulk Order page built from the two.
- **Product pages.** A spec bullet field; a Required Parts field that takes a list of SKUs, builds a product table on the page and adds a button that jumps to it; three suggested parts sections driven by SKUs (crimping tools, removal tools and kits often bought together); optional hazardous material and compliance fields; a View Specs PDF field next to the SDS button; and a Kit Sheet PDFs page with 29 terminal and 28 connector kit sheets.
- **Finding parts.** Filters that drop any option, or whole dropdown, that would return nothing in the current category; subcategory cards with product counts; filters moved into a sidebar; and a secondary parent option so a category can sit under more than one parent, which made a combined Clips & Clamps landing page possible.
- **A custom product table, 2026.** Replaced the WC Product Table plugin with our own code on category pages and search results: filters that still drop options with no results, view options, sorting and pagination, with pack quantities on the product cards.
- **Pricing.** Quantity-based price tiers across the whole catalog, built without a plugin, with a tier table on product cards and pages and an optional SKU for each tier. Logged-out visitors see a login prompt instead of prices. SearchWP now ranks exact SKU matches first.
- **Catalogs.** Extended the site’s catalog viewer to three catalogs, each a hosted flipbook or an uploaded PDF, configured from an admin screen and listed in a See Catalog dropdown, with a separate kit catalog page number on products.
- **Around the site.** A Shop Now menu matched to the catalog’s parent categories, an announcement banner, specials cards and a Season’s Specials block, header, footer and breadcrumb updates, and a back to top control.
- **Setup, 2024.** Installed and set up the build’s core plugins, from Yoast SEO, WP Rocket and SearchWP to Gravity Forms, and set up the sending domain for the site’s email.

## Related projects

### [MJS Packaging: Tax Exemption, ERP Sync & Checkout](https://www.nathangamache.com/projects/mjs/)

More WooCommerce data work: tax exemption driven by the client’s ERP, and the plugin that exchanges order and customer data with it.

Technologies: WooCommerce, Tax logic, ERP sync, PHP

[View project: MJS Packaging: Tax Exemption, ERP Sync & Checkout](https://www.nathangamache.com/projects/mjs/)

### [SJD Taxi Booking Platform](https://www.nathangamache.com/projects/sjd-taxi/)

A different kind of job: a booking system from 2015, replaced with a booking hub that now runs four sites.

Technologies: WordPress, PHP, TypeScript, React, Stripe

[Read the case study: SJD Taxi Booking Platform](https://www.nathangamache.com/projects/sjd-taxi/)

[View all 16 projects](https://www.nathangamache.com/projects/)

## Connecting WordPress to an in-house system?

I have built both sides of one, from the API on the IBM i to the WordPress plugin, and I am happy to compare notes. [nathanpaulgamache@gmail.com](mailto:nathanpaulgamache@gmail.com)

[Start a conversation](https://www.nathangamache.com/contact/)

---

Nathan Gamache · [nathanpaulgamache@gmail.com](mailto:nathanpaulgamache@gmail.com) · [GitHub](https://github.com/nathangamache) · [LinkedIn](https://www.linkedin.com/in/nathan-p-gamache/) · [nathangamache.com](https://www.nathangamache.com/)
