An address is bought online.Each digit becomes a part.
Mon Adresse Civique’s ERP, designed and built by Witify. It reads every order, from the web or from a contractor, works out its parts, tells the workshop what to make and books it in QuickBooks.
Five numbers about the ERP, and where they come from
Before following an order, a measure of what was built: rules written once, a check every minute and a catalogue of parts.
17
product types, each described by its rules
One rule per type, written once.
37
parameter types, each with its own validation
Size, colour, orientation, door number, mounting…
1min
between two checks for online store orders
The ERP fetches them every minute.
Over2,000
parts in the inventory catalogue
Each with its own minimum.
6
sources of stock movement, every one traced
Reception, transformation, order closing…
Figures taken from the ERP’s code and the application on November 13, 2026.
02The order
From the online store to the workshop, with nothing retyped
One online store order, followed from the moment it lands to the moment it closes. Nobody types it in again: the ERP reads it, breaks it down into parts and tells the workshop what is missing.
01Arrive
The ERP checks the store every minute.
The web order shows up at the top of the list, In progress, with the green sync check: accepted, started and booked as a sales receipt in QuickBooks without a click. B2B orders wait beside it; they reach the books when they close.
mon adresse civiqueNRNadia R.Office
Operations
Orders
Tasks
Production
Inventory
Purchase orders
Contacts
Clients
Providers
/Orders
Orders
New order
Search...
StatusAllNewAcceptedIn progressClosedCancelled
#
Status
Sync
Accepted at
Client
Source
Subtotal
Paid
ORD80412
In progress
2026-11-13
Julie P.
Shopify
CA$189.00
Yes
ORD80411
Accepted
2026-11-13
Atelier Alpha
B2B
CA$1,240.50
No
ORD80410
In progress
2026-11-12
Karim B.
Shopify
CA$96.00
Yes
ORD80409
Error
Élise G.
Shopify
CA$212.40
Yes
ORD80408
Accepted
2026-11-12
Construction Bêta inc.
B2B
CA$3,815.00
No
Fig. 01Order listStep 01 / 05
02Read
A line of text becomes a configured product.
The store sends the product name as free text. The ERP picks out the model and every choice the customer made: size, colour, language, orientation, door number. It then recalculates the total and checks it against the store’s.
mon adresse civiqueNRNadia R.Office
Operations
Orders
Tasks
Production
Inventory
Purchase orders
Contacts
Clients
Providers
/Orders/ORD80412
ORD80412In progress
Edit
GeneralPiecesQuickbooksAdjustmentsHistory
Order summary
Description
Notes
Quantity
Price
Discount
Subtotal
Altitude plaque x 1Size - 9''Colour - BlackLanguage - FrenchOrientation - HorizontalDoor number - 2418
1
CA$189.00
CA$189.00
Shipping fee
CA$15.00
GST/QST - Quebec (QC)
CA$30.55
Total
CA$234.55
Fig. 02A web order, read and taxedStep 02 / 05
03Break down
Four digits, four character parts.
The product’s rule turns the configuration into exact parts: one character per digit in the chosen colour, the four-digit jig, the box, the insert, the label, then a fraction of a roll of paper and of tape. Everything is worked out again whenever the order changes.
Stock is allocated to orders in progress, in order of their numbers; whatever it cannot cover has to be made, down to the sub-parts. Here, three orders need an 8: two are in stock, one has to be made. The list also counts what must be made to bring a part back to its minimum.
mon adresse civiqueNRNadia R.Office
Operations
Orders
Tasks
Production
Inventory
Purchase orders
Contacts
Clients
Providers
/Tasks/To produce
Tasks
To produceTo orderOrdersInventory
To produce
PieceAllCHFJIGPKGMLBMTLACSOther
Piece
Quantity required
Quantity allocated
Quantity to produce
CHF-ALT-12-WHT-0
5
2
3
CHF-ALT-9-BLK-8
3
2
1
MLB-MUR-H
4
1
3
MLB-MUR-H-DOS
3
0
3
MLB-MUR-H-FACE
3
1
2
CHF-ALT-9-WHT-7
20
0
4
Fig. 04Tasks: to produceStep 04 / 05
05Close
An 8 is missing. It shows at once.
Every order in production shows, part by part, what stock covers: green when covered, amber when short. Once the 8 is added to stock, the missing quantity drops to zero; when the store marks the order shipped, the ERP closes it and deducts its parts from stock.
A plaque is configured: model, digits, colour, orientation, mounting. Rather than keep a parts list for every combination, each product type is described by its rules, and every assembled part has a tree of its own. A part can use a fraction of another, and the cost price is worked out through the tree.
Fig. 06The tree of a mailbox: its components and their quantities
04Day to day
What the office and the workshop see every day
Four everyday screens: the order to fix, the stock under its threshold, the partial reception and the part as the workshop sees it. Every stock movement keeps its source and who made it. B2B clients, for their part, place and follow their orders in a portal of their own.
Orders
An order that does not add up waits
Neither rejected nor started: marked Error, with its reason.
/Orders/ORD80409
ORD80409Error
Edit
GeneralPiecesQuickbooksAdjustmentsHistory
Errors
Missing parameter: door_number
Cancel orderCancel order
Cancel order
Accept orderAn accepted order is approved by the administrator
Inventory
The minimum sets off the alert
Amber at or under the threshold, red at zero; an email every Monday.
/Tasks/Inventory
Tasks
To produceTo orderOrdersInventory
Search...
Name
Quantity available
Minimum quantity
In production
Ordered
15 in box
0
60
0
150
Box insert
84
100
4
300
9 in box
412
150
4
0
Label
2,300
1,000
4
0
Mounting screws, bag of 4
1,860
500
0
0
Mailbox lock
35
20
0
0
Purchasing
A partial reception stays in sight
What came in is in stock; the rest stays open on the purchase order.
/Purchase orders/PO7315
PO7315Partial
Edit
Receptions
Pieces
Received
PKG-CTN-9-FR
200 / 200
PKG-CTN-15-FR
0 / 150
PKG-CALE-FR
0 / 300
Shippings
Reception date
PKG-CTN-9-FR x200
2026-11-09
Workshop
Every part has its workshop page
Its QR code leads there: the count is adjusted, the movement traced.
/Tasks/Inventory/CHF-ALT-9-BLK-8
CHF-ALT-9-BLK-8
InventoryStockHistoricalQR code
Stocks
Available2In production3Cost priceCA$1.84
Quantity to add/remove10Apply
05Our choices
Three choices so that every order lands right, from the web to the books
Three decisions mattered more than the rest. For each: the risk to avoid, what we chose, and what Mon Adresse Civique gains.
01
Rules rather than a table of recipes.
The risk
A parts list for every combination of model, colour and size, growing with every new product until it contradicts itself.
Our choice
Each product type is described once by its rules: one character per digit, the box by the size, the jig by the orientation and the number of digits. A part that cannot be found stops the order with the list of missing codes.
The gain
A new model is one more rule, and every order after it works out its parts correctly.
02
An order that does not add up waits.
The risk
A web order with an unknown product or a different total, made wrong or forgotten.
Our choice
It is saved without being started, marked as an error with its reason. The others go through on their own.
The gain
The doubtful order stays in sight until someone fixes it, and the others do not wait for it.
03
Accounting gets a frozen snapshot.
The risk
An order changed after the fact alters a sale already booked, or reaches QuickBooks twice.
Our choice
Every status change freezes a copy of the order. QuickBooks receives it once: when it starts for the web, when it closes for B2B. A price change after that becomes an adjustment.
The gain
A booked sale no longer changes after the fact, and nobody types it in again.
06Under the hood
One application, wired to the online store and to QuickBooks
One Laravel application runs two interfaces, the office and workshop on one side, the client portal on the other, and talks to the online store and to QuickBooks.
Application
Laravel, PHP, MySQL database
Interfaces
Vue, office and workshop, client portal, in French and English
Online store
Shopify, orders fetched every minute, closed on shipping
Accounting
QuickBooks Online, sales receipts, invoices, adjustments; customers, suppliers and taxes
Documents
PDF and Excel, quote, invoice, packing slip, purchase order; reports
Key milestones
February 2022Go-liveOrders, parts and bills of materials, purchase orders, workshop tasks, store import and QuickBooks.
June to November 2022TraceabilityHistory of every part, change log of every order, sales report by product.
Summer 2023A richer client portalEmails when an order is created, accepted and started, delivery options, the client’s language.
December 2023QR codesEvery part has its code, which opens its workshop page.
2025Sales sorted in QuickBooksEvery sale is sorted by channel and by province.
Fig. 07What went into service, one delivery after another.
Working with Witify is simple and efficient. They created an ERP system specifically for us that meets our specific needs.
Marjolaine Audet-RobertManaging Partner, My Civic Address
Your products are configurable, but you still count parts by hand?
Give us thirty minutes and one of your products: we will break it down into parts with you.