Docs
/
EN DE

Shopify

The Shopify integration is in development and rolling out as early access. If you would like to use it for your store, your account manager enables it for you.

Connect your Shopify store and your bookkeeping runs itself: every order is posted automatically, payments are booked against the right account for each payment provider, refunds become credit notes, and cancellations follow through — all as they happen in the shop. Updates never duplicate anything: when an order changes in Shopify, the existing booking is updated, not booked again.

The integration requires the Shopify permission. You’ll find it under Integrations → Shopify.

How orders are booked

Orders can be posted in one of two forms — pick once on the Connection tab:

  • AR transactions (the default) — every order line is booked straight to a revenue account as one line of an AR transaction, described with the product name and its variant (for example Zermatt Ski Camps / December 6-12 | Level 1-3 | Single room cozy). No service items are needed, which makes this the right choice for shops with many products or variants.
  • Sales invoices — order lines are mapped to your services and posted as a sales invoice. Enable Post orders as sales invoices on the Connection tab if you want full invoice documents.

Orders that were already posted keep their current form — switching the toggle only affects orders posted afterwards.

Discounts are always taken from Shopify per order line. On AR transactions they post as their own negative Discount lines; on sales invoices they post as a discount percentage on the line itself. Either way the booked total always matches the Shopify order total exactly.

Connecting your store

neoo talks to Shopify through a custom app that you create once in the Shopify Dev Dashboard and install on your store. Enter its credentials on the connect card:

Field What it is
Store domain Your store’s address, e.g. my-store.myshopify.com
Client ID From the custom app in the Shopify Dev Dashboard
Client secret From the same app

Click Connect. Once connected, the page shows your store name, its domain and currency, and a Connected chip.

One-time setup under Settings

Before importing anything, tell neoo how shop amounts map to your books on the Settings tab. This is a one-time job.

Booking. Everything a mapping rule doesn’t cover — including shipping, tips and gift cards — books to the catch-all:

  • With AR transactions: the Catch-all revenue account, plus an optional Catch-all tax that determines the VAT included in those amounts.
  • With sales invoices: the Catch-all service, which carries the revenue account and VAT rate itself.

Payments. Map each Shopify payment gateway to the account it settles against — for example Stripe to your Stripe account, bank transfers to the transfer account. When an order is paid, the payment is booked straight to the mapped account.

Other.

  • AR account — the receivables account for shop orders; leave it empty to use your default.
  • Fallback customer — used only for orders that carry no customer details at all (for example POS cash sales). Guest checkouts don’t need it: the name, email and address entered at checkout create or match a real customer, even without a shop account.

Click Save Settings when done.

Item Mapping rules

The Item Mapping tab decides where each order line is booked. Rules are evaluated top to bottom — the first matching rule assigns the target, and anything no rule matches goes to the catch-all. That means you can start simple (everything on the catch-all) and add rules only where revenue needs to be split. This is especially handy for shops with many product variants: one rule on the product covers every variant, and the variant still shows up in the line text.

A rule has a name, up to 10 conditions, and what it assigns: a revenue account with an optional tax (AR transactions), or a service shown with its tax signature (sales invoices). Conditions test order-line fields:

  • Field — SKU, Variant title, Product title, Product type, Vendor, Tags, Gift card, or a Line property (with its property name)
  • Operator — equals, contains, starts with, ends with
  • Value — what to compare against

All fields in a rule must match; several conditions on the same field count as alternatives (OR). So “Product type equals Coaching AND Tags contains online” needs both, while two SKU conditions match either SKU.

Reorder rules with the up/down arrows — put your most specific rules on top, since the first match wins. A rule can be deactivated with its Active checkbox without deleting it.

Going live

On the Connection tab, click Register Webhooks. Webhooks are what keep bookings in sync with the store automatically — new orders, edits, payments, refunds and cancellations flow in as they happen. Registered topics appear as green chips.

Until webhooks are registered, orders will not sync automatically — the page warns you as long as none are registered.

The Orders tab

The Orders tab is your control room: every order the integration has seen, with search, a status filter and a refresh button. If anything failed, a failure count is shown up front.

Column Meaning
Order The order number — links to the order in your Shopify admin
Date / Customer / Total Order basics
Status Imported, Updated, Cancelled, Failed, Skipped (test), or Deleted in Shopify
Document Links to the posted AR transaction or sales invoice in neoo
Reason For failed orders, what went wrong

Two actions on each order help when something looks off:

  • Processing trace — shows exactly how the order was booked, line by line: each item with its SKU, quantity, gross amount and discount, which mapping rule matched and where it booked to; each payment with the account it went to; refunds and the credit notes they created; and the reconciliation from the Shopify total through rounding to the booked amount.
  • Re-import from Shopify — fetches the order again and reprocesses it. This is always safe: re-importing updates the existing booking, it never creates a duplicate. Use it after fixing a mapping rule or a setting that made an order fail.

Historic Import

Webhooks only cover orders from registration onward. To bring in the past, use the Historic Import tab: pick a From/To date range and click Start Import — all orders created in that range are imported, with progress shown as processed / total (new, updated, failed).

Historic imports are safe to re-run: existing orders are updated, never duplicated. Running the same range twice, or overlapping ranges, causes no harm.

Disconnecting

Disconnect store on the Connection tab removes the stored credentials and the registered webhooks. Everything already booked stays: posted documents are kept. You can reconnect later with the same or different credentials.