1. Map the menu that already exists
We list every item, modifier, price and tax code sitting on the terminals today, then compare that list against the menu the venue believes it sells. The two never match on the first pass. There are duplicate items from a New Year event, a spelling that only one bartender uses, and a modifier nobody has priced in a year. Cleaning that list is the first real day of work, and it happens whether or not anything gets connected.
2. Decide the source of truth per field
Not per system, per field. Item names and prices are owned by one side. Tax codes usually stay with the POS because that is where the accountant already looks. Packages, table fees and minimums are owned by Fennec because that is where the floor plan lives. If both sides can edit the same field, that field will eventually disagree with itself, and it will do it on the busiest night of the month. We write the ownership down and both sides sign it.
3. Handle items that exist on one side only
Some items live only on the POS: a staff drink, a house shot, a legacy button. Some live only in Fennec: a bottle package priced for a table, an event-night minimum. Each one gets a rule rather than a guess. Map it to a counterpart, mirror it across, or mark it deliberately local so the sync never touches it. Unmapped items are listed and shown to the owner, never silently dropped and never silently created.
4. Reconcile after one real service
The first night runs on both systems and then gets reconciled line by line. Pours are checked against sales, tabs against tables, tips against the payout the staff expect. Whatever the mapping got wrong shows up here, which is exactly why we do it on a real service instead of a test. Overpours and missing inventory get flagged rather than argued about, and that reconciliation becomes the routine the bar keeps.