Starting point
- Business: flooring wholesaler. The client is not named.
- Previous system: Zoho, in use for 15 years.
- Customization: an outside consultant added fields, modules and scripts for each new need.
- Data outside Zoho: XLS spreadsheets, CSV exports, database backups, PDFs, Dropbox folders and web pages.
- New system: CommerceServer, built and changed with Buffaly.
Timeline
- Data model: a couple of days to build an ontology of the business, naming customers, products, vendors, orders, purchase orders and invoices and the links between them.
- Schema: the CommerceServer schema was changed to fit the model. Custom fields became proper fields or relationships, and scripts became rules in the model.
- Import: an automated pipeline loaded 15 years of data, hundreds of thousands of records, in minutes per full run. It was rerun after every correction.
- Parallel run: one month.

Checks
- Fields compared with a backup of the old data: 293,986.
- Differences at the end: 0.
- Exceptions traced to source documents: 43 (35 order dates, 5 products, 3 other).
- Order dates were recovered from the time the original order email was received.
- Invoices that could not be proven against a source document were kept and labeled as historical source invoices.
Parallel run
- Staff kept working in Zoho and emailed the PDF Zoho produced.
- Buffaly agents read each file into the model, checked it and entered it in CommerceServer.
- When a file arrives in a layout the agents have not seen, Buffaly writes a new reader for it and uses it in the same session. We consider this key to how Buffaly works. See Buffaly Builds Its Own Tools.
- Details: the parallel run.
What was built
- Every feature and report the business requested.
- Custom workflow, custom business rules and custom reporting, all supported in CommerceServer. The business never had these in 15 years on Zoho.
- A B2B portal where customers log in, check inventory and submit purchase orders, running on the same data staff use.
Results
- Off Zoho.
- No outside consultant.
- No Zoho license fees.
- B2B portal live.
Follow-on migration
- A sister company started its own migration right after the first.
- What was learned moving the first company became the tools for the second: the import method and the checks run before and after each load. See the second migration was the easy one.
Questions to ask about your own migration
- How many fields will be compared with the old data, and how many differences may remain at the end?
- How long does one full import take, and can it be rerun from scratch after each correction?
- Who does the entry while both systems run, and how are files in a new layout handled?
Method articles
- Don't copy your old database: design the data model first
- Why your data import should be rerunnable
- What a flooring distributor's data model looks like
CommerceServer is built, run and continually improved by one accountable team, with the improvement capacity agreed for each engagement. Tell us about your current system, or read how full service works.