Solavel Docs

Invoice dispatch and SolaStock fulfilment

Last updated

When your organization is connected to SolaStock, an invoice that sells stock-managed goods is also a request to the warehouse: SolaCount bills the customer, SolaStock ships the goods, and the revenue is recognized as the goods actually leave. This page explains the extra controls that appear on those invoices — the status strip, Dispatch goods, Post invoice and dispatch goods, the choice of an existing Stock order, cancelling what was not shipped, and what happens when you void an invoice that is waiting for the warehouse.

It applies only to connected organizations and to invoices that contain stock-managed items (inventory items whose quantity SolaStock owns). Services, non-stock items and organizations that are not connected invoice exactly as described in Invoices, and none of the controls below appear. For how the two apps are connected in the first place, see Connecting SolaCount and SolaStock.

Where to find it

  • The invoice page: Sales → Documents → Invoices, open an invoice (/ar/invoices/{id}). A strip under the header shows the status and the action buttons appear in the toolbar.
  • The dispatch form: Dispatch goods on the invoice (/ar/invoices/{id}/fulfillment/goods).
  • The order choice page: Choose Stock order on the invoice, or the page that opens when you post (/ar/invoices/{id}/stock-demand).
  • Notifications: the bell in the top bar reports progress (Dispatch request delivered, Partially dispatched, Dispatch complete, Remaining dispatch cancelled, Dispatch needs attention, Dispatch connection restored, Dispatch reversed), each naming the invoice number.

How it works in plain words

  1. You post the invoice. Posting records the sale: you owe VAT and the customer owes you the full amount. But for stock-managed lines the money is not yet earned — the goods are still in the warehouse. So the net amount of those lines is credited to a Deferred revenue liability account instead of Sales revenue. VAT is posted normally.
  2. SolaCount sends the request to SolaStock automatically. You do not need to link anything by hand ("This invoice does not need a manual Stock link. Post it, and SolaCount sends the dispatch request to SolaStock automatically."). The warehouse approves the request and chooses the warehouse.
  3. The warehouse ships. A shipment is posted in SolaStock (from Dispatch goods on the invoice or from SolaStock itself). SolaStock records the inventory movement and its cost of goods sold.
  4. Revenue is recognized by quantity. For each shipped quantity SolaCount moves the matching share of the deferred amount into revenue: Dr Deferred revenue / Cr Sales revenue, dated the shipment date. A partial shipment recognizes a proportional part; the last shipment takes whatever is left, so rounding never leaves a remainder.

Posting records the invoice. Dispatch confirms physical delivery and releases the matched deferred revenue. The two are deliberately separate, and each can be retried without repeating the other.

The status strip

Part Values
Invoice status Posted or Draft
Warehouse request (or Stock source when the invoice was created from a shipment) Not sent, Pending delivery to warehouse, Delivered to warehouse, Needs attention; or Linked for a Stock source
Dispatch status Awaiting dispatch, Partially dispatched, Dispatched, Cancelled, Cancellation pending, Cancellation pending confirmation from SolaStock, Needs attention, Dispatch cancelled — credit note required

Below it the page explains the state in a sentence, for example "Posting records the invoice. Dispatch confirms physical delivery and releases the matched deferred revenue." or, for an invoice created from shipments, "Linked shipments confirm physical dispatch. Posting records the invoice." An invoice built from Stock shipments also lists its Shipments and a Dispatched / Expected quantity per item.

The toolbar

Only the buttons that apply to the invoice's state and to your permissions are shown.

Button When What it does
Send fulfillment request / Retry warehouse delivery The request has not reached SolaStock, or delivery failed Sends or re-sends the same request. It is safe to repeat: SolaStock recognizes the request and never creates a second one. Message: "Warehouse delivery is not confirmed. Retry the same request. Posting and physical dispatch remain separate."
Post invoice Draft Posts the invoice as described above.
Post invoice and dispatch goods Draft, and you may both post and dispatch Posts, then opens the dispatch form so one visit does both.
Dispatch goods Posted, request delivered and approved, and you hold the Stock dispatch permission for a warehouse Opens the dispatch form.
Approve fulfillment request The request is waiting for a warehouse "Approve the request and its warehouse before dispatch." Appears on the dispatch page for users who may approve.
Cancel remaining dispatch Draft with an open request Cancels the warehouse request.
Cancel remaining with a credit note Posted invoice with undispatched quantity Creates a credit note instead of simply cancelling, because the undispatched goods are still billed (see below).
Retry cancellation A void or unpost is waiting for SolaStock Finishes the reversal once SolaStock has confirmed.
Choose Stock order SolaStock has an open order for this customer and the choice was held Opens the order choice page.
Retry same operation / Correct dispatch details A dispatch you started was not confirmed See If a dispatch is not confirmed.

Dispatch goods

The dispatch form is titled Dispatch goods — INV-… and begins "Posting records the invoice. Dispatch confirms physical delivery and releases the matched deferred revenue."

Field Required Notes
Warehouse Yes Only warehouses you are allowed to ship from, and the warehouse approved on the request.
Actual dispatch date Yes The date the goods really left. Revenue is recognized on this date, so it must be in an open accounting period.
Reserve the selected stock and serials for this order No Reserves the chosen stock. Serial items "require an existing authorized reservation for this sales order."
Per line: Item, Remaining to dispatch, Actual quantity Yes per line "Enter only the quantity dispatched now. Use zero to leave an item for later." You cannot dispatch more than remains ("The shipment quantity exceeds the unmatched invoice quantity. Review the source documents.").
Per line: Tracking details — Variant, Bin, Lot, Serial numbers When the item is tracked Variants, lots and serials are required for items that use them; bins are filtered to the chosen warehouse.
I confirm these goods are physically being dispatched. Yes Tick to confirm.

Click Dispatch goods (or Post invoice and dispatch goods on a draft). You see "Shipment {number} posted." The invoice's Dispatch status becomes Partially dispatched or Dispatched.

If a dispatch is not confirmed

If the connection drops while a dispatch is being sent, SolaCount cannot know whether the warehouse received it. It does not send a second shipment on its own. The page shows "Dispatch status is not confirmed. Retry this same operation; do not create another shipment." with:

  • Retry same operation — repeats the identical request; if SolaStock already accepted it the shipment is not duplicated.
  • Correct dispatch details — closes the old operation safely ("The old operation is safely closed. You can now correct the dispatch details.") so you can change the form and submit a new one.

If SolaStock is temporarily unreachable when you open the form: "Dispatch details are temporarily unavailable. Your invoice has not been changed. Please try opening dispatch again shortly." If a posting fails after the shipment succeeded, Retry queues the accounting step ("Fulfillment accounting retry queued."); the shipment itself is not repeated.

When SolaStock already has an open order

If SolaStock already holds an open, unshipped sales order for the same customer, posting the invoice would create a second order for the same goods. So before anything is posted you are asked. The page is titled Existing SolaStock order: "SolaStock already has an open, unshipped sales order for this customer. Choose whether this invoice fulfils that order or creates new demand. Nothing is posted until you confirm."

Choose Fulfil from existing order {order} (it shows the order date, warehouse and the unshipped quantity per item) or Create new demand in SolaStock ("A new sales order is created when the warehouse approves. The existing order stays open for the customer."), tick I confirm this choice., and click Post invoice (or Post invoice and dispatch goods). An order can be chosen only if the invoice quantities match its whole unshipped quantity and its products and units are connected; otherwise the order is shown as unavailable with the reason, for example "The invoice quantities must match the whole unshipped quantity of this order. Adjust the invoice or the order in SolaStock, or create new demand."

Invoices posted without a person present — bulk posting, the API and recurring invoices — are never matched automatically. If an open Stock order exists, the invoice is posted but its demand is held and nothing is sent: "This invoice was posted without a person choosing… Choose whether it fulfils that order or creates new demand. The posted invoice is not changed." Open Choose Stock order on the invoice to resolve it ("Your choice was saved and sent to SolaStock."). If SolaStock refuses the order you picked, the same page appears with "SolaStock could not use the sales order chosen for this invoice. Choose another order or create new demand."

Invoices created from a Stock shipment

SolaStock can draft an invoice from a shipment. Such a draft carries the note "Draft created from an actual Stock shipment. Review selling price, tax and customer invoice details before posting." Its lines are tied to the shipment: you can change the price, tax, description and accounts, but not the item, unit or quantity ("Line {n} is linked to a Stock shipment. Keep its item, unit and quantity as shipped…"), and you cannot remove a shipped line. If the same shipment was already invoiced another way, Dismiss draft (duplicate) removes the draft from play without deleting it — see Dismiss a duplicate draft.

Cancelling what was not shipped

Sometimes the warehouse cancels the rest of an order. On a posted invoice the undispatched goods are still billed and their revenue is still deferred, so cancelling must also reduce what the customer owes. The invoice shows Dispatch cancelled — credit note required with the text "Dispatch was cancelled in SolaStock, but {n} undispatched units are still billed to the customer and their revenue is still deferred. A credit note is required for that quantity."

  • If nothing was dispatched: "Nothing was dispatched, so void or unpost the invoice to reverse it in full."
  • If part was dispatched: click Create credit note for cancelled remainder. The page explains: "The draft below credits only the cancelled quantity that is still billed, at the invoice price and tax. Dispatched goods and their revenue are not changed, and no stock return is created." It lists Item, Cancelled quantity, Amount, Tax and Total; Create draft credit note saves a draft credit note linked to the invoice and the cancelled warehouse request. Nothing is posted until the draft is reviewed, approved and posted ("Draft credit note {number} … is waiting for review and approval."). If the invoice is already paid, the posted credit stays on the customer's account as an unapplied credit; no refund is made automatically.
  • If you hold only invoice permissions and not credit-note permissions, the page tells you to ask someone who can create credit notes.

Two further tools exist for adjusting what is billed without moving goods: Financial price credit (a price-only concession) and Credit goods not yet dispatched (cancel a quantity and its warehouse demand). They are described in Credit notes.

Voiding or unposting an invoice that is waiting for the warehouse

Void and unpost work as usual on these invoices when nothing has been dispatched, with one extra step: SolaCount asks SolaStock to cancel the remaining dispatch first and waits for confirmation.

  • If SolaStock confirms at once, the invoice is voided or returned to draft ("SolaStock confirmed the cancellation and the invoice is now void.").
  • If SolaStock cannot confirm yet, the invoice stays posted and shows Cancellation pending confirmation from SolaStock: "The {void} of this invoice is waiting for SolaStock to confirm that the remaining dispatch is cancelled. The invoice stays posted and payments and credits are on hold. The {void} finishes automatically once SolaStock confirms." Nothing has been reversed. You can use Retry cancellation meanwhile; if it is refused, review the accounting period, approvals and allocations.
  • If goods were dispatched you cannot void or unpost: "Goods have been dispatched. Use the source-backed return and credit workflow." Create a credit note from the customer return.
  • If a payment or credit is allocated, remove the allocation first ("Remove the payment or credit allocation through its native workflow before reversing this invoice.").

Worked examples (UAE, 5% VAT)

Example 1: full dispatch in two shipments

Al Noor Trading LLC orders 10 office chairs at AED 750.00 + 5% VAT. Invoice INV-1130: net AED 7,500.00, VAT AED 375.00, total AED 7,875.00.

Post the invoice (20 October):

Account Debit (AED) Credit (AED)
Accounts Receivable (Al Noor Trading LLC) 7,875.00
Deferred revenue 7,500.00
Output VAT 5% 375.00

The customer's receivable is AED 7,875.00 immediately; revenue is not yet reported.

First shipment, 4 chairs, dispatched 22 October. SolaCount recognizes 4/10 of the deferred amount:

Account Debit (AED) Credit (AED)
Deferred revenue 3,000.00
Sales Revenue 3,000.00

SolaStock separately posts the cost (for example Dr Cost of goods sold / Cr Inventory at AED 450.00 per chair = AED 1,800.00). Dispatch status is Partially dispatched.

Second shipment, 6 chairs, 27 October. The remainder is recognized, Dr Deferred revenue 4,500.00 / Cr Sales Revenue 4,500.00, and Dispatch status becomes Dispatched. The deferred account is back to zero for this invoice.

Example 2: the warehouse can only ship 4 of 10

Same invoice. After the first 4 chairs ship, the supplier cancels the rest and SolaStock cancels the remaining dispatch. The invoice shows Dispatch cancelled — credit note required for 6 units.

  1. Click Create credit note for cancelled remainder, check the lines (6 chairs, AED 4,500.00, tax AED 225.00, total AED 4,725.00) and Create draft credit note.
  2. Review the draft, get it approved if required, and post it:
Account Debit (AED) Credit (AED)
Deferred revenue 4,500.00
Output VAT 5% 225.00
Accounts Receivable (Al Noor Trading LLC) 4,725.00
  1. The 4 delivered chairs' revenue (AED 3,000.00) stays recognized and Al Noor now has an AED 4,725.00 credit on account. If the invoice is still unpaid, apply the credit to INV-1130: its balance due falls from AED 7,875.00 to AED 3,150.00, which is exactly the 4 delivered chairs plus VAT. If they had already paid the full AED 7,875.00 the credit stays unapplied on their account until you apply it to another invoice or refund it (see Customer credit and balances). No stock is returned and no cash is paid by this credit.

Permissions and requirements

Action Needs
See the strip Invoices → View
Send or retry a request, cancel a draft's request Invoices → Edit draft (on a draft) or Invoices → Post (on a posted invoice)
Post, Post invoice and dispatch goods, choose a Stock order, accounting retry Invoices → Post
Retry cancellation The same permission as the void or unpost it finishes (Invoices → Unpost)
Dispatch goods Invoices → View and the Stock dispatch permission with access to the warehouse chosen ("You need Stock dispatch permission and access to the selected warehouse.")
Dismiss a duplicate draft Invoices → Delete
Create the cancelled-remainder credit or a financial credit Credit notes → Create
Post those credit notes Credit notes → Post (and a current approval where approvals cover credit notes)

Finance pages stay available when SolaStock is unreachable; only the dispatch actions pause, and posting an invoice never waits for the warehouse.

Tips and common problems

  • The invoice is posted but the customer says nothing arrived. Posting records the sale only. Check Dispatch status; if it says Awaiting dispatch, the warehouse has not shipped.
  • Revenue is lower than invoiced. That is the deferred part — it is recognized when goods ship. Look at the Deferred revenue balance in the Chart of Accounts.
  • You cannot post a sales receipt for stock goods. A cash sale of stock-managed goods needs an invoice so the warehouse can dispatch; see Sales receipts.
  • No Dispatch goods button. The request may not be delivered or approved yet, you may lack the Stock dispatch permission, or the invoice may not contain stock-managed items.
  • A void did not finish. The invoice still says posted and payments are on hold: SolaStock has not confirmed the cancellation. Use Retry cancellation; it also finishes by itself.
  • "Select an active item…" when adding a line. New lines need an active item that is available for sale.

Related