• The Sales panel contains functions to create and modify Sales , print Receipts and Invoices and enter Payments for Sales
  • Sales can be assigned to a Contact, so that customer details can be recorded
  • Sales must have Sale Rows to be saved
  • Sale behaviour is defined by the Order, Delivery, Layby (Lay-away), Pro Forma, and Dispatched toggles
  • Sales have automatically calculated Paid and Complete statuses which are recalculated and applied when a Sale is created or modified
  • A Sale is considered Paid when the total of the Payments made, minus any surcharges incurred by the Payment Method, is equal to the total of the Sale including any Tax Rates and Discounts.
  • A Sale is can behave differently depending on it's properties
    • Order and Delivery are considered Complete when Paid and marked Dispatched
    • Layby are flagged for organisational/reporting purposes and are treated the same as Order when deciding whether Complete
    • Pro Forma and Reversed Sales do not affect the Stock Count 
    • Any Payments added to a Pro Forma or Layby will affect Floats, totals, etc 
    • A Pro Forma Sale will never be considered Complete regardless of payment status
    • Reversed Sales will not affect Floats, totals, etc, and Payments under them will be flagged as Reversed
    •  Sales not marked for Order or Delivery are considered Complete when Paid
    • For the purpose of succinctness, Dispatched can mean the item as either been posted or collected - it has been passed on to the customer
  • Receipts are printed when the Complete Sale function is used, or can be triggered by pressing the Receipt button.  Sales must be saved before a Receipt can be printed
  • Information on Receipts may be truncated due to space limitations.  The Sale Note is never printed on receipts, nor are Product Descriptions
  • Invoices contain mostly the same data as Receipts, without truncation, including Product Descriptions and Sale Notes
  • Orders will show an alert when their Due By date is approaching if set.  The time before this alert appears prior to the Due Date can be configured in the Configuration panel
  • When a Sale is Reversed or Completed it is locked for editing.   
  • On Completion or Reversal, completionDate and reversedDate fields are automatically set with the current date/time.
  • Contact, Product, Category, Tax Rate, Discount information are all stored with the sale as they exist at the time of sale.  That means if you edit a a product after a sale is made, the Sale will not reflect that change so that data remains accurate as it was at the time of sale
Sale Rows, Tax Rows, Discount Rows
  • Sale Rows contain the information for each item being sold
  • A Sale Row can be created several ways
    • A Blank Sale Row can be added, devoid of any pre-filled information.  Configurable Blank Tax Rows and Blank Discount Rows can be added to blank Sale Rows .  Rows created in this manner are not connected in any way to existing Products, Tax Classes or Discounts, and are stand-alone for all purposes including reporting.  'Manually edit rows' must be checked for this option to appear
    • New row from products can be used to search for a Product, and create a Sale Row containing all of the pre-filled immutable information for that Product, including it's Tax Class and Discounts and any information inherited from it's Category.The Product and Category details will also be recorded with the Sale Row for reporting purposes
    • New row from category will add an editable Sale Row with the Tax Classes and Discounts from a Category.  The Category details will also be recorded with the Sale Row for reporting purposes
  • Apply global tax class and Apply global discount will remove all Tax Rows or Discount Rows from each existing Sale Row and replace them.  If you wish to apply the global tax class or global discount to all items in a sale, you will need to apply the global tax class AFTER all rows are added.
Sale Payments & Completing a Sale
  • Partial Payments can be made by clicking the Payments button while modifying a Sale
  • Payments can also be deleted from a Sale in this window, removing them from the system
  • Amount and Payment Method are required.  Drawer, Drawee and Reference can be used to store additional information regarding the Payment, for example cheque details
  • The final Payment, that is the Payment that will bring the total of all Payments excluding surcharges to the total of the Sale, must be entered using the Complete function
  • The Complete function allows the entering of a Payment automatically calculated to the correct outstanding amount for the Sale, accounting for the Payment Method and associated Surcharge if it exists.  It is also possible to calculate the change required for the transaction by entering the Amount Tendered
  • The Complete function will also mark the Sale as dispatched
  • The Payment Method details used is stored verbatim at the time the Payment is entered.  Modifying the Payment Method after a Payment is entered will not be reflected on the existing Payment
  • If the final Payment for a Sale is entered from the payments modal rather than by using the Complete Sale function, the Sale will not be marked as dispatched
Paying with credit


  • Credits can be created from the Payments screen
  • Click on the Payments Button after saving a Sale, ensuring that the Contact with the credit to be used is assigned to the Sale
  • Click 'Payment from Credit' button and select the credit you wish to use
  • Enter the amount of credit to use and click 'Pay with Credit' to apply the credit to the Sale as a payment
  • If paying the full amount of a sale, receipts/invoices are not automatically printed after paying with a credit and you may need to click on the 'Receipt' button

A refund is an expense - outgoing money.  There are several refund scenarios, outlined below. Note refunds like other expenses ignore payment method surcharges.

  • Editing an existing Sale to remove an item and refund the difference
    • Simply edit the Sale as needed.  If a refund is required, using the Complete Sale function again will create a Refund Expense or Payment for the correct amount.
  • Refunding an entire Sale
    • Click the Sale and then the Refund button in the preview sidebar - a Refund Expense will be created for the amount of the whole Sale and the Sale will be marked as reversed and restocked.
  • Refunding an amount and optionally restocking a Product (eg. the case a customer brings back an item without the receipt)
    • Click in the Refund button at the top of the screen
    • Enter an optional Product being returned - a Stock Adjustment will be created to restock the given quantity
    • Select a refund method
    • Select the price and quantity to refund.  The amount refunded will be price x quantity, and the quantity will be used to restock the product if selected
  • Outstanding can be negative in the case of an overpayment.  Overpaid Sales can be partially refunded to correct them

See the Default Behaviours document for information on fields which are automatically set and unset, and the effect deleting items will have on other related items.