Retail & Commerce

CNT Automation — Back-Office Operating Modules for a Test-Equipment Reseller + Rental House

Three custom Odoo 18 modules for a test-and-measurement equipment reseller — automatic SKU generation, stale-inventory tracking, direct-to-printer workflow. Storefront on Shopify, back office on Odoo.

Client CNT Automation
Overview

The Engagement

Three custom Odoo 18 modules for a test-and-measurement equipment reseller — automatic SKU generation, stale-inventory tracking, direct-to-printer workflow. Storefront on Shopify, back office on Odoo.

What We Built

Approach & Delivery

CNT Automation is a Canada-based reseller and rental house for test and measurement equipment — Fluke, FLIR, EXFO, FARO, Megger, Leica, Trimble, Tektronix, Anritsu, and dozens of specialised tooling lines across fiber optic and network testing, RF and spectrum analysis, power quality, thermal imaging, NDT, calibration standards, and condition monitoring. Operating from Ayr, Ontario (Canadian HQ) with US operations in Sanborn, NY, the business sells new, used, and rental equipment and runs a buy-back / trade-in program alongside the storefront.

The operating reality of an equipment reseller and rental house is heavier than it looks from the customer side. The storefront sells a catalog. The back office runs an inventory operation: thousands of SKUs across new, used, and rental sub-classes; serialised used equipment that has to be tracked per unit, not per product; rental units that come back and need to re-enter the catalog; capital tied up in slow-moving stock that nobody is watching closely; and a warehouse that needs to print labels and shipping documents at machine speed without dropping into manual PDF workflows.

The Challenges CNT Automation Faced

  • SKU generation at catalog scale, by hand. Every new product variant needed an SKU. Manual SKU creation across thousands of variants meant inconsistent formats, duplicates, and the constant overhead of someone having to think about a string before they could save a record.
  • Stale inventory invisible until it hurt. Slow-moving stock tied up capital and warehouse space, but nobody had a daily view of what hasn't moved in N days across the catalog. Stale inventory was discovered during stock-takes, not during operations.
  • Print workflow through PDF download. Shipping labels, picking lists, receipts, and work orders were generated as PDFs, downloaded, then opened and printed. At warehouse speed that workflow is a friction tax on every order.
  • Label design for Zebra-class warehouse printers. Warehouse labels for thermal printers use ZPL — a specialised format that office staff can't author by hand. Without a designer, label changes meant developer tickets.
  • Storefront on Shopify, operations on Odoo. The customer-facing site runs on Shopify (which is the right tool for the storefront). The back-office operating layer is Odoo (which is the right tool for inventory, stock, accounting). The modules had to fit cleanly into that split architecture without forcing a platform consolidation in either direction.

How Linescripts Built the Solution

ls_auto_sku — Automatic SKU Generation

Configurable rule-based SKU generator. Define the rule once (template, sequence, category-based prefix, attribute-driven segment), and SKUs generate automatically as products are created. No more inconsistent formats, no more duplicates, no more thinking about a string before saving a record. Office staff onboard a new variant; the SKU follows the rule.

ls_stale_inventory — Stale Inventory Tracking

Cron-driven stale-inventory tracking across stock, purchase, sale, delivery, and repair flows. The module watches the inventory model continuously and surfaces what hasn't moved in the configured age window. Stale capital becomes visible in operations rather than discovered during stock-takes. The cron + multi-module dependency footprint means the tracking respects the actual movement signals across the operating system, not just a single-table query.

zehntech_direct_print — Direct Print via PrintNode

Print Odoo reports, invoices, and warehouse documents directly to any network or local printer via PrintNode integration. No PDF download, no opening a viewer, no manual print dialog — the document goes straight from Odoo to the targeted printer. Order picking, packing, and shipping accelerate measurably because the print workflow stops being a per-order friction tax. Routing is configurable so different document types go to different printers in different locations.

ZPL Label Designer (VentorTech) for warehouse labels

The label-design surface for Zebra-class thermal printers is provided by a third-party module from VentorTech, integrated into the operating stack. Office staff design and update ZPL labels through a visual interface rather than raising a developer ticket whenever a label changes. (Linescripts integrated the module into CNT's stack; the module itself is authored by VentorTech.)

Shopify + Odoo as a deliberate two-tool architecture

The storefront stays on Shopify, where customer-facing commerce belongs. The back office stays on Odoo, where inventory, stock, accounting, and operations belong. The Linescripts-built modules sit on the Odoo side and respect the boundary — they make Odoo a sharper back-office tool, not a partial Shopify replacement.

What Changed for CNT Automation

  • SKUs generate themselves, consistently. Catalog operations stopped owning a manual string-creation step on every new product variant.
  • Stale inventory has a daily view. Slow-moving stock surfaces in operations rather than during quarterly stock-takes — capital tied up in non-movers becomes a visible, actionable number.
  • Print workflow stopped being a per-order tax. Documents print directly from Odoo; warehouse staff stay in the shipping flow instead of dropping into a download-then-print loop on every order.
  • Label changes stopped being developer tickets. ZPL labels can be redesigned by office staff through the VentorTech designer integrated into the stack.
  • The Shopify / Odoo boundary stayed clean. Storefront and back office each on the right tool, no forced consolidation, modules respect the architecture.

Closing

The deliverable is three back-office Odoo modules that together remove the per-record friction tax — on SKU creation, on stale-inventory visibility, on print workflow — for a warehouse-heavy reseller and rental operation. The architectural decision that made the engagement work was respecting the existing Shopify + Odoo split: the storefront stays on Shopify because that's what Shopify is for, the operating layer stays on Odoo because that's what Odoo is for, and the work landed on the operating layer where the friction actually lived.

Want an Engagement That Could Become a Case Study?

Request Consultation

Fit-first conversation. We'll tell you honestly whether your operation is the kind of engagement we deliver.