Fina ↔ WooCommerce — quick-start
Keep Fina (your accounting software) and WooCommerce (your shop) on the same page: products, stock and prices push automatically on a schedule you pick. This guide is end-to-end, around 30 minutes; budget another 10-20 for the first manual sync to settle if you have a large catalogue.
fina-syncBefore you begin
Three things to gather. The first sync goes much smoother when you don't have to leave mid-flow to chase a credential or fix a SKU collision.
- An active Fina accountwith API access enabled. Ask your Fina account rep to turn on the API integration for your subscription tier; it isn't exposed in the self-serve UI.
- Three values from Fina: API base URL, API login, API password, plus a numeric price type ID identifying which Fina price column to read (most stores use
1; ask your rep if you maintain multiple price lists). We'll paste these into the plugin in step 5. - WordPress admin access, and WooCommerce already installed and active. Fina is always the source of truth for prices and stock — the plugin pulls Fina → WooCommerce only.
Buy a Fina ↔ WooCommerce license
Open the Fina sync product page and click Buy license. License is ₾450 / year per domain with a 14-day no-questions refund window.
Download the plugin ZIP
Sign in and open codeon.ge/downloads. Find Fina ↔ WooCommerce and click Download.
Install the plugin in WordPress
In your WordPress admin, go to Plugins → Add New → Upload Plugin. Select the ZIP you downloaded, click Install Now, then Activate Plugin.
Once activated, a new top-level Fina Sync menu appears in the WordPress admin sidebar (it sits at the top level, not under WooCommerce). The yellow admin notice prompts for your license key — click Enter license key to land on the License tab.
Activate your license
Paste your license key into the License key field and click Save changes.
- A green Active badge with your expiry date (one year from purchase).
- Your store's domain shown as the bound domain — license keys bind on first use.
- The Settingstab unlocks (the License tab's text box now hides itself; status, key, plan and renewal date stay visible).
Connect to your Fina account
The Settings tab is where you paste your Fina credentials, pick the price column to read, and set the sync cadence.
- API base URL
- The Fina API endpoint your account uses. Get this from your Fina account team if you're not sure.
- API login
- Your Fina API username. Often distinct from your Fina dashboard login — the API user is created separately.
- API password
- The password Fina issued for the API user. Stored encrypted; the plugin caches a bearer token from this for 25 minutes at a time so the password isn't sent on every request.
- Price type ID
- Numeric id of the Fina price column to read.
1for most stores. Ask your Fina rep if you maintain multiple price lists (retail, wholesale, B2B, etc.). - Schedule (Hours / Minutes)
- How often the sync fires.
1 houris a reasonable default; smaller values are fine for high-velocity catalogues. Set both to0for manual-only sync. - Batch size
- Products processed per Action Scheduler tick. Default
150; allowed range10-500. Bump up if your host is fast and you want a big catalogue to catch up quicker; drop down if you see memory or timeout errors in the WP error log.
Click Save changes. The plugin pings Fina's authentication endpoint with the login + password and shows a green Connectedbadge if the handshake succeeds. A red badge means Fina rejected the credentials — usually a typo in the password, or the API user hasn't been activated on Fina's side.
Run your first import manually
Before letting the schedule fire, run one manual import so you can watch the result. From the Dashboard tab (top-level Fina Sync → Dashboard), click Import. The plugin pulls every product from Fina, maps fields, and creates / updates WooCommerce rows. Subsequent Update runs use an incremental watermark and only touch products that changed since the last successful sync.
- Products in sync:total count of WooCommerce products linked to a Fina record. After the first run this should equal the count of products in Fina (or close to it — a small gap means SKU collisions you'll resolve below).
- Stock / Price changes today: shows what the run actually changed.
- Recent runs: the last few sync runs with status (OK / Warn / Failed). Click into a row to see the line-by-line log; logs are kept for 60 days and exportable to CSV.
Let the schedule take over
Once you've verified one manual run, the scheduled sync takes care of itself. There's nothing to flip — the schedule you picked in step 5 fires from the moment you saved the connection.
Day-to-day operations
Three things you'll want to know once the sync is live:
- Where to see what's happening: Fina Sync → Dashboard(the menu sits at the top level of the WP admin, not under WooCommerce). KPI tiles + recent-runs table show today's changes and the last ~30 runs.
- How to force a sync right now: Import (full pull) or Update (incremental, watermark-driven) on the Dashboard. Both are also exposed on the WooCommerce products list toolbar. Useful right after you bulk-edit prices in Fina.
- Where to see why a run warned or failed: click any row in the recent-runs table. The detail view lists every product that didn't sync cleanly with the reason (SKU collision, Fina ID collision, missing field, Fina API error, etc.). The same logs are available via WooCommerce → Status → Logs and exportable to CSV.
- WP-CLI alternative:
wp fina-sync import,wp fina-sync update,wp fina-sync status. Useful for running from cron outside WP-Cron, or for unattended scripts.
Common errors and what they mean
License key doesn't cover this plugin- You pasted a payment-plugin license into the Fina plugin. Each plugin has its own license — check /licenses for which key is which.
Fina: 401 unauthorized- Wrong API login or password, or the API user hasn't been activated yet on Fina's side. The plugin caches the bearer token for 25 minutes — if you just rotated the password, save Settings to flush the cache.
SKU collision: N products skipped- Two products on different sides share a SKU but represent different things. Open the run detail, rename or merge the offenders, and the next run picks them up.
requires PHP version 8.1 or higher- Your host is on PHP 7.4 / 8.0. Bump the PHP version from your hosting control panel and re-activate the plugin.
Fina: rate limit exceeded- Fina caps the API at ~60 requests/minute per token. Hourly sync stays well under this; if you set a custom cron that fires every minute, drop it back. The plugin retries with exponential backoff so a single rate-limit hit isn't a real problem unless it happens every run.
Next steps
- Add a payment plugin if you haven't already — TBC Card, BoG Card, or Flitt — so the catalogue you're syncing actually has a checkout.
- Building automation around sync events? The integrator docs cover the run-completion webhook and the public REST surface.