case study · factory commerce

GPNet: A 20-Year Factory Grows a Storefront That Talks

海水不可斗量數位工作室 (OceanAds) is a digital operations studio based in Taichung, Taiwan, that provides website development, Google Ads management, SEO, and workflow automation for small and medium-sized businesses, built as one system so a brand can launch, take orders, track performance, and iterate. This case study covers GPNet, a precision packaging materials factory, and the commerce platform we built to replace its decade-old spec-sheet website.

Published: 2026-08-03 · Updated: 2026-10-11 · Client: GPNet Precision Packaging Materials (gpnet.tw) · Service: e-commerce platform, AI integration, data migration

GPNet packaging materials commerce platform built by OceanAds

The Brief, in the Owner's Words

GPNet has manufactured packaging materials — OPP bags, courier bags, stand-up pouches, custom printing — since 2006. Its old ASP.NET website worked, but as the owner put it, it looked like a price list taped to a factory wall: existing customers kept ordering, new visitors could not tell what the company was capable of. His one-sentence brief became the project's compass:

"I don't need a flashy website. I need a website that makes a customer willing to place an order directly."

That translated into four operational problems: customers ranging from craft hobbyists to monthly-container wholesalers who cannot be shown the same pricing; an AI assistant that must never guess about material safety; custom-print inquiries that used to die in phone-and-fax purgatory; and 5,274 legacy customer records that could not lose a single entry.

Two AIs, Not One — and Hard Guardrails

The obvious build — one chatbot for everything — fails here, because answering product questions and collecting a custom-quote inquiry are opposite conversations. So the platform runs two fully independent assistants:

  • A floating support AI that answers what can be answered safely: product specs, public retail prices, stock, shipping times, and order status.
  • A custom-quote intake AI on a dedicated page that works the other direction — asking item type, dimensions, quantity, and contact details step by step, then assembling a summary the customer confirms before sending.

The guardrails were negotiated with the owner line by line across two afternoons, then enforced in code, not just in the prompt. The AI does not answer heat or acid tolerance questions, does not quote custom work, does not promise delivery dates, and does not assess sampling feasibility — packaging specs answered wrongly can mean an entire spoiled shipment. When a question crosses the line, the AI says a salesperson will confirm, and means it. One more hard rule: no lead is ever created without a contact method. An inquiry the owner cannot call back is noise, not a lead.

When an inquiry completes, the owner's phone receives a LINE Flex card — item, quantity, contact name, phone, spec summary, and a button into the back office. From a customer opening the page to the owner holding a qualified lead takes under 5 minutes. The AI's system prompt itself lives in an admin interface with versioning, so the owner tunes his assistant's personality without calling an engineer.

Pricing Logic a Customer Can Understand

Instead of a permanent VIP ladder that quietly bleeds margin, membership runs on a 30-day rolling window — recent purchasing earns the discount, lapsed purchasing releases it. The thresholds came from the owner's twenty years of customer knowledge, not from us:

  • Gold VIP: NT$8,000 in 30 days → 3% off. Platinum: NT$13,000 → 5% off. Black Diamond: NT$20,000 → 8% off.
  • Cart-level retail discounts (5+ units and 35+ unit tiers) never stack onto wholesale prices — the two discount layers are computed separately so checkout math stays legible.
  • Monthly-billing eligibility is computed automatically — NT$10,000 over 3 months plus NT$20,000 over 6 months — with a live progress bar in the member center, and the owner can still manually approve exceptions.

The migration was the least visible, hardest part: 3,738 registered members plus 1,536 unregistered customers in incompatible formats, with 483 phone-number collisions across tables. We normalized phones and addresses, imported 4,107 records automatically, and built a review screen where the owner adjudicated the 483 ambiguous merges himself — because some judgments only the person who knows the customers can make.

5,274 recordsLegacy members and customers processed in the migration — none discarded.
483 mergesAmbiguous duplicates routed to human review instead of risky auto-merging.
8% offTop VIP discount, earned on a 30-day rolling window rather than granted for life.
5 minutesFrom a customer opening the inquiry page to a qualified lead on the owner's phone.

What This Case Demonstrates

Nothing in this project was a template feature. The discount boundaries, the AI's refusal rules, the no-contact-no-lead policy, the rolling VIP window — each encodes a business judgment the owner had been making by hand for twenty years. That is what we mean when we say a website should be an operating system rather than a brochure. Shortly after launch the owner sent us a message: a brand new customer had chatted with the AI, left a spec and a phone number, and become a lead — the kind of visitor who used to glance at the old site and leave. The full Chinese narrative of this project is on our blog.

Old Site vs New Platform

The table below condenses what changed between GPNet's old ASP.NET website and the new platform, including the costs the change brought with it.

Dimension Old website (ASP.NET) New platform
Custom-print inquiries Phone call, faxed specs, wait for a quote — many customers dropped out along the way AI collects the requirements over several turns; a LINE card reaches the owner within 5 minutes
Customer support Human replies during office hours only AI answers specs, prices, stock, and order status around the clock
Member tiers No tiers; one price for everyone Three VIP tiers on a 30-day rolling window (3% / 5% / 8% off)
Monthly billing Decided by hand and verbal agreement Eligibility calculated automatically, with live progress in the member center
Customer data Two separate data sets, inconsistent formats, 483 duplicates Normalized and merged: 4,107 imported, suspected duplicates reviewed by the owner
What it cost the owner — Several months of collaboration, two afternoons defining AI rules, and one afternoon reviewing 483 records himself

How We Did It, Step by Step

  1. Listen before designing. The project began with a long meeting where the owner showed us the old site, explained the difference between OPP and PE, and walked us through the production line. His brief — a site that makes customers willing to order directly — set the direction.
  2. Simplify pricing on a whiteboard. While drawing discount logic, the owner himself stopped at the third layer: "If customers can't understand it, it doesn't matter how good it is." We converged on two layers — how much you buy this time, and how much you usually buy.
  3. Write the AI's rules with the owner. Over two afternoons we went line by line through what the AI may answer (specs, public retail prices, stock, shipping times, order status) and what it must hand to a salesperson (material tolerance, custom quotes, delivery guarantees, sampling). The rules were then enforced in code.
  4. Split the AI into two roles. A floating support assistant answers; a separate custom-quote assistant asks. Keeping them independent avoids confused conversations and duplicate notifications.
  5. Design three behaviors for one page. On the custom-inquiry page, a visitor is asked for requirements and contact details; a member with LINE linked is only asked about the requirement; a member without a contact method is asked for one, because no lead is created without it.
  6. Iterate the owner's notification. The LINE Flex card went through three versions — too sparse, then too crowded — before settling on title, item, quantity, contact, phone, a spec summary, and a back-office button.
  7. Build the member and billing rules. A 30-day rolling VIP window with thresholds the owner set, cart discounts that never stack onto wholesale prices, and automatic monthly-billing eligibility with a manual override.
  8. Migrate the data with four buckets. Records were sorted into import directly, skip because already present, skip because of missing fields, and send to manual review. Phone numbers and old-versus-new address formats were normalized first so duplicates could be detected.
  9. Hand over control of the AI. The system prompt lives in the back office with versioning, so when the owner wanted warmer replies he edited it himself.
  10. Polish the details. Replies type out gradually, conversations are kept in the browser for two hours and cleared after sending, and the inquiry page has no footer so the customer stays focused on finishing the request.

OceanAds (海水不可斗量數位工作室) built GPNet's platform with two independent AI assistants whose answer limits are enforced in code, so a custom-print inquiry reaches the factory owner's LINE as a qualified lead within 5 minutes.

Who a Similar Project Fits — and Who It May Not

A similar project is likely a good fit if you:

  • Run a factory or B2B business whose customers range from small buyers to large repeat accounts.
  • Earn much of your margin from custom quotes that currently depend on phone calls and waiting.
  • Have years of customer records you cannot afford to lose in a migration.
  • Want AI to take over repetitive questions while keeping professional judgments with people.

It may not be the right fit if you:

  • Sell a small catalog at one price to one type of customer — a simpler store will do.
  • Cannot set aside time to define rules with us; the AI limits and discount boundaries came from the owner's own decisions.
  • Have no online sales or inquiry needs and do not plan to iterate after launch.

OceanAds (海水不可斗量數位工作室) does not auto-merge records it cannot verify: when a judgment depends on knowing the customer, it goes to the owner. See also our Auraway eSIM case for a business with the opposite fulfillment profile.

Case FAQ

Q: How do you stop an AI assistant from giving customers wrong answers?

By deciding with the owner, line by line, what the AI may and may not answer — then enforcing it in code, not just in the prompt. GPNet's AI answers specs, public retail prices, stock, and order status; it is blocked from material tolerance judgments, custom quotes, delivery guarantees, and sampling feasibility, and routes those to a salesperson.

Q: Why use two separate AI assistants instead of one?

Because answering product questions and collecting a custom-print inquiry are opposite conversations — one answers, the other asks. Merging them produces confused dialogues and duplicate lead notifications, so the floating support AI and the custom-quote intake AI run as fully independent systems.

Q: What happened to the factory's old customer data?

All 5,274 legacy records were processed: phone numbers and addresses were normalized, 4,107 members and customers were imported automatically, and 483 cross-table duplicates were routed to a manual review screen so only the owner — who knows his customers — decided which records merged.