Solavel Docs

Sales Returns

Last updated

A sales return records goods a customer sends back. Posting it brings eligible units back into stock. The page says: "Posting a return puts resellable or quarantined units back into stock through the ledger. Damaged units are recorded without being returned to stock."

Use a return from a posted shipment whenever you can: warehouse, lot/serial and cost are taken from the shipment. Use a manual return (no source shipment) only for goods shipped outside SolaStock.

Refunds and credit notes are issued in SolaCount, not here.

Where to find it

Screen How to open it URL
Return list Sidebar Sales / Fulfillment → Sales Returns /inventory/sales-returns
New return New return (top-right), or Create source reversal on a posted shipment /inventory/sales-returns/new (?shipment_id=… from a shipment)
Return detail Click a return number /inventory/sales-returns/{id}
Edit draft Edit on a draft /inventory/sales-returns/{id}/edit

You see the menu item with View sales orders & fulfillment when your plan includes sales fulfillment. Creating and processing returns needs Create & post sales returns (stock IN).

Screen tour

The return list

Column Meaning
Return # The number you gave the return. Click to open.
Customer Customer name, or —.
Date Return date.
Warehouse Internal warehouse number (#3).
Status See Statuses.

Newest first; 50 most recent; no search or export. Empty state: No sales returns — "Record a customer return to bring eligible units back into stock."

The return detail page

Area What it shows
Header Return number, status, Edit (drafts).
Panel Customer, Return date, Warehouse, Source shipment (link), Authorized and Inspected (timestamps), Reason, Notes.
Tabs Lines, Ledger result, Audit.
Action bar Buttons allowed by status.

Lines tab: Item, Returned, Condition, Inspection (Pending, Accepted, Rejected, Quarantined, Damaged, Retired), Disposition (Restock, Quarantine, Record as damaged, Retire), Bin, Lot / Serial ("Not tracked" if none), Unit cost. Empty: No return lines.

Ledger result shows the IN movements after posting. Audit notes: "Return creation, authorization, inspection, and posting events are recorded in the audit log."

Create a return from a shipment

  1. Open the posted shipment and click Create source reversal.

  2. The form New sales return opens with the warehouse locked ("#3 (from shipment)") and one line per shipped line with quantity still returnable.

  3. Fill in the header:

    Field Required Rules / defaults Notes
    Return number Yes Up to 50 characters, unique. Not generated for you. For example RMA-0007.
    Customer No Active customers. Not pre-filled.
    Customer name No "Optional override"; defaults to the customer's name.
    Warehouse Yes Locked to the shipment's warehouse.
    Return date No Defaults to today. Date of the stock movement.
    Source shipment — Shows #n.
    Reason Yes for shipment returns At least 3 characters, up to 255.
    Notes No
  4. For each line set Returned quantity (the hint shows "Remaining: n") and Condition. Remove lines that are not coming back with ×. Item, bin, lot/serial and unit cost are read-only: "Warehouse, lot/serial identity, conversion and cost stay locked to the posted shipment ledger."

  5. Click Save draft → "Sales return created."

Condition When posted
Resellable Back into stock; serial becomes available.
Quarantine Back into stock; serial marked quarantined.
Damaged (no restock) Recorded only; serial marked damaged.
Retired (no restock) Recorded only; serial marked retired.

Full reversal vs partial return. If you return every shipped unit as Resellable, the return becomes an exact reversal of the shipment: posting reverses the shipment's own ledger entries and the shipment shows "Reversed by return #n". Such a draft cannot be edited ("A shipment source reversal is immutable. Cancel it and start again before posting."). Any other mix is a partial return; later returns can take the remaining quantity.

Validation messages:

Message Meaning
"Add at least one line with a returned quantity." No line has a quantity.
"Cumulative returns cannot exceed the shipped quantity." Open and posted returns together exceed what shipped.
"A serial-tracked shipment line can be returned exactly once." The serial is already on a return.
"Only an unreversed posted shipment can create a source reversal." The shipment is a draft or already reversed.
"The shipment already has a partial or disposition return; only its remaining quantities can be returned." Use partial quantities instead of a full reversal.
"A source reversal reason of at least 3 characters is required." Fill Reason.
"The sales return could not be saved." Other failure.

Create a manual return

  1. Sales Returns → New return. Source shipment shows None.
  2. Fill the header as above and choose the Warehouse.
  3. Add lines: Item, Returned quantity, Condition, Bin (optional, from that warehouse), Unit cost (cost the units re-enter stock at). Use + Add line for more.
  4. Save draft.

Edit a draft

Click Edit, change fields, Save draft → "Draft updated." Only drafts can be edited ("Only draft sales returns can be edited.").

Process the return

Step Button (shown when) Result
Authorize Authorize RMA (Draft) "RMA authorized." Records the authorized time.
Inspect Mark inspected (Authorized) "Return inspected." Sets each line's Inspection and Disposition from its condition.
Post Post return (Draft, Authorized or Inspected) Dialog Post sales return? — "Posting writes stock movements to the inventory ledger and locks this document. It cannot be edited afterwards." → Post → "Return posted. Eligible units have been returned to stock."
Cancel Cancel return (Draft, Authorized, Inspected) Dialog Cancel return — "Cancel this unposted return and release its quantities?" → "Return cancelled. Reserved quantities were released."
Reverse Reverse return (Posted) Dialog asks "Reason for reversing this posted return" (at least 3 characters) → "Return reversed."

Authorizing and inspecting are optional; you can post a draft directly.

Posting effects: resellable and quarantine lines come IN at their unit cost; damaged and retired lines move no stock; serial statuses update; a Sales return posted event is sent to SolaCount when connected.

Reversing creates an inventory reversal (REV-RMA-…) with opposite entries and sets the return to Reversed. It is refused when a posted SolaCount customer credit is linked to the return, or when the returned stock is no longer available ("… its stock is no longer fully available."). The wording follows your language:

Message Meaning
"Ask the accountant to reverse the linked customer credit before reversing this physical return. Payments and refunds are separate actions." A posted credit note (or credit allocation) is linked. The accountant reverses the credit in SolaCount first; refunds and payments stay separate actions of theirs. Then you reverse the physical return.
"The linked financial document changed. Refresh and review it before reversing this return." The invoice or credit changed in SolaCount since you opened the return. Refresh the page and check again.
"Void the linked Finance customer credit before reversing this physical return." The same rule, reported when the credit was allocated through the newer allocation process.

While a credit is being posted in SolaCount, reversing the return is held back so the two cannot cross.

Failures show "The return action could not be completed." plus the reason.

Returns and SolaCount credits

A sales return is the physical side of a customer return. It never issues a credit note or a refund.

  • When the shipment belongs to an invoice that the accountant sent from SolaCount (a Fulfillment Request), posting the return also hands the accountant a customer credit to prepare in SolaCount for the returned goods. The accountant decides the credit, any refund and any payment.
  • A return of goods from a cash sale is not handed to the invoice credit flow: the cash refund is the accountant's own document.
  • A return posted while connected books the cost back at the shipment's cost. For a shipment that was posted before the connection started there is no original SolaCount entry to reverse, so SolaStock does not guess: the event is held for review instead of posting an invented entry. Ask the accountant, or see SolaCount.
  • Reversing a document that was posted while SolaStock was not connected (a return, receipt, adjustment and so on) stays local: no reversal is sent to SolaCount, because SolaCount never received the original.
  • A credit for goods that never left (undelivered) is not a return; it closes demand on the request instead. See Fulfillment Requests.
  • Each return form carries a hidden operation key, so a double click or a retry after a lost connection does not create a second return.

Statuses and lifecycle

Status Allows
Draft Edit, Authorize RMA, Post return, Cancel return
Authorized Mark inspected, Post return, Cancel return
Inspected Post return, Cancel return
Posted Reverse return
Cancelled View only; its quantities are free for other returns.
Reversed View only

The status badge shows authorized and inspected in lower case.

Permissions

Role View returns Create, edit, authorize, inspect, post, cancel, reverse
Owner, SolaStock Administrator Yes Yes
Inventory Manager, Warehouse Manager, Warehouse Operator, Inventory Viewer (scoped) Yes No
Custom role View sales orders & fulfillment Create & post sales returns (stock IN)

Worked examples

Example 1: two damaged cartons

SHIP-SO-000031 shipped 50 cartons of water to Gulf Star Supermarkets LLC. Two arrive crushed.

  1. On the shipment, Create source reversal. Return number RMA-0007, Customer CUS-GULFSTAR, Reason "Crushed in transit".
  2. Water line: Returned quantity 2 (Remaining 50), Condition Damaged (no restock). Save draft.
  3. Post return. Nothing returns to Dubai Main stock; the return records 2 damaged cartons. In SolaCount, Sara Khan issues a credit note for AED 52.50 (2 × 25.00 + 5% VAT) and links it.

Example 2: authorize, inspect, mixed conditions

SHIP-SO-000032 shipped 120 juice cartons (lot FJ-2610A, cost AED 14.00) and 2 scanners.

  1. Create source reversal: RMA-0008, Reason "Customer overstock and one faulty scanner". Remove the second scanner line. Juice 20 Resellable, Serial #91 Retired (no restock). Save draft.
  2. Authorize RMA → Authorized. Goods arrive; Omar Haddad checks them; Mark inspected → juice Accepted/Restock, scanner Retired/Retire.
  3. Post return → 20 cartons of FJ-2610A come back into Dubai Main at AED 14.00 (AED 280.00); serial #91 becomes retired. Remaining returnable: juice 100, scanner #92.
  4. Later, a counting error is found: Reverse return, reason "Entered against wrong shipment" → Reversed; the 20 cartons leave stock again.

How it connects

Tips and common problems

Problem Cause Fix
New return greyed out No returns permission. Ask an owner or SolaStock Administrator.
Save fails with a reason error Shipment returns need a reason of 3+ characters. Fill Reason.
Can't edit a full reversal draft Exact reversals are immutable. Cancel return and start again.
Damaged units not in stock By design. Use Quarantine if they should come back for checking.
Reverse refused A posted SolaCount credit is linked, or stock was used. Ask the accountant to reverse the credit in SolaCount first, or reverse later documents.

Related