Crishik Order Sync for QuickBooks

Description

QuickBooks Extension for WooCommerce provides a simple yet powerful integration between your WooCommerce store and QuickBooks Online. Automatically synchronize your store data like orders, customers, taxes, and revenue directly with your QuickBooks account to streamline accounting and financial operations.

Key Features

  • Connect WooCommerce to QuickBooks Online in a few clicks
  • Automatically sync new orders to QuickBooks
  • Map WooCommerce customers to QuickBooks customers
  • Map taxes, shipping, and payment methods
  • Sync historical orders manually
  • View sync logs for audit and tracking
  • Secure API-based communication

This plugin is ideal for store owners who want to reduce time spent on manual accounting and ensure consistent financial reporting between WooCommerce and QuickBooks.

Requirements

  • WordPress 5.6 or higher
  • PHP 7.4 or higher
  • WooCommerce plugin must be installed and activated
  • QuickBooks Online account
  • QuickBooks API credentials (Client ID and Secret Key)

Configuration

Step 1: Get QuickBooks API Credentials

  1. Go to Intuit Developer Portal
  2. Sign in with your Intuit account (or create one if you don’t have it)
  3. Click “Create an app” or select an existing app
  4. Choose “QuickBooks Online” as the product
  5. Fill in the app details:
    • App Name: Your app name
    • Redirect URI: https://yoursite.com/quickbooks/verify (replace with your site URL)
  6. After creating the app, you’ll receive:
    • Client ID (also called App ID)
    • Client Secret (also called App Secret)
  7. Copy these credentials – you’ll need them in the next step

Step 2: Configure Plugin Settings

  1. In WordPress admin, go to QuickBooks Integration tab
  2. Enter your Client ID in the “Client Id” field
  3. Enter your Secret Key in the “Secret Key” field
  4. Click “Save Changes”
  5. After saving, a new browser window will open automatically – this is the QuickBooks authorization page
    • Note: If the window doesn’t open, you can manually visit: https://yoursite.com/quickbooks/redirect
  6. Sign in to your QuickBooks Online account
  7. Review and grant permissions to the app
  8. You’ll be redirected back to your WordPress site – the connection is now established
  9. You should see a success message and be redirected to the QuickBooks settings page

Step 3: Configure Account Mappings

  1. Go to QuickBooks Settings tab
  2. Configure the following required settings:

    Tax Code:

    • Select the tax code from your QuickBooks account that should be applied to invoices
    • This is required for creating invoices

    Sales of Product Income:

    • Select the income account from QuickBooks where product sales should be recorded
    • This is required for product synchronization

    Cost of Goods Sold:

    • Select the COGS account from QuickBooks
    • This is required for inventory tracking

    Inventory Asset:

    • Select the inventory asset account from QuickBooks
    • This is required for inventory management
  3. Click “Save Changes”

Step 4: Optional Settings

  • Development Mode: Check this box if you want to use QuickBooks Sandbox (for testing)
  • Enable Logs: Check this box to enable logging for debugging
  • Webhook Token: Enter a token for webhook verification (if using webhooks)

Usage

Automatic Order Sync

Once configured, the plugin automatically syncs:

  1. Products: When you create or update a product in WooCommerce, it syncs to QuickBooks
  2. Customers: When a new customer registers, they are created in QuickBooks
  3. Orders: When an order status changes to “Shipped”, an invoice is created in QuickBooks

Manual Order Sync

To sync an order manually:

  1. Go to WooCommerce Orders
  2. Select the order(s) you want to sync
  3. Choose “Change status to Shipped” from the bulk actions dropdown
  4. Click “Apply”
  5. The order will be synced to QuickBooks as an invoice

Custom Order Status

The plugin adds a custom order status called “Shipped”. When an order is marked as “Shipped”, it automatically creates an invoice in QuickBooks.

Testing the Plugin

To test if the plugin is working correctly:

  1. Test Product Sync:

    • Create a new product in WooCommerce
    • Check your QuickBooks account – the product should appear there
  2. Test Customer Sync:

    • Register a new customer account in WooCommerce
    • Check QuickBooks – the customer should be created
  3. Test Order Sync:

    • Create a test order in WooCommerce
    • Change the order status to “Shipped”
    • Check QuickBooks – an invoice should be created

Troubleshooting

Plugin shows “Required dependencies are missing” error:
– Make sure the vendor/ folder is present in the plugin directory
– Re-upload the plugin if the vendor folder is missing
– Contact support if the issue persists

Cannot connect to QuickBooks:
– Verify your Client ID and Secret Key are correct
– Check that your Redirect URI matches exactly: https://yoursite.com/quickbooks/verify
– Make sure you’re using the correct environment (Production vs Development)

Orders not syncing:
– Check that all required settings are configured (Tax Code, Accounts)
– Verify the order status is changed to “Shipped”
– Enable logs in Settings to see error messages
– Check that WooCommerce is activated

Products not syncing:
– Make sure the product has a price set
– Check that required account mappings are configured
– Enable logs to see any error messages

Admin notices about missing settings:
– Go to QuickBooks Settings tab
– Configure all required fields (Tax Code, Sales of Product Income, Cost of Goods Sold, Inventory Asset)

Credits

Developed by Rishi Chaudhary.

License

This plugin is licensed under the GPLv2 or later.

External Services

This plugin connects to Intuit QuickBooks Online API in order to sync data between WooCommerce and QuickBooks.

  • Service Used: Intuit QuickBooks Online API
  • Data Sent: Customer details, order information, taxes, payment methods, and product/financial data (depending on your sync settings).
  • When Sent:
    • On manual or automatic order/customer sync events.
    • When webhooks are triggered from WooCommerce events.
  • Data Storage: Data is securely transmitted over HTTPS directly to Intuit’s API. This plugin does not store sensitive QuickBooks credentials on external servers.
  • Service Terms: Intuit Terms of Service
  • Service Privacy Policy: Intuit Privacy Policy

Installation

  1. Upload the plugin folder crishik-order-sync-for-quickbooks to the /wp-content/plugins/ directory.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.
  3. Go to QuickBooks in the WordPress admin menu to configure the connection.

Note: All required dependencies are included in the plugin package. No additional installation steps are required.

FAQ

Does this plugin support QuickBooks Online or Desktop?

This plugin supports QuickBooks Online only. QuickBooks Desktop is not supported.

How do I get QuickBooks API credentials?

  1. Go to https://developer.intuit.com/
  2. Sign in or create an Intuit account
  3. Create a new app for QuickBooks Online
  4. Set the Redirect URI to: https://yoursite.com/quickbooks/verify
  5. Copy the Client ID and Client Secret

What happens when I create a product in WooCommerce?

The product is automatically synced to QuickBooks Online. If it’s a variable product, the parent and all variations are synced.

When are orders synced to QuickBooks?

Orders are automatically synced when their status is changed to “Shipped”. You can also manually sync orders using the bulk action “Change status to Shipped” in the WooCommerce orders list.

What data is synced to QuickBooks?

  • Products (with inventory tracking)
  • Customers (registered and guest)
  • Orders (as invoices when status is “Shipped”)
  • Product variations

Do I need to configure anything before using the plugin?

Yes, you must configure:
1. QuickBooks API credentials (Client ID and Secret Key)
2. Tax Code
3. Sales of Product Income account
4. Cost of Goods Sold account
5. Inventory Asset account

Can I test the plugin without affecting my live QuickBooks data?

Yes! Enable “Development” mode in the Settings tab. This connects to QuickBooks Sandbox for testing.

How secure is the connection?

All data transfers use secure authentication (OAuth 2.0) with QuickBooks API and WordPress security best practices. Credentials are stored securely in your WordPress database.

What if I get an error about missing dependencies?

All dependencies are included in the plugin package. If you see this error, make sure the vendor/ folder is present in the plugin directory. If it’s missing, re-upload the complete plugin package.

Can I sync historical orders?

Yes. Change the order status to “Shipped” for any existing order, and it will be synced to QuickBooks as an invoice.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Crishik Order Sync for QuickBooks” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.0

  • Initial release.
  • Connect to QuickBooks Online.
  • Order and customer data sync.
  • Manual sync option.
  • Logging and field mapping.