Guide

QuickBooks Connector: Two Companies, Invoices, and Bundles

Can separate Magento websites connect to different QuickBooks Online companies, use the Intuit sandbox, and wait to invoice until the order is Complete?

Separate Magento websites (Ireland and UK) can each connect to a different QuickBooks Online company. Use scope mode Website and OAuth on each website. Store views in one website cannot. Magento 2.4.6-p15 and PHP 8.2 are supported (2.4.x, PHP 8.1-8.3). The Intuit Developer sandbox is supported: Environment Sandbox or Production per website. Invoice export cannot run with order export off. Enable Order Export. Unpaid orders always become a QuickBooks invoice, never a sales receipt. Paid orders use Document Type, default Invoice, so sales receipts stay off. Payment export runs only if money is already captured on that export. A later payment does not sync alone. Set Order Status Allowlist to complete to wait until the order is Complete, or resync with Sync Invoice to QuickBooks after payment. Fixed-price bundles send one invoice line at the bundle price and skip child simples. Dynamic-price bundles price the children; those lines are skipped, so the parent can export at $0. Skip or flatten only creates QuickBooks items, not invoice prices. 77 bundles and 1742 simples use this rule. An unmapped parent uses QuickBooks item Services and keeps the Magento name, SKU, and amount.

This is the setup note for a Magento 2.4.6 store on PHP 8.2 that sells in two countries, Ireland and the UK, and keeps a separate QuickBooks Online company for each business.

Two QuickBooks companies at the same time

Yes, when Ireland and the UK are separate Magento websites. Set Connection Profile Scope Mode to Website (that is the default), then connect OAuth on the Ireland website and again on the UK website. Each website keeps its own QuickBooks company, client credentials, and environment.

Store views inside one website cannot each point at a different QuickBooks company. The admin list includes a store-view scope, but order sync does not support it yet. Use two websites, not two store views, for two QuickBooks companies.

Magento 2.4.6 and the Intuit sandbox

Magento 2.4.x and PHP 8.1, 8.2, or 8.3 are the supported range, which includes Magento 2.4.6-p15 and PHP 8.2. The Intuit Developer sandbox is supported. On each website, set Environment to Sandbox or Production before you connect. Sandbox and production are different Intuit companies, so connect again after you switch.

Invoices without sales receipts, including invoices paid later

Invoice export cannot run while order export is turned off. The sync queue creates the QuickBooks invoice from the Magento order, and that queue runs only when Enable Order Export is on. The separate invoice-export flag is not what starts the sync.

There is no on/off switch named sales-receipt export. An order that is not fully paid always exports as a QuickBooks invoice, never a sales receipt. An order that is already fully paid follows Paid-at-Checkout Document Type. The default is Invoice. Leave it on Invoice and sales receipts are not created.

Turn on Enable Payment Export as well. A payment is queued only when a captured amount already exists at the moment that order export succeeds. If the order is exported while it is still unpaid, the later payment does not start its own sync. After the customer pays, use Sync Invoice to QuickBooks on that order so a new export can queue the payment.

Waiting until the Magento order is Complete

Yes. Order Status Allowlist controls automatic sync. The default is often processing,complete. Set it to complete and the first export waits until the Magento order status is Complete. Do that when you want the QuickBooks invoice and the payment to go together, after the order is paid and finished. If you export earlier, while the order is unpaid, you get an open QuickBooks invoice and you must resync after payment.

Fixed-price and dynamic-price bundle invoice lines

Invoice lines use the parent order line only. Child simple lines are skipped, whether you have 77 bundles and 1742 simples or a smaller catalog. The count does not change the rule.

A fixed-price bundle keeps its price on the parent, so QuickBooks gets one line at the bundle price. The child simples are not separate invoice lines.

A dynamic-price bundle keeps its price on the child lines in Magento. Those children are skipped, and the parent row is often zero, so the QuickBooks line can export at $0. The QuickBooks total will not match the Magento order for that bundle until the line mapping is changed. Plan on fixed-price bundles if each kit should be one priced invoice line.

Bundle / Grouped Export Strategy (skip parents, or flatten to child simples) only decides which catalog items are created in QuickBooks. It does not split invoice prices across the simples. If the bundle parent was skipped and has no QuickBooks item, the invoice line falls back to the QuickBooks Services item and still sends the Magento name, SKU, and amount.

The longer setup steps are in the QuickBooks Connector user guide. The extension is QuickBooks Connector.

Frequently Asked Questions

Can Ireland and UK websites connect to different QuickBooks companies at the same time?
Yes. Use separate Magento websites, set Connection Profile Scope Mode to Website, and connect OAuth on each website. Store views inside one website cannot each use a different QuickBooks company.
Is the Intuit Developer sandbox supported on Magento 2.4.6 and PHP 8.2?
Yes. Magento 2.4.x and PHP 8.1, 8.2, or 8.3 are supported, including 2.4.6-p15 and PHP 8.2. Set Environment to Sandbox or Production on each website before connecting.
Can invoice export run while order and sales-receipt export are disabled?
No. The QuickBooks invoice is created from the Magento order, and that runs only when Enable Order Export is on. There is no separate sales-receipt switch. Unpaid orders always export as invoices. Fully paid orders use Paid-at-Checkout Document Type, which defaults to Invoice. A later payment does not sync by itself; resync the order after it is paid, with Payment Export enabled.
How are fixed-price and dynamic-price bundle invoice lines handled?
Only the parent order line is sent. Child simples are skipped. A fixed-price bundle is one QuickBooks line at the bundle price. A dynamic-price bundle prices the children, so those lines are skipped and the parent can export at zero dollars. Skip or flatten only creates catalog items. 77 bundles and 1742 simples follow the same rule. An unmapped parent uses the QuickBooks Services item.
Can invoice sync wait until the Magento order is Complete?
Yes. Set Order Status Allowlist to complete. Automatic sync then waits until the order status is Complete. The default list often includes processing as well, which exports earlier.

Related Products

My Cart

Loading...

Customer Login

Checkout as a new customer

Creating an account has many benefits:

  • See order and shipping status
  • Track order history
  • Check out faster