Solavel Docs

Shipments

Last updated

A shipment is the moment stock physically leaves the warehouse for a customer. Posting a shipment writes stock OUT to the inventory ledger, releases the sales order's reservations and updates the order's shipped quantities. The page says: "Posting a shipment records stock OUT in the inventory ledger and creates the shipment.posted integration event. It does not create an invoice or journal entry."

Who uses it: warehouse staff who dispatch orders, and sales coordinators checking what has left.

Where to find it

Screen How to open it URL
Shipment list Sidebar Sales / Fulfillment → Shipments /inventory/shipments
Shipment detail Click a shipment number, or Create shipment on a sales order /inventory/shipments/{id}

You see the menu item when your plan includes sales fulfillment and your role has View sales orders & fulfillment. There is no New button: shipments are created from a sales order.

Screen tour

The shipment list

Column Meaning
Shipment # SHIP-<order number>, for example SHIP-SO-000031. Click to open.
Sales order Internal number of the order (#15).
Date Ship date.
Carrier Carrier name, or —.
Status Draft or Posted.

Newest first; 50 most recent; no search, filters or export. Empty state: No shipments — "Create a shipment from a reserved sales order."

The shipment detail page

Area What it shows
Header Shipment number, status badge.
Summary panel Sales order (link), Ship date, Warehouse (#n), Carrier · service, Tracking #, Label (label number with a Generated badge).
Tabs Lines, Carrier, Tracking, Ledger result.
Override controls (draft only) Allow shipping expired lots, Allow shipping quarantined/recalled lots; "(no permission)" if you cannot use them.
Action bar Draft: Save lot/serial, Post shipment. Posted: Create source reversal, or the badge "Reversed by return #n".

Lines tab

Column Meaning
Item Item number with a badge when lot/serial/expiry tracking is required.
Ship qty Quantity to ship. Read-only: it is everything still unshipped on the order line.
Lot / Serial On a draft: a lot selector (with an earliest-expiry suggestion you can apply for expiry-tracked items) and/or a serial selector. Posted: "Lot #n" / "Serial #n".
Selected How many lots/serials are selected.

Carrier tab (editable on drafts)

Field Rules / defaults
Carrier Defaults to SolaShip. Up to 100 characters.
Service Standard ground (default), Express, Freight.
Tracking # Up to 100 characters.
Warranty months 0–120, default 12. Sets the warranty end date on shipped serial numbers.
Weight, Length, Width, Height 0 or more. Weight starts as the total ship quantity.
Ship to Starts as the customer name.
Address Empty; type the delivery address.

Below the fields: Save shipping details, then Rates cards and the label card.

Rates are SolaStock's built-in estimates, not live carrier quotes. They are shown in USD and use the package weight (minimum 0.1):

Service Base Per kg Days
Standard ground 4.50 0.80 3-5
Express 9.00 1.45 1-2
Freight 35.00 0.55 5-8

Tracking tab shows Carrier, Tracking #, Status and an event table (Time, Status, Event). Statuses: Label created, In transit, Delivered, Exception. SolaStock itself records "Label … created" and "Shipment handed to carrier"; it does not receive delivery updates from carriers.

Ledger result tab lists the stock movements after posting: Date, Item, Warehouse, Direction (Out), Quantity, Unit cost, Total, Running quantity. Before posting: "No ledger entries yet. They appear here after posting."

Create a shipment

  1. Open a sales order that is Reserved, Partially reserved, Partially picked, Picked, Packing, Packed or Partially shipped.
  2. Click Create shipment. You see "Draft shipment created — review it, then post it to ship." and the draft opens.

The draft contains every order line still not shipped (ordered minus shipped). Serial-tracked lines get one row per reserved serial. If nothing remains: "Nothing remains to ship for this order."

Select lots and serials

  1. On the Lines tab, for each tracked line choose the lot, or select exactly as many serials as the ship quantity. For expiry-tracked items, apply the earliest-expiry suggestion if you want FEFO.
  2. Click Save lot/serial. You see "Lot/serial selection saved." (This also saves the Carrier tab values.)

Until every tracked line is complete, Post shipment is disabled with the tooltip "Complete lot/serial capture first" and the hint "Select lot/serial for every tracked line before posting." Failure: "The lot/serial selection could not be saved."

Enter shipping details and a label

  1. Open the Carrier tab, fill in the fields, click Save shipping details → "Shipping details saved." Save your lot/serial selection first; this button reloads the lines.
  2. Optional: on a rate card click Use rate & label → "Shipping label generated." The label card shows carrier, service, shipment number, tracking number and a QR code. Carrier, service and tracking number are filled in (a tracking number starting STK is generated if you did not type one), and the label number LBL-… appears in the summary.

Failures: "The shipping details could not be saved.", "The shipping label could not be generated." You can also generate a label after posting.

Post a shipment

  1. Click Post shipment.
  2. The dialog Post shipment? says: "Posting writes stock movements to the inventory ledger and locks this document. It cannot be edited afterwards." Click Post.
  3. You see "Shipment posted — stock shipped OUT."

What happens:

  • All active reservations of the sales order are released, then stock goes OUT of the shipment's warehouse at the ship date, valued by your costing method.
  • The order's Shipped quantities rise; it becomes Shipped or Partially shipped.
  • Shipped serial numbers get the customer as Owner and Warranty until = ship date + warranty months.
  • If a tracking number is set, the tracking shows In transit — "Shipment handed to carrier".
  • A Shipment posted event is sent to SolaCount when connected; SolaCount posts cost of goods sold (Dr Cost of goods sold, Cr Inventory).

Posting can be refused ("The shipment could not be posted." plus the reason), for example:

Reason Fix
Insufficient stock (negative stock disabled) Receive or transfer stock first.
Expired, quarantined or recalled lot Pick another lot, or tick the override if you hold the permission.
"Serial n is not actively reserved by this sales order." Select a serial reserved on the order.
"Shipment has no quantity to ship." Nothing left to ship.
"The shipment quantity exceeds the quantity remaining on this sales order. Refresh the order and enter the actual remaining quantity." Another shipment took part of the order first. Concurrent shipments are serialized per order, so the two together can never ship more than was ordered. Reduce the quantity.
"A shipment line does not belong to this sales order and product. Reopen the shipment from its sales order." A line points to another order or product. Create the shipment again from the order.
"This item is not available for sale. Enable Available for sale in item settings to use it on a new sale." The item's Available for sale box was unticked after the order was made. Tick it in Items, or ship something else.
"Confirm the sales order before dispatching its remaining quantities." / "Invoice INV-… will fulfil this sales order. Approve its SolaCount request before shipping, so the goods are not billed twice." The order belongs to a Fulfillment Request that is not approved for this warehouse, or an invoice has claimed it.
"Choose the required lot, serial number, or variant for this product before dispatching." The tracked item needs its lot, serial or variant on the shipment line.
"A credit is updating undelivered demand. Retry dispatch after the credit finishes, or ask the accountant to resume it." A SolaCount credit is closing part of the order's undelivered demand. Retry in a moment.
Mapping review required Finish SolaCount matching (SolaCount integration).

Shipments of invoices and cash sales

A shipment created from a sales order that came from a SolaCount invoice updates the Fulfillment Request: Dispatched rises and the request becomes Partially dispatched or Fully dispatched. A Create shipment form on such an order is pre-filled with the quantity still to ship after any quantity cancelled by a credit. Shipments confirmed on Cash Sale Dispatch are normal posted shipments too and appear in this list.

Receipt and shipment dates are stored exactly as the calendar day you entered, without being shifted by time zones, and the order and receipt forms default to today's date in your own calendar.

Return or reverse a shipment

On a posted shipment, click Create source reversal (needs Create & post sales returns (stock IN)). A new sales return opens pre-filled from this shipment. See Sales Returns. Once a return reverses the whole shipment, the button is replaced by "Reversed by return #n".

Statuses and lifecycle

Status Meaning Allows
Draft Editable; stock not moved. Save lot/serial, Save shipping details, labels, Post shipment
Posted Stock shipped out; locked. Labels, Create source reversal
Posted + "Reversed by return #n" Fully reversed by a return. View only

Draft shipments cannot be deleted.

Permissions

Role View Create / edit / post Overrides Create source reversal
Owner, SolaStock Administrator All warehouses Yes Yes Yes
Inventory Manager, Warehouse Manager, Warehouse Operator (scoped) Assigned warehouses Yes No No
Inventory Viewer (scoped) Assigned warehouses No No No
Custom role View sales orders & fulfillment Create & post shipments (stock OUT) Ship expired lots (override), Ship quarantined / recalled lots (override) Create & post sales returns (stock IN)

The server only honours an override if you both tick it and hold the permission.

Confirmations and "Status not confirmed"

If the connection drops during posting you may see Status not confirmed — "We could not confirm whether the change completed. Check the current status before submitting again." Click Check current status. Posting the same shipment twice never ships twice; it is posted once.

Worked examples

Example 1: ship a reserved order

SO-000031: 50 cartons of Water 500ml x24 for Gulf Star Supermarkets LLC from Dubai Main, not lot-tracked.

  1. Omar Haddad clicks Create shipment → SHIP-SO-000031, Ship qty 50, weight 50.
  2. Carrier tab: Service Freight, Address "Warehouse 7, Al Quoz Industrial 3, Dubai", Save shipping details. Freight rate: 35.00 + 50 × 0.55 = 62.50 USD, 5-8 days.
  3. Post shipment → Post. Dubai Main drops from 180 to 130 cartons; Ledger result shows Out 50. The order is Shipped. In SolaCount, Sara Khan invoices AED 1,312.50 and links it with Review shipment link.

Example 2: serials, expiry lots and a label

SO-000032 ships 120 cartons of Fresh Juice 1L (expiry-tracked) and 2 Barcode Scanner BS-200.

  1. Create shipment. Lines: juice 120; scanners Serial #91 and #92 (reserved).
  2. For juice, the suggestion proposes lot FJ-2610A (expires 20 Oct 2026); Omar applies it. Save lot/serial.
  3. Carrier tab: Warranty months 24, Weight 130, Save shipping details; on Express (9.00 + 130 × 1.45 = 197.50 USD) click Use rate & label. Tracking shows Label created.
  4. Post shipment. Juice and scanners go out; the scanners show Owner "Gulf Star Supermarkets LLC", warranty until 2028; tracking turns In transit. SolaCount posts cost of goods sold for the shipped cost.

How it connects

Tips and common problems

Problem Cause Fix
Post shipment disabled A tracked line lacks lot/serial. Complete selection and Save lot/serial.
I can't change Ship qty Ship qty is everything unshipped on the order. Change the order (while draft) or ship it all.
Selections vanished after saving shipping details Unsaved lot/serial choices were reloaded. Click Save lot/serial first.
Second Create shipment for the same order fails Number SHIP-<order> already used. Open the existing draft from Shipments.
Rates are in USD / not a real carrier Built-in estimates. Use them for reference; book the carrier separately.
No invoice SolaStock never invoices. Create it in SolaCount and link it.

Related