When a 23-year-old industrial networking distributor outgrows its own backend, the fix isn't just a software swap — it's a full rethink of how product data, B2B transactions, and AI agents connect. This case study documents how Tenten rebuilt Neteon Technologies' product data spine using unoPIM and Shopify B2B, and what that means for any merchant sitting on a legacy PIM today.

The Starting Point: Four Storefronts, 1,847 SKUs, and a 15-Year-Old PHP Backend
Neteon Technologies has distributed industrial networking gear since 2002. By early 2026, the company operated four separate US storefronts:
- shopmoxa.neteon.net — Moxa Gold Partner since 2002, selling managed switches, IIoT gateways, and rugged x86 industrial PCs
- neousys.neteon.net — Neousys authorized US distributor for -40°C to 70°C fanless industrial PCs and edge AI GPU platforms
- ipc.neteon.net — Industrial SSDs, DRAM, DIN rail accessories, and general IPC components
- solutions.neteon.net — Solution-level sales for BMS, EPMS, and DCIM
All four sites shared one backend: a PHP PIM written around 2010 on MySQL 5.5, no version control, no attribute inheritance. The same Intel Core Ultra 200S processor had three slightly different descriptions across the ipc, solutions, and neousys stores because product managers hand-copied specs every time a new SKU went live.
The pain points were concrete and measurable:
- 60%+ data duplication rate across stores for identical components
- Hard-coded image paths — 15 years of product photos sitting in
/uploads/2013/products/with no DAM layer - Certifications trapped in free-text fields — MIL-STD-810G, ATEX, and IP ratings lived in description columns, searchable only via SQL LIKE queries
- B2B discounts wired into the database — tier pricing for SI, OEM, EPC, Reseller, and Gov customers sat in a
user_discounttable; every change required engineering involvement - No external API — customer ERP and e-procurement integrations only received CSV exports
- English-only — strings were embedded in PHP files; Spanish and Japanese expansion would have required a full codebase fork
This was a classic "runs, but every 10% of revenue growth means hiring another person" situation. In Q4 2025, Neteon's COO engaged Tenten because they were preparing to enable Shopify B2B's native Company Accounts for self-service wholesale ordering — and they had no clean PIM to align product data across four storefronts.
Why unoPIM Won the Evaluation Over Akeneo and Pimcore
Tenten evaluated three open-source PIMs. The selection criteria were deliberately narrow: Neteon's engineering team had deep PHP experience, so the new PIM had to fit their existing operational muscle. It also needed first-class Anthropic and OpenAI API support, because the next several years of B2B commerce are agentic, and retrofitting AI capabilities onto a system not designed for them is painful.
The comparison across the three candidates looked like this:
| Criterion | unoPIM | Akeneo CE | Pimcore |
|---|---|---|---|
| License | MIT | OSL-3.0 | GPLv3 / POCL (dual-licensed) |
| Framework | Laravel 12 + Vue 3 | Symfony 6 | Symfony + custom ORM |
| Database | MySQL 8 + Redis | MySQL + Elasticsearch | MySQL + Elasticsearch |
| Built-in AI Agent | Agent Chat with 32+ tool actions | None (external integration required) | None (Pimcore Copilot is paid) |
| AI provider support | 10+ (Anthropic, OpenAI, Gemini, Groq, Ollama, Mistral, DeepSeek, others) | No official abstraction layer | Primarily OpenAI |
| Official Shopify connector | Open source MIT, unopim/shopify-connector | Paid enterprise edition only | Build your own |
| Claimed scale ceiling | 10M+ SKUs | Version-dependent | Instance-dependent |
| DAM | Official unopim-digital-asset-management module | Enterprise only | Built in |
The deciding factor was the AI layer. unoPIM's 2026 release bakes Agentic PIM into core: autonomous product enrichment, catalog quality monitoring, approval workflows, content feedback loops, and persistent agent memory. Akeneo CE users have to stitch these together from marketplace modules. Pimcore users write custom plugins. On a 12-week timeline, "works out of the box" beats "we can build that" every time.
Akeneo CE dropped out in week three for three specific reasons: variant management limits in the community edition, no native bidirectional Shopify sync, and limited batch operations. In 2024, Akeneo moved several key capabilities — including native Shopify sync — behind Growth and Enterprise paywalls, and the Community Edition roadmap looked underfunded during the evaluation period.
Pimcore has a more mature DAM story, but unoPIM's DAM module ships and actively develops, and industrial PC imagery is lightweight compared to fashion or furniture. The delta wasn't enough to flip the decision.
One important clarification: if you have Akeneo expertise in-house and you're running DTC, Akeneo EE remains a strong option. This is a tooling-fit argument, not a brand argument.
The Architecture: PIM as Source of Truth, Shopify B2B as Transaction Layer, Agents as Operators
The stack has three clean layers. unoPIM holds canonical product data. Four Shopify storefronts consume it. An agent layer sits on top, connected to both unoPIM and Shopify via MCP (Model Context Protocol), exposing the system to external AI clients like ChatGPT, Claude, and Perplexity.
Responsibilities by Layer
unoPIM holds every product spec, image, certification, and localized description. Attributes are structured — MIL-STD-810G, ATEX, IP67, CE, FCC, UKCA, UL, EN 50155, IEC 61850-3, DNV, and TÜV each have their own fields. So do operating temperature range, MTBF, input voltage, and I/O port counts. This matters enormously for agent queries: a -40°C to 70°C string buried in free-text is useless to an AI agent. A dedicated operating_temperature_min: -40, operating_temperature_max: 70 field lets the agent run range queries and cross-product comparisons.
Shopify B2B handles transactions. Neteon's CRM segments (SI, OEM, EPC, Gov, Reseller) map to Company Profiles. Each company can have multiple Locations — HQ, branch offices, warehouses — and each Location gets its own Custom Catalog.
Shopify's April 2, 2026 expansion of B2B to Basic, Grow, and Advanced plans capped catalog count at three per store. Unlimited catalogs and per-location direct assignment remain Plus-only. Tenten put shopmoxa and neousys on Plus (those stores need 11 catalogs each for discount tiers), and ipc and solutions on Advanced with three catalogs covering standard reseller, large-account, and government procurement. It's the most economical split given Neteon's current volume.
The agent layer stores nothing. It calls unoPIM and Shopify capabilities via MCP. Shopify built four MCP servers covering every layer of commerce:
- Dev MCP — gives Claude Code, Cursor, and other AI IDEs direct access to Shopify docs and schema
- Catalog MCP — lets agents search products across all Shopify stores globally
- Storefront MCP — lets agents interact with a single store: query products, manage carts, guide checkout
- Checkout MCP — lets agents complete purchases (UCP spec 2026-01-23 compliant)
At NRF on January 11, 2026, Shopify and Google jointly announced the Universal Commerce Protocol (UCP) — a shared language for agents, merchants, payment service providers, and credential providers. Shopify's Checkout MCP is UCP running over MCP transport. On March 24, 2026, Shopify activated Agentic Storefronts for all eligible US merchants by default, connecting 5.6 million stores to ChatGPT's 880 million monthly active users.
The concrete payoff for Neteon: when an engineer asks Claude at 2 AM, "find me a switch that operates at -40°C, passes IEC 61850-3, supports 16 Ethernet ports, deliverable to the US West Coast within 12 weeks," the agent can hit Catalog MCP to find the Moxa PT-G7828 series on shopmoxa, query Storefront MCP for stock, and open a draft order via Checkout MCP with a PO number and Net 30 terms attached — no Neteon BDR in the middle. Because industrial B2B transactions run $5,000–$120,000, draft orders route back to Neteon's sales team for approval before becoming firm orders. The goal isn't full automation; it's liberating sales reps from the 80% of their time spent on spec-pulling and quote-building so they can focus on the 20% that actually requires human judgment.
The 12-Week Migration: Six Sprints, Agent-Guided but Human-Reviewed
Tenten has run migrations from legacy systems into AI-native stacks for roughly a dozen clients over the past three years. The consistent lesson: AI cuts migration timelines roughly in half, but only if you treat the agent like a senior engineer whose work needs review, not a script that runs unsupervised.
Sprint 1–2: Schema Archaeology and unoPIM Design (Weeks 1–4)
Tenten pointed Claude Code at the entire 15-year PHP codebase and asked it to build an ER diagram plus an attribute inventory. It surfaced that 31% of fields in the 1,847 SKUs had never been populated in production, and 56% of product descriptions were regex-cleaned copies from manufacturer PDFs. That audit directly shaped unoPIM's Family and Attribute Group design.
Seven product families were designed: industrial Ethernet switches; rugged industrial computers; IIoT gateways; industrial wireless; storage and memory; industrial accessories; and solution bundles. Attribute counts ran from 48 to 112 per family. The "certifications" group, shared across all families, held 11 boolean-plus-text fields.
Sprint 3: AI Enrichment (Weeks 5–6)
This is where unoPIM's 2026 release earned its place in the stack. Claude Sonnet 4.7 was configured as the primary enrichment agent via the Anthropic API, with Ollama running Qwen 3 locally as fallback. The agent's task list per SKU:
- Parse OCR-to-markdown of manufacturer datasheet PDFs and extract structured specs
- Generate GEO-optimized long descriptions (800–1,200 words) using operating temperature, certification set, and I/O configuration as prompt anchors
- Produce three description lengths (80 / 160 / 280 characters) for different channels
- Output three FAQ entries plus an Answer Target Block per product, based on an AEO checklist
- Compare products within the same series and generate cross-sell suggestions
The critical design choice: the agent never writes directly to the live catalog. Everything flows through unoPIM's Maker-Checker Workflow, where a Neteon product manager reviews and approves before anything publishes. Industrial customers are unforgiving about spec errors — a wrong input voltage can fry a field deployment — so the team accepted the latency hit to keep humans in the loop.
Sprint 4: Shopify B2B Setup (Weeks 7–8)
All four stores were built locally with Shopify CLI. On the B2B layer:
- Pre-built 340 Company Profiles from Neteon's CRM data, segmented into SI, OEM, EPC, Gov, and Reseller tiers
- Plus stores (shopmoxa, neousys) each received 11 catalogs for tier-specific pricing
- Advanced stores (ipc, solutions) received three catalogs each
- Payment methods: credit card, Net 30/45/60, ACH, wire transfer; every B2B checkout requires a PO number
Sprint 5–6: Sync and Agent Deployment (Weeks 9–12)
The unoPIM Shopify Connector handled the initial bulk export — 1,847 SKUs split across 14 queue batches, averaging 52 minutes per store. After that, the team switched to event-driven sync: any attribute change in unoPIM fires a Laravel Queue job that pushes to Shopify's GraphQL Admin API via webhook.
For agents, Tenten wrapped unoPIM as an internal MCP server (Node implementation using the Anthropic MCP SDK) and exposed it to Neteon's internal OpenClaw agent and the sales team's Claude Desktop. On the Shopify side, Shopify Storefront MCP was connected so ChatGPT and Perplexity could discover Neteon's products once Agentic Storefronts activated.
What the Stack Actually Changed: 60-Day Post-Launch Metrics
Post-launch metrics were pulled against a three-month pre-migration baseline from Neteon's Shopify Analytics, HubSpot Service Hub tickets, and unoPIM job logs.
| Metric | Old PHP PIM + manual uploads | unoPIM + Shopify B2B + agents | Change |
|---|---|---|---|
| New product launch time (datasheet to four-store live) | ~14 business days | ~1.5 business days | –89% |
| Product description creation (single SKU, SEO/GEO optimized) | 2–4 hours | 12–18 minutes (AI draft + human review) | –87% |
| PM hours per week on copy-paste work | ~18 hours | ~2 hours | –89% |
| B2B customer ordering time (login to completed order) | Phone or email, ~47 min | Self-service Company Portal, ~6 min | –87% |
| Customer abandonment from not finding products | ~23% | ~7% | –16 percentage points |
| Product data error reports per month | 8–12 | 1–2 | –83% |
One honest caveat: about 30% of the 89% launch-time reduction comes from the Sprint 1–2 schema standardization work, not from AI. Dropping AI agents onto disorganized data produces more errors, not fewer. The ordering matters.
Key Takeaways
The real bottleneck in agentic commerce is data structure, not AI capability. Whether an agent can accurately answer "will this IPC run year-round outdoors in North Africa" depends entirely on whether your attributes are structured. Roughly 70% of Tenten's engagement hours on this project went to schema engineering. The agent layer itself was about 15% of the budget.
unoPIM's MIT license and built-in agentic core made it the right fit for this project. For a 12-week timeline with a Laravel-experienced team, it outperformed Akeneo CE and Pimcore on the criteria that mattered: AI provider flexibility, open-source Shopify connector, and Maker-Checker workflow out of the box.
Shopify B2B's April 2026 expansion to all paid plans is a genuine inflection point, but catalog limits mean plan selection requires careful math. If your B2B operation needs more than three catalogs per store, Plus is still the only path.
Agentic commerce in industrial B2B isn't full automation — it's sales rep leverage. The goal is eliminating the 80% of rep time spent on spec-pulling and quote-building, not replacing the human judgment required for $50,000 purchase decisions.
If your B2B operation looks like Neteon's — legacy PIM, multiple storefronts, Shopify B2B on the roadmap but stuck on the data layer — spend the first four weeks doing an attribute audit before you talk about agents. Reverse the order and AI simply amplifies the consequences of your existing data chaos.