Odoo Data Migration in Syria: Old Pounds, Dollars and Debt Notebooks
A practical guide to Odoo data migration for Syrian companies after the new pound: converting old-pound balances, splitting dollar and pound debts into open items, adapting a chart of accounts and importing through power cuts.
Published 2026-10-11 · METCH
Old pounds, new pounds and dollars: settle the currency first
Since 1 January 2026, 100 old Syrian pounds equal 1 new pound, and the currency code is still SYP. Odoo therefore treats both as one currency, and any old-pound figure imported unconverted is 100 times too large.
The usual trap is an amount column mixing old pounds, new pounds and dollars with no marker. Add two columns to every sheet, currency (USD or SYP) and scale (old or new), then convert before importing: a supplier balance of 45,000,000 old pounds goes in as 450,000 new pounds. If your company currency is the dollar, enter historical pound rates on the new scale too, including for dates before 2026, or dollar values come out 100 times too small.
Then fix the cut-off date, the day your old books stop and Odoo's begin, and anchor it on your fiscal year, which your annual financial statements and income tax declaration cover. Deciding now, in October 2026:
- Aim for 1 January 2027 if your fiscal year follows the calendar year, which is Odoo's default.
- Otherwise start on the first of a month, so each monthly obligation, such as salary tax withheld from payroll or the consumption spending fee where it applies, is filed from one system. Your accountant can confirm which apply.
- Count stock, and cash by currency, after the last trading day closes. Old banknotes stopped being legal tender on 31 July 2026, so any still in a cash box are not cash: list them separately, as only the Central Bank of Syria now exchanges them.
From the debt notebook to open items
Many Syrian companies come to Odoo with records spread across a customer debt notebook, a few Excel sheets and sometimes an older accounting program. The notebook is often the most current record of who owes what, so turn it into an open-items sheet: one row per customer per currency, with the oldest unpaid date, the amount still due, the currency and the scale.
A customer who owes USD 1,200 and SYP 85,000 (new) becomes two open items, one in each currency, both against the receivable clearing account. The opening trial balance has already put all customer debts, converted into the company currency, on that account, so once every open item is in, it should net to zero.
Clean the names too: the same customer often appears with and without hamza, with a taa marbuta written as haa, or in Arabic in one file and Latin letters in another. Keep one spelling per contact and merge duplicates in the sheet.
Odoo's opening-entries method covers opening balances, open invoices and bills, and an opening stock count. Leave behind years of posted transactions. Re-keying them is rarely worth the effort: the closing balances carry everything Odoo needs to continue, the detail stays in your archive, and every extra line is another chance of error. Export the old program's yearly trial balances, ledgers and statements to Excel or PDF, or scan the paper ledgers; label each file with its period and scale, and store the archive where both the accountant in Damascus and an owner abroad can open it.
Adapting a chart when Odoo has no Syrian localization
Syria is not on Odoo's list of fiscal localizations, so your database starts from a generic chart that you adapt with your accountant, along with any taxes. Map your old chart to it in a two-column sheet before importing anything, so the opening trial balance carries your old closing balances account by account.
Three patterns from older programs need a decision:
- Customer and supplier subaccounts. Many programs open a ledger account for each customer and supplier. In Odoo, customers share one receivable account and suppliers one payable account, and the contact on each line shows who owes what. Bring those people in as contacts, not as hundreds of accounts.
- Accounts per currency. A dollar cash box and a pound cash box become two cash journals, each set to its own currency, so every box is counted and reconciled on its own.
- Branch codes. Where the Damascus and Aleppo branches coded the same product differently, keep one code. Where each branch numbered its own customers from 1, keep a branch prefix so two different customers do not collapse into one, and merge a customer who buys from both.
Where an old account has an equivalent in the generic chart, rename or recode the standard account instead of deleting it: some standard accounts are defaults that invoicing relies on. Every code must be unique. Confirm the installed fiscal localization package before posting anything, since another package can only be selected while no entry has been posted.
Importing through power cuts and weak connections
Odoo's import tool reads Excel and CSV files and runs from the gear (Actions) menu › Import on contacts, products, journal entries and other records. Download the template, map the columns, press Test, then Import. Imports cannot be undone, so the way you work matters more when the power or the internet can drop mid-session:
- Rehearse the whole sequence on a test copy of the database at least once before the real date.
- Give every record an External ID built from your cleaned codes, such as customer_DAM_0042 and customer_ALP_0042. If a session breaks, importing the same file again updates the records that already went in instead of duplicating them.
- Split large files into batches, bring in contacts and products before the invoices that refer to them, and keep a log of which batch went in.
- Prepare and check files offline, so time online is spent only on uploading and testing.
- Put product costs in the company currency, converting any old-pound cost, before importing products. Stock then goes in through the inventory adjustments template, with Opening inventory as the reason and your count date as the counting date.
If a batch fails or the screen freezes, do not start the next file. First check what the last batch actually created, then import that batch again in full.
Sign-off from abroad and choosing your go-live style
Odoo's guide asks for balances to be checked before creating opening entries. Run each check per currency:
- Receivables and payables in USD and in new SYP each tie back to the debt notebook, supplier statements and the old program.
- Inventory accounts in the trial balance equal cost times quantity, summed across products.
- The cash count matches the books for each box and each currency.
Once everything is posted, the clearing accounts should net to zero. Any difference left by foreign-currency open items comes from exchange rates: agree it with your accountant and clear it to the exchange difference account, then change the clearing accounts' type to Off-Balance Sheet. Odoo 20 requires bank-account entries to come from bank transactions, so set each bank journal's starting balance on its first statement and rehearse it on the copy. An owner abroad can sign off the figures from their own user on the test copy.
Typically, a small team that would type every entry twice needs only one month-end close in parallel, then a declared stop date. A busy shop that cannot ring up each sale twice usually does better with a hard cut-over after a full rehearsal, keeping the old program read-only. Train each person on the test copy holding your own customers, products and balances.
METCH, a certified Odoo partner with a team in Damascus, runs these migrations with you in Arabic. Book a free consultation to plan your cut-off date, a conversion worksheet for old- and new-pound balances, and remote review sessions for owners abroad.
Frequently asked questions
Our old books are in old Syrian pounds. Do we have to convert all of them?
No. Convert only what goes into Odoo: closing balances, open invoice amounts and stock costs still on the old scale, each divided by 100. Historical exchange rates go in on the new scale as well, including rates for dates before 2026. The archive stays as it is. Label each report as old or new pounds, so nobody compares an old-pound figure with a balance in Odoo without dividing it by 100 first.
Should our company currency be the US dollar or the new Syrian pound?
Decide before the first opening entry. Odoo does not let you change the company currency once journal items exist, so a wrong choice is costly to undo. Ask your accountant which currency your statutory accounts and tax declarations must be kept in. Whichever you choose, activate the other currency alongside it: invoices, bills, payments and cash journals can then run in either, and Odoo converts between them at the rates you enter, on the new pound scale.
Our connection dropped mid-import. How do we see what actually got in?
Open the list you were importing into, such as Contacts or Journal Entries, and filter or group it by Created on to isolate that session. Compare the count with the rows in your batch file. If some are missing, import the same file again: rows whose External ID already exists are updated, and the rest are created. If the file had no External IDs, remove the partial records first, add the IDs, then re-import in a smaller batch.
Our open invoices are a mix of dollars and pounds. How are they imported?
Import each open invoice as one line for the amount still due, in its own currency, against the clearing account; for a foreign-currency invoice, first create a historical rate for its date on the new pound scale. An invoice issued in old pounds goes in at its remaining amount divided by 100. When a customer invoiced in dollars pays in new pounds, register it in pounds: Odoo converts it at that day's rate and, for an invoice outside your company currency, posts the rate change as an exchange difference.
Need help with this?
METCH is a certified Odoo partner serving Syria — book a free consultation.
Get a proposal