Scan, search or tap the item grid to build the cart, fine-tune each line, attach a customer, press Add Payment and Complete Sale, and finish with a printed, emailed or SMS receipt.
The Sales screen is home base in PHP Point Of Sale. Everything a sale needs happens here: adding items, attaching a customer, adjusting lines, applying discounts, taking payment and handing over a receipt. Open it from Sales in the left navigation menu. If your location has more than one register you are asked to Choose Register first — see registers and cash management.
This article walks through a complete sale in detail, including every adjustment you can make to a line, the customer panel, the prompts you might see, and the settings and permissions that shape each step.
The four parts of the Sales screen
- Item queue (the cart) — the table of items being sold, with columns for Item Name, Price, Quantity, Discount and Total.
- Customer panel — where you attach, edit or detach a customer, toggle Email Receipt and SMS Receipt, and mark the sale as a Delivery.
- Price section — sale-wide controls: Item Tiers, Discount all Items by Percent, Discount Entire Sale, Discount Reason and Edit Taxes. Details are in discounts and price overrides.
- Payment section — Amount Due, the payment type selector, Add Payment and Complete Sale.
Next to the item search bar is the register mode dropdown (it shows Sale by default). It switches the screen between Sale, Return, Estimate, and — when the features are enabled — Store Account Payment and Purchase Points. Returns are covered in returns, exchanges and trade-ins and estimates in suspended sales, layaways and estimates.
Add items to the sale
You can get items into the cart three ways, and mix them freely:
- Scan a barcode. Click into the Find/Scan Item search bar (it usually already has focus — press F2 to focus it from anywhere) and scan. The item lands in the cart immediately with a quantity of 1. Scanning matches item ID, item number (UPC), product ID, additional item numbers, serial numbers and variation item numbers. See barcodes and labels for printing your own.
- Type to search. Start typing an item name or number in the search bar and pick from the suggestions that appear. The suggestion list is permission-controlled per employee (Allow Item Search Suggestions For Sales), and the ID shown next to results follows Store Config → Sales → Item ID to Show on Sales Interface.
- Tap the item grid. Press Show Grid next to the search bar to open the tappable item grid; press Hide Grid to put it away. The grid is organized into tabs — Categories, Tags, Suppliers, Favorites, and Items and Kits — and tapping an item adds it to the cart. Use the back arrow in the top left of the grid to go up a level.
You can also create a brand-new item without leaving the sale: click the pencil icon beside the search bar (New Item) to open the item form, save, and return to the sale. See creating items.
If a search or scan matches nothing and a parts-catalog integration is connected, the register asks "Do you want to contine search in other venders?" (as labeled in the app) with a button for each connected vendor catalog, so you can find the part externally — see parts catalog lookups.
With Store Config → Application Settings → Advanced sales interface enabled, typing in the item search opens an All Products dialog instead of the inline suggestion list: matching items appear as rows showing the image, name, Category, Quantity (for employees with the See Item Quantity permission), Attributes and Supplier, each with a checkbox. Tick as many results as you like — the footer counts how many are Selected — then press Add to drop them all into the cart in one batch, or Close to dismiss. Default: off.
Settings that shape the grid, all in Store Config → Sales:
- Always Show Item Grid — keep the grid open permanently instead of toggling it. Default: off.
- Default type for Grid — which tab opens first. Default: Categories.
- Default to Items and Kits tab — start on the flat list of items and kits instead. Default: off.
- Hide Categories on Sales Grid, Hide Tags on Sales Grid, Hide Suppliers on Sales Grid, Hide Favorites on Sales Grid, Hide Items and Kits on Sales Grid — remove any tab your store doesn't use. Default: all shown.
- Hide Images in Grid — show text-only tiles. Default: off (images shown).
- Hide out of stock items in grid — items with zero stock disappear from the grid. Default: off.
- Show Plus/Minus Buttons in Item Grid — quantity buttons directly on each tile. Default: off.
- Quick select for Variations — pick an item's variation right in the grid instead of a dialog. Default: off.
- Choose Quantity After Adding Item in Sales — prompts for a quantity every time an item is added, which suits stores that scan one label for a stack of goods. Default: off.
Adjust each line in the cart
Every value on a cart line is editable in place — click it, type the new value, and confirm with the checkmark:
- Quantity — items are added with quantity 1; click the quantity to change it. Selling by weight or fractional units works the same way.
- Price — click the price to override it. This requires the Edit Sale Price permission, and per-item minimum/maximum edit prices can restrict the range — see discounts and price overrides.
- Total — you can edit a line's total instead; the unit price recalculates to match (for example, setting the total of 2 jackets to 150 makes each 75).
- Discount — a percent or flat discount for that line. Small % and $ buttons in the editor switch between the two. Requires the Give Discount permission.
- Serial number — record exactly which unit left the store; duplicate serials are rejected. See serialized items and special item types.
- Description — the line's description text, editable per sale.
- Cost price — when the item allows it and the employee holds Edit sale cost price, useful for trade-priced goods.
- Sales person — when Store Config → Sales → Select sales person during sale is on, each line can be credited to a specific employee, independent of who rings up the sale. A sale-wide sales-person selector also appears above the price section, and Default sales person decides who is preselected (default: the logged-in employee). Commissions are calculated from this — see commissions.
- Variation — for items with variations, the line shows the chosen Variation with an Edit link and a click-to-change selector listing the item's other variations. Switching the variation re-prices the line: unit price, cost price and supplier follow the newly picked variation. See variations, attributes and units.
- Supplier — a per-line Supplier selector listing every supplier attached to the item; picking a secondary supplier can pull that supplier's selling and cost price onto the line (see suppliers). The field disappears when Store Config → Sales → Hide Supplier on Sales Interface or Disable Supplier Selection On Sales Interface is enabled.
- Modifiers — items with modifiers show a Modifiers entry with an Edit link that opens the modifier picker, and each chosen modifier's price on the line is click-to-edit, so you can override what a modifier charges on this sale only. Full coverage is in item kits and modifiers.
- Quantity Units — items sold in multiple units show a Quantity Units selector to pick which unit this line sells (or None). See variations, attributes and units.
- Number Damaged/Not return to stock — on return lines (negative quantity), enter how many of the returned units are damaged and should not go back into stock. See returns, exchanges and trade-ins.
- Create Purchase Order — a per-line checkbox for special orders: when the sale completes, every checked line is placed on a suspended purchase order tied to the sale so you can order the goods in — see purchase orders. Hide the checkbox store-wide with Store Config → Work Order → Hide Create PO On sales screen.
The expanded line also shows read-only information about the item:
- Promo Price and Retail Price — displayed when the line is selling at something other than the item's regular price, so the clerk can see what it normally costs.
- Stock — the current on-hand quantity at your location, shown only to employees with the Items permission See Item Quantity.
- Category — the item's full category path.
- Location at Store — the aisle/bin recorded on the item, when one is set.
- Recurring Amount — for recurring-charge items, the amount billed each cycle; see series, packages and recurring charges.
- Series Quantity and Number of days series must be used within — for series packages, how many sessions the line grants and the use-by window; see series, packages and recurring charges.
To expand or collapse the per-line details, use the +/− control in the cart's header row. Other line operations:
- Remove a line — click the red X at the left of the line. Removing lines can be restricted with the Can Delete Item Added To Sale permission.
- Sort the cart — click the Item Name, Price, Quantity, Discount or Total column header to sort the cart by that column; the first click sorts ascending, a second click flips to descending, and an arrow on the header shows the current direction.
- Rearrange lines — with Store Config → Sales → Allow Reorder on sale screen enabled, drag lines into the order you want them to print.
- Grouping — scanning the same item twice increments the existing line's quantity unless Do NOT group items that are the same is enabled, which keeps each scan on its own line.
Attach a customer
A walk-in sale needs no customer at all, but attaching one unlocks loyalty points, price-tier pricing, store account charges, recent-sales history and emailed or texted receipts.
- Click the Type customer name... field in the customer panel and start typing a name, phone number or account number, then pick the customer from the suggestions. You can also scan a customer's loyalty/account barcode into the item search bar — if a scan could be either an item or a customer, the register asks What did you scan? with ITEM and CUSTOMER buttons.
- To create a new customer on the spot, click the person-with-plus icon. With Store Config → Sales → Enable Customer Quick Add the quick-add dialog captures just the essentials; otherwise the full customer form opens and returns you to the sale on Save. See customer profiles.
- To fix a customer's details mid-sale, click the edit icon next to the customer's name, make the change, and press Save — you come straight back to the sale.
- Attached the wrong person? Click Detach in the customer panel.
Once a customer is attached, the panel shows their store account Balance, loyalty Points, and recent sales (controlled by Number of recent sales by customer to show, default 10, and Hide Recent Sales for Customer). Two toggles control receipt delivery:
- Email Receipt — turns red-envelope into a blue checkmark; the receipt is emailed automatically when the sale completes. It requires an email address on the customer profile.
- SMS Receipt — same idea for text messages; it requires a mobile number on the profile.
Once the cart has items, the customer panel also offers Cart items historical price for this customer. It opens a dialog listing, for each cart line, what this customer paid for that item on past sales — columns Sale Date, Sale ID, Item Unit Selling Price, Item Unit Discount Percent, Comments and Actions. Click Use this Price on the row you want to match (one row per item; clicking again deselects it), then press Save / Apply selected to reprice the selected cart lines in one go. Applied prices still respect per-item minimum/maximum edit prices and the below-cost rules.
The Delivery checkbox opens delivery information (address, date and status) for orders your store will deliver or ship — see deliveries and shipping.
If Store Config → Sales → Require customer for sale is enabled, the sale cannot complete without a customer attached.
Take payment
- Check the Amount Due shown at the bottom of the price section.
- Pick a payment type. The built-in types are Cash, Check, Gift Card, Debit, Credit, Store Account and Points; enabling EBT adds EBT and EBT Cash, and you can define custom types — see payment types, tips and split payments.
- Enter the Payment Amount (it defaults to the amount due) and press Add Payment. Press Ctrl+Q for the quick-cash Amount Tendered dialog with denomination buttons.
- Repeat with another type to split the payment. Each recorded payment is listed and can be removed before completing.
- Press Complete Sale. The screen shows Change Due when the tender exceeds the total, then the receipt appears — see receipts, gift receipts and fulfillment sheets.
Card payments through an integrated processor prompt the terminal automatically; see taking card payments. Completing sales is itself permission-gated (Complete Sale): an employee without it sees "You do not have permission to complete sales. You may suspend sale or have manager login to complete sale."
Suspend the sale for later
Suspend Sale stores the cart — items, customer, prices and any payments — as a layaway, estimate or custom suspended type so it can be resumed on any register. The full workflow, including layaway payments and pay-online links, is in suspended sales, layaways and estimates.
Edit a completed sale
- On the Sales screen, open the 3-dot (...) menu above the customer panel and choose Show last sale receipt for the most recent transaction, or Lookup Receipt and enter the Sale ID (printed on the receipt with your Sale ID Prefix, default
POS). You can also scan a printed receipt's barcode into the item search bar — the register asks whether you want to EDIT or RETURN that sale. - On the receipt screen, click Edit in the top left.
- Confirm the warning — "Are you sure you want to edit this sale? This will replace the current sale." — and the sale reloads on the register.
- Change anything (items, prices, customer, payments), then press Complete Sale again to save the replacement. Press Cancel Edit to abandon the edit without changes.
Editing requires the Edit Sale permission; the receipt lookups are separately gated by Can Lookup Last Receipt and Can lookup receipt. The entire 3-dot menu — every entry in it — only renders for employees holding the Sales permission Show Sales 3-Dot Menu.
If you open a sale that was rung up at a different location than the one you are signed into, a red banner warns "You are editing a sale that is a different location that you are currently using" (as labeled in the app) so you don't correct the wrong store's records by accident.
Sales for the day
The 3-dot menu's Sales for the day entry lists every sale recorded today — completed, suspended and deleted — in one table with columns Date, Status (Completed, Suspended or Deleted), Total, Items, Suspended Sale Type and Customer. Employees with the Edit Sale permission (or Edit Suspended Sale for suspended rows) also get an inline Edit button per row that reopens that sale on the register — handy for fixing this morning's mistake without hunting through reports.
Practice with test mode
The 3-dot menu also holds Enable test mode and, once it is on, Disable test mode. Test mode is a practice/training state for your sign-in session: a red banner reads "You are in test mode. Sales will NOT be saved", and completing a sale records nothing — the cart is simply cleared and the receipt is marked TEST MODE TRANSACTION. Integrated card processing is blocked while test mode is on, so no real charges can happen. The menu entries disappear when Store Config → Application Settings → Disable test mode is enabled (and on the demo site). See store configuration basics for the full walkthrough.
Cancel, void or delete a sale
- Before completing — press Cancel Sale (visible once items are in the cart) and confirm. The cart is cleared; nothing is recorded.
- After completing — look the sale up and enter edit mode as above, then press Void/Delete. The sale is removed from reports and inventory is corrected. This requires the Delete Sale permission. If the sale was paid by card through an integrated processor, the register offers Void and Refund Credit Card so the payment is reversed at the same time.
- Deleted by mistake? Deleted sales remain visible in Reports → Deleted Sales, where Undelete Sale restores one.
Prompts you might see
- Age verification — items marked Requires Age verification (with a Required Age) make the register ask for the customer's birthday or a scanned driver's license before continuing; if the check fails or is cancelled, the item is removed from the cart. Enable the item field with Store Config → Items → Verify age for products. The prompt has two modes: by default it is titled "Enter birthday or scan license" and accepts a typed date of birth (the placeholder shows your store's date format) or a license scan; with Require Drivers license scan for age verification enabled it is titled "Scan driver's license" instead, the placeholder reads "Scan the barcode on the back of the driver's license", and typed birthdays are rejected — only a scanned license barcode passes. Age verification strict date format check additionally rejects typed dates that don't match the store's date format exactly.
- Related products — items with related products configured pop up companion suggestions so add-on sales don't depend on memory.
- Price rules — qualifying buy-one-get-one rules ask "Would you like to add the qualifying Free or Discount Item(s) to the sale?"; see price rules and promotions. The dialog can be turned off with Disable Price Rules dialog.
- Out of stock — by default the register warns but still sells at zero stock. With Store Config → Sales → Do not allow out of stock items to be sold, the item is refused instead. Estimates skip the check entirely.
- Below cost — "You are selling item below cost price" warns on underpriced lines; Do NOT allow items to be sold below cost price blocks them outright.
- Credit limit — charging to a store account past the customer's limit warns, or blocks when store accounts are configured to enforce limits. See store accounts and credit.
- Points available — with the loyalty prompt enabled, the register asks whether to apply a customer's available points. See loyalty programs.
Keyboard shortcuts
Click Keyboard shortcuts help on the Sales screen (visible on large displays) for the on-screen list:
| Keys | Action |
|---|---|
| F1 or F3 | Start a new sale |
| F2 | Focus the item search |
| F4 | Complete the current sale |
| F7 | Focus the payment amount field |
| F8 | Open Suspended Sales |
| Esc | Cancel the current sale |
| Ctrl+Q | Open the quick-cash (Amount Tendered) dialog |
Permissions that shape the Sales screen
Access to the register at all comes from the Sales module permission itself — an employee without it never sees the Sales screen. The finer-grained actions live on that module in the employee's permission list — see permissions and templates: Complete Sale, Suspend Sale, Edit Sale, Delete Sale, Edit Sale Price, Give Discount, Edit Sale Tier, Edit sale cost price, Process Returns, Can Create Estimate, Can Delete Item Added To Sale, Can Lookup Last Receipt, Can lookup receipt, Change Sale Date, Edit Taxes, Delete Taxes, Show Sales 3-Dot Menu, Allow Item Search Suggestions For Sales and Allow Customer Search Suggestions For Sales.
A few of those deserve a word on exactly what they gate: Change Sale Date controls the Change Sale Date checkbox and date picker in the payment section, offered when editing a sale (or on new sales with Change Sale Date For New Sale enabled); Allow Customer Search Suggestions For Sales controls whether the customer field at the register autocompletes as you type; and Show Sales 3-Dot Menu shows or hides the entire 3-dot menu.
Common questions
Why don't I see the Return or Estimate option in the mode dropdown? Those modes only appear for employees holding the Process Returns and Can Create Estimate permissions respectively. Grant them under Employees → (employee) → Permissions → Sales.
Why is the price on a line not editable? The employee lacks the Edit Sale Price permission, or Limit Manual Price Adjustments And Discounts is enforcing a per-item minimum/maximum edit price. See discounts and price overrides.
Can I ring up a sale with no customer? Yes — customers are optional unless Require customer for sale is enabled in Store Config → Sales. Without a customer you cannot email or text the receipt, award loyalty points or charge a store account.
How do I change the quantity of an item I just scanned? Click the number in the Quantity column and type the new value, or enable Choose Quantity After Adding Item in Sales to be prompted on every add.
The customer wants to pay half cash, half card. How? Enter the cash amount, press Add Payment with Cash selected, then select Credit for the remainder and complete. Any combination of payment types can be stacked — see payment types, tips and split payments.
How do I fix a sale I completed five minutes ago? Open the 3-dot menu, choose Show last sale receipt, press Edit, confirm the warning, correct the sale and press Complete Sale again. The edited version replaces the original.
Why did an item add with a price of 0? The item has no selling price set. With Edit item price if 0 after adding to sale enabled, the register opens the price editor automatically so the clerk fills it in on the spot.
Why is the 3-dot menu missing from my register? The employee lacks the Sales permission Show Sales 3-Dot Menu, which hides the entire menu — Sales for the day, gift cards, test mode, cash-drawer entries and all. Grant it under Employees → (employee) → Permissions → Sales.
What does test mode do — will practice sales show in my reports? No. In test mode nothing is recorded: completing a sale clears the cart, the receipt is stamped TEST MODE TRANSACTION, and reports, inventory and cash counts are untouched. Turn it on and off from the 3-dot menu (Enable test mode / Disable test mode).
Can I charge a customer what they paid last time? Yes — with the customer attached and items in the cart, press Cart items historical price for this customer in the customer panel, click Use this Price on the past sale rows you want to match, and apply. The selected lines are repriced in one step.
Does the register work if my internet drops? Yes — the register keeps selling in offline mode and syncs completed sales when the connection returns. See selling offline.
Comments
0 comments
Please sign in to leave a comment.