Repository navigation
feat(quickbooks): add QuickBooks integration - #245
Open
RishadAlam wants to merge 12 commits into
Open
RishadAlam wants to merge 12 commits into
RishadAlam wants to merge 12 commits into
Conversation
…outes The controller builds the API client from the OAuth2 connection, using the Company ID and the environment that the connection form stores. Nine routes load customers, vendors, employees, items, accounts, terms, payment methods, classes and departments, up to 5000 records each.
One switch case per action fires its own quick_books_* hook with the field map, the API client and the dropdown settings, then saves the task log.
… screens The connection form asks for the environment and the Company ID next to the OAuth client keys.
Changing the action clears every dropdown key, and the Item Type and Payment Method Type dropdowns used the key "type". That also removed the integration type, so saved flows never ran. The keys are now item_type and payment_method_type.
✅ WordPress Plugin Check Report
📊 ReportAll checks passed! No errors or warnings found. 🤖 Generated by WordPress Plugin Check Action • Learn more about Plugin Check |
Category and bundle items cannot go on a transaction line, so the item query now returns only Service, NonInventory and Inventory items.
- Update Customer gets Parent Customer, Update Item gets Inventory Asset Account, Create Bill Payment gets Department, and Update Vendor and Update Employee get the 1099 and Billable Time utilities that Pro already reads. - Hide the + row button when an action has only required ID fields. - Show one toast when several dropdown fetches fail together. - Keep the loader on until every parallel fetch finishes. - Use mutative in handleInput and quote the developer portal link.
- Use whole translatable strings for billing, shipping and employee address labels. - Explain that update actions change only the mapped fields. - Move the Detail Type example out of the label into the account notes. - Say that Time Activity Hours accepts decimals. - Rename Service to Service Item, Type to Payment Method Type, and Other to Not a credit card.
Keep only translators notes, phpcs pragmas, type tags and the notes that explain a non-obvious choice.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Description
Adds QuickBooks as a Bit Integrations action with 64 write actions. The free plugin owns the connection, the dropdown lists and the screens. The actions run in Pro: https://github.com/bit-apps-pro/bit-integrations-pro/pull/165
Motivation & Context
QuickBooks is one of the most requested accounting apps. This ports the bit-pi QuickBooks integration (Bit-Apps-Pro/bit-pi#884). Only write actions are ported (create, update, delete, void, send, deactivate, attach). The bit-pi webhook triggers are left out.
Type of Change
Key Changes
Backend (
backend/Actions/QuickBooks)QuickBooksController.$authConfigOAuth2.company_idandenvironment(production or sandbox). Spaces in the Company ID are removed.RecordApiHelper: oneswitchcase per action fires its ownquick_books_*hook with the field map, the API client and the dropdown settings, then callsLogHandler::save.Frontend (
AllIntegrations/QuickBooks)Authorizationwith thecom.intuit.quickbooks.accountingscope, plusextraFieldsfor the Environment and the Company ID.staticData.js.NewInteg,EditInteg,IntegInfo,SelectActionandtutorialLinks, plus a 128px logo.Testing
QuickBooksController::execute, and every action succeeded.type, so a saved flow lost its integration type and never ran.Checklist
Changelog
🤖 Generated with Claude Code