The Pending Order queue¶
Pending Order is the one screen that shows every order still owing something:
a firearm to book out of the bound book, money to collect, or a parcel to ship.
Counter staff work it several times a day. Open it from the Pending Order
tile on the Gun Shop workspace, or go to /app/pending-dispositions.
Before you start¶
- You need one of these roles: Sales User, Sales Manager, Stock Manager, or System Manager.
- Refresh at the top right reloads the queue. The page also reloads itself every time you return to it and after every action.
- When there is nothing left to do the page reads "Nothing waiting — every order is shipped and paid."
Three kinds of row¶
The queue merges three sources into one card layout. What a card can do depends entirely on which one it came from.
| Row | Where it comes from | Tag on the card |
|---|---|---|
| Counter order | An order built on Create Order | Individual or Business (FFL) |
| Web order | A paid WooCommerce order | Web, or Dealer for the dealer store |
| GunBroker order | A sale won on GunBroker | GunBroker |
Web orders are covered in more depth under web orders, GunBroker under GunBroker.
A row leaves the queue once there is nothing left to dispose, collect, or ship, and no distributor leg is still open.
Reading a card¶
The top line carries the customer name and a run of badges.
| Badge | Meaning |
|---|---|
| FFL valid | The receiving license is on file and unexpired. |
| FFL expired / unverified | The license has lapsed or was never verified. Dispose is blocked. |
| Paid / Partly paid / Unpaid | Payment state of the order. |
| ✓ Disposed | Every firearm on the order is booked out. |
| ✓ ShipStation | The shipment was pushed. The number follows when there is one. |
| WC | The live WooCommerce status of a web order. |
| GB | The live GunBroker status. |
| Serial conflict | A serial arrived from the web store and was rejected. |
| In-store pickup | A web order addressed to your own license. |
The line under it links the Sales Invoice, the Woo Online Order, or the GunBroker order, then names where the goods are going: the receiving dealer, or the ship-to city and state, or "Counter pickup" when there is no address at all. The order date and any outstanding balance follow. A staff note typed on Create Order shows below with a 📝 mark.
Serial numbers show as pills. Blue pills are guns still to dispose. Grey pills are guns already on the bound book, kept visible so a finished order still shows what it contained.
Counter orders with distributor legs get a second strip of pills: one reading Local with the serials and lines still owed, then one per distributor order showing the distributor, the order name, and its status. Clicking a distributor pill opens that Distributor Order. Trouble states are colored, red for Error and amber for Hold.
The action buttons¶
Each card shows only the buttons its row is allowed. Where a button is present but greyed out, a short line underneath says why.
Dispose¶
Books the firearms out. On a counter order it books one FFL transfer disposition per serial, issues the stock, and queues the FastBound push. On a web or GunBroker order it does the same through that channel's own path.
Available on a counter order that still has undisposed serials and a destination FFL. Available on a web or GunBroker order that still has serials to book or is waiting on one. It is never offered on a direct order with no receiving license, because there is no transfer to record.
Clicking opens a confirmation dialog showing the customer, the receiving dealer with its expiry date, and every serial or item unit about to be booked. The action button stays disabled until you tick I've verified the FFL and serial number(s).
This writes the bound book
Dispose is the entry in your bound book and it goes to FastBound. Read the serials in the dialog against the guns in your hand before you tick the box.
Dispose is blocked, and the reason shown, when:
| Line under the button | Meaning |
|---|---|
| Verify the FFL first. | The receiving license is expired or unverified. |
| Record payment before shipping. | An individual's counter order still owes money. |
| Awaiting serial from WooCommerce. | The web order has a firearm line with no serial yet. |
| Serial rejected — correct it on the WooCommerce order. | A serial arrived from the web store but did not match free stock. |
| No shipping address — use Mark Shipped / Picked Up at handover. | A direct order with nothing to address a label to. |
C&R (Type 03) orders¶
When the receiving license is a Type 03 collector license, the dispose dialog grows a C&R (Type 03) verification block. A collector has no dealer at the far end and no Form 4473, so this dialog is the verification.
Fill in the C&R license number, the license expiration date, the collector's full name, and the licensed premises address. The parcel ships to that address, so it must be the licensed premises. The confirmation checkbox reads I have compared these details against the collector's C&R license.
The action stays disabled until the license number has 03 as its fourth group and the expiration date is today or later. The server checks the same rules again.
Ship¶
Pushes the order to ShipStation so staff pick the carrier and buy the label there. It does not dispose anything and does not touch the bound book.
Offered on counter and GunBroker rows while the ShipStation integration is on and the order has not been pushed. On a GunBroker row it appears only after Dispose, because the invoice ShipStation ships against is created by the dispose step. Never offered on a web order: the store's own ShipStation plugin on WooCommerce buys that label.
The dialog previews exactly what the label will say, the recipient, the c/o line for the receiving dealer, the address, and the items with their serials. The button reads Push to ShipStation.
Ship is greyed out for an expired FFL, for an unpaid individual's order, and for a direct order with no shipping address.
Mark Shipped (no ShipStation)¶
The escape hatch for an order that will not go through ShipStation: the license expired after dispose, the integration is off or misconfigured, or the label was bought elsewhere. It also books the Delivery Note for any deferred non-firearm stock, so inventory and cost of goods settle with the goods, then stamps the order shipped and clears it from the queue.
On a direct order with no shipping address the same button reads Mark Picked Up, for goods handed across the counter.
Counter rows only. It appears once no firearm on the order is still waiting to be disposed. It is greyed out while an individual's order is unpaid.
Record Payment¶
Books a later payment against an on-account counter order. The dialog asks for Payment Method (Cash, Credit Card, Zelle, or ACH), a reference where the tender needs one, an Amount defaulting to the outstanding balance, and Payment received on.
Set the date back if the money arrived on an earlier day. The payment books on that date, so a collection typed in late still lands in the period the deposit really did. See taking payment.
Counter rows only, and only while the order is not fully paid. Web orders are already paid before they reach the queue.
Mark Payment Received¶
GunBroker rows only, and only while the order is waiting on payment. A GunBroker sale is paid by cheque or money order that somebody has to bank, and recording that here is what opens Dispose. GunBroker's own "payment received" flag on their website does not do it.
The dialog asks for Payment Method (GunBroker Check or GunBroker Card), the Cheque / Money Order Number, the Amount Banked, and Deposited On. Enter the day the money went into the bank, not the day the envelope arrived.
Pickup¶
Web rows only, and only for an order the buyer placed against your own license. Those cannot be disposed, because booking a transfer to yourself would put an entry in the bound book that never happened.
Pickup opens an already-paid draft counter order and routes you to it, so the ordinary counter flow can run the Form 4473 and complete the sale. Once that draft exists the button is replaced by Open counter order, which returns you to the same draft rather than starting a second one.
An order with no regulated firearm has no 4473 to run, so Pickup finishes it on the spot.
Release order legs¶
Counter rows with distributor legs, once the order is fully paid and at least one Distributor Order is still in Draft. It confirms every draft leg and queues it for placement with the distributor.
You are asked to confirm first, and the confirmation says plainly that placement is real. RSR has no cancel API once an order is live. Legs that fail stay in Draft with their error shown, so you can fix and release again.
Edit¶
Reopens the order on the Create Order page. Counter rows only, and only while nothing has been booked: no disposition, no ShipStation push. Saving cancels the original invoice and creates a replacement. See editing an order.
Cancel Order¶
The full reversal of a counter order, in one call. The dialog lists exactly what will happen before you agree to it:
- return the firearms to stock and to the FastBound book, undoing any disposition,
- void the ShipStation shipment,
- record a refund for whatever was paid,
- cancel the linked Sales Order,
- cancel the invoice, which is kept as the audit trail.
Cancellation Reason is required. When money was taken you also pick a Refund Method, and Zelle asks for its transaction number. A confirmation checkbox arms the red Cancel Order button.
Cancelled documents are kept
Cancelling does not delete anything. The invoice, the dispositions, and the refund all stay on the record. That is what makes the reversal auditable.
What GunBroker rows do not get¶
GunBroker rows carry no Edit and no Cancel Order button, by design. A GunBroker sale cannot be unwound from the seller's side, so those actions are not offered rather than offered and refused. There is no Mark Shipped either, because tracking goes back to GunBroker automatically once the label is bought.
Troubleshooting¶
| Message you see | What it means | Fix |
|---|---|---|
| Awaiting serial from WooCommerce | Nobody has entered the gun's serial on the web order yet. | Enter it on the WooCommerce Edit Order screen. |
| Serial conflict badge | The serial sent from the web store is not free stock, is the wrong item, or is held by another order. | Correct the serial on the WooCommerce order. |
| still has undisposed firearm(s) | You tried to mark an order shipped before booking its guns out. | Dispose first, then mark it shipped. |
| is an individual order with an outstanding balance | An individual's guns cannot ship unpaid. | Use Record Payment, then ship. |
| has booked disposition(s) | You tried to edit an order already in the bound book. | Use Cancel Order and rebuild it. |
| was already pushed to ShipStation or marked shipped | The order is past the point of editing. | Use Cancel Order and rebuild it. |
| Settle the balance first — legs release on full payment | Distributor legs will not release on a part-paid order. | Collect the balance, then release. |
| Some legs did not release | One distributor order failed to confirm. | Read the error on the card, fix it, and release again. |
