/
/
Post a WooCommerce order to the right Sage Intacct account
For finance teams who want a paid WooCommerce order recorded in Sage Intacct once, on the right customer, by asking their AI assistant.
On this page
Connector
Connect WooCommerce, pick your AI tool and paste the prompt.
The problem
Orders billed twice or posted to the wrong account
Posting a WooCommerce order into Sage Intacct by hand means matching the shopper to a customer, mapping each product to an item and checking it was not posted already. Skip the check and it is billed twice; guess the customer and it lands on the wrong account.
Without PopdockAI
- Search Intacct for the order number
- Match the shopper to a customer by name
- Map each product to an item by SKU
- Post it and hope nobody did already
With PopdockAI
- Unpaid and canceled orders are skipped
- It stops if Intacct already has the order number
- The customer is matched only when the email agrees
- It posts after your yes, and notes the order after a second yes
The prompt
Use this prompt
Copy it into any AI tool connected to PopdockAI. Swap the values in braces for your own.
**Objective:** Record WooCommerce order `{order-number}` in Intacct as a `{transaction-type}` document (default Sales Invoice) for Intacct customer `{intacct-customer-id}` (default: found from the order), after confirming it has not been posted already. Write nothing without the user's confirmation.
**Step 1: Read the WooCommerce order**
Call `woocommerce-get-order` with `order-number` = `{order-number}`; if nothing matches and the value is numeric, retry with `order-id`. If it matches more than one order, list them and stop. If the order `status` is pending, failed, cancelled or refunded, report that and stop. Keep `order-id`, `order-number`, `created-date`, `status`, `customer-id`, `customer-email`, `billing-first-name`, `billing-last-name`, `total`, `shipping-total`, `discount-total` and `currency`.
Call `woocommerce-get-order-line` with `order-id` and keep each line's `line-sku`, `line-name`, `line-quantity` and `line-price`.
**Step 2: Check it is not already in Intacct**
Call `intacct-get-invoice` and `intacct-get-order-entry-document` with date ranges covering the order date to 30 days after it. If any document's `reference-number` or `customer-po-number` equals the order number (ignoring a leading `#`), report that document and stop.
**Step 3: Find the Intacct customer**
If `{intacct-customer-id}` is set, call `intacct-get-customer` with `customer-id` = it and use it. Otherwise, if the order has a non-zero `customer-id`, call `woocommerce-get-customer` with it to get the `billing-company`. Then match on the order's `customer-email`:
Try, in order, and stop at the first single match:
1. `intacct-get-contact` with `email` = the WooCommerce email, then `intacct-get-customer` with `customer-name` = the contact's `company-name`.
2. If the WooCommerce customer has a `billing-company` (from `woocommerce-get-customer`), `intacct-get-customer` with `customer-name` = that company.
3. `intacct-get-customer` with `customer-name` = the WooCommerce first and last name.
Treat a match as confirmed when the Intacct customer's `email` equals the WooCommerce email (ignoring case) or is empty. If it holds a different email, report it as a possible wrong match instead of using it.
If nothing matches, or a step matches several customers, list what you found and ask the user for the Intacct customer-id. Never create a customer from this prompt; suggest the sync-customer-to-intacct prompt instead.
**Step 4: Match the items**
For each order line, call `intacct-get-item` with `item-id` = the `line-sku`; if nothing comes back, retry with `upc` = the `line-sku`. Every line must resolve to exactly one Intacct item. If a line has no SKU or no matching item, list it and stop.
`intacct-create-order-entry-document` accepts at most two lines. If the order has more than two lines, report that it cannot be posted by this tool and stop. Do not merge or drop lines.
**Step 5: Confirm, then post**
Show the user: customer id and name, transaction type (`{transaction-type}`, default Sales Invoice), date (the order's created date), reference number (the order number), each line's item-id, quantity and unit price, and the document total against the WooCommerce total. Say plainly that WooCommerce tax, shipping and discounts are not carried across by this tool, so the totals may differ by those amounts.
Only after a yes, call `intacct-create-order-entry-document` once with `customer-id`, `transaction-type`, `date`, `reference-number` = the order number, `customer-po-number` = the order number, `item-id`, `quantity`, `price` and, for a second line, `item-id-2`, `quantity-2` and `price-2`. Leave `state` unset so Intacct applies its default.
**Step 6: Confirm**
Report the returned `document-id`, then call `intacct-get-order-entry-document` with `document-id` and show its total and state.
Then offer to record the posting on the WooCommerce order. Only after a second yes, call `woocommerce-add-order-note` once with `order-id`, `note` = "Posted to Intacct as " followed by the transaction type and document-id, and `customer-note` = false.
**Rules & Guidelines:**
* `woocommerce-get-order`, `woocommerce-get-order-line`, `woocommerce-get-customer` and `woocommerce-add-order-note` are on the woocommerce server. `intacct-get-invoice`, `intacct-get-order-entry-document`, `intacct-get-customer`, `intacct-get-contact`, `intacct-get-item` and `intacct-create-order-entry-document` are on the intacct server.
* The only write tools this prompt may call are `intacct-create-order-entry-document`, once, after confirmation, and `woocommerce-add-order-note`, once, after a second confirmation, always as a private note. Do NOT call `intacct-create-customer`, `intacct-update-order-entry-document`, `woocommerce-update-order` or any other write tool.
* If the user does not know the transaction type, read recent documents with `intacct-get-order-entry-document` and offer the `transaction-type` values in use.
**Validation:**
* If the order currency differs from the customer's Intacct currency, stop and ask the user how to proceed.
* If the create call fails, show the error, do not retry with changed values, and stop. Do not add the WooCommerce note.Who it's for
One answer, three teams that use it
Accountants
Post web orders without duplicates
Existing documents are checked first, so each order reaches Intacct once.
Post WooCommerce order 2214 to Sage Intacct as a sales invoice.
Accounts receivable
Get the customer right
Matches need the email to agree, so orders land on the right account.
Which Intacct customer would WooCommerce order 1990 post to? Then post it.
Ecommerce operations
Leave a trail on the order
A private note on the order shows where it went in Intacct, after your second yes.
Post WooCommerce order 3005 to Intacct and add a note to the order once it is in.
How it works
What PopdockAI does when you ask
You name the order, and your AI assistant checks Sage Intacct and matches the customer and items. Nothing posts until you confirm, and no customer is ever created.
01
Ask
You name the order.
02
Check
It skips unpaid or canceled orders and stops if Intacct already has the order number.
03
Match
It matches the customer, requiring the email to agree, and each item by SKU or UPC.
04
Confirm
It posts after your yes, and adds an order note after a second yes.
What PopdockAI provides
The tools behind the answer
Ready made tools for WooCommerce and one secure connection to your AI tool. No code, no exports.
woocommerce-get-order
woocommerce-get-order-line
sage-intacct-get-invoice
sage-intacct-get-order-entry-document
sage-intacct-get-customer
woocommerce-get-customer
sage-intacct-get-contact
sage-intacct-get-item
sage-intacct-create-order-entry-document
woocommerce-add-order-note
This report is built from Get data tools only. PopdockAI applies the row, field and parameter rules your admin sets, and every query is written to the audit trail.
The outcome
Store orders in the ledger once, on the right account
Related use cases
More ways to put this data to work
One prompt template with infinite possibilities.
Your AI assistant adapts its approach, tone, and capabilities to match each unique context while you maintain a single, manageable workflow.
Join forward-thinking companies that are transforming their operations with intelligent, secure AI automation.

.webp)
