Web Fulfillment Posting
Generate the daily web-fulfillment accounting postings for every store from the configured cutoff hour
Overview
This task generates web-fulfillment postings: balanced accounting vouchers for the payment transactions of web and click & collect orders. Each run checks the time in the accounting time zone; at or after the configured cutoff hour, it posts the previous day for every store, booking only the transactions that are not already on a posting.
Identifier
| Property | Value |
|---|---|
| Implementation Type | WebFulfillmentPostingScheduledTask |
| Group | Accounting |
| Type | Delta |
When to Use
Enable this task when you need:
- Daily accounting postings for web and click & collect orders
- Postings ready for export to your ERP or accounting system each morning
- Late payment transactions for the previous day picked up automatically
POS sales do not need this task: their postings are built when a register's Z-report is closed.
Configuration Properties
This task has no properties of its own. It is controlled by the tenant's accounting settings:
| Setting | Location | Description |
|---|---|---|
postingEnabled | accountingSettings.postingEnabled | Master switch. When off, the task does nothing. |
webFulfillmentPostingEnabled | accountingSettings.webFulfillmentPostingEnabled | Must be on for the task to post. |
webFulfillmentPostingCutoffHour | accountingSettings.webFulfillmentPostingCutoffHour | Hour (0–23, default 2) in the accounting time zone. Before this hour, the task does nothing. |
timeZone | accountingSettings.timeZone | IANA time zone used for the cutoff check and the day boundaries. Falls back to the tenant's time zone. |
webFulfillmentPostingPerOrderType | accountingSettings.webFulfillmentPostingPerOrderType | When on, one posting per order type per store and day. |
postingExclusions | accountingSettings.postingExclusions | Rules that keep matching orders out of the postings. |
Behavior
What It Does
- Completes without doing anything unless both
postingEnabledandwebFulfillmentPostingEnabledare on - Reads the current hour in the accounting time zone; if it is before the cutoff hour, completes without doing anything
- Otherwise selects the previous day and processes every store
- For each store (and order type, when per-order-type posting is on), books the day's captures and refunds that are not already on a posting, applying the posting exclusions
- Skips a store and day with nothing new to book
- Logs a store and day whose posting fails, and continues with the next one
Prerequisites
accountingSettings.postingEnabledandaccountingSettings.webFulfillmentPostingEnabledmust be on- A chart of accounts, including a
Receivableaccount for auto-balancing — see Chart of Accounts
Side Effects
- Creates accounting postings with source
WebFulfillment - A run after a day was already posted books any transactions that arrived since, on an additional posting for that store and day
- Never posts days before the previous day. To post older days, use Generate web fulfillment postings under Reports → Accounting — see Postings in the UI
Example Configuration
First, ensure tenant settings enable posting:
Then configure the scheduled task:
Recommended Schedule
Run every hour (0 * * * *). The first run after the cutoff hour posts the previous day; later runs that day only book transactions that arrived since, and complete without changes otherwise.
Related Tasks
- Orphaned Posting Cleanup - Remove draft postings left by an interrupted save