Managing Cash Sales of Items in a Point of Sale System Integrated to M3

This document explains what happens in the point of sale (POS) system and in M3 when a customer wants to buy an item and pay in cash.

Outcome

The item is sold and a cash payment is entered into the point of sale system. Sales information is uploaded to M3 via a point of sale interface and the stock level is updated directly. The general ledger and sales statistics are usually updated on a later occasion.

The following files are updated:

  • Sales ticket input-OPSALE
  • Stock balance-MITTRA, MITBAL and MITSTA
  • Sales statistics-OSBSTD
  • General ledger-FGLEDG.

Before you start

  • At the shop, it has been decided that stock levels should be updated immediately after sales information is uploaded and validated into M3. The update is started from the external POS system when it communicates with M3 through the sales tickets application programming interface (OPS270MI). The 'Stock update' field must be selected and the 'BchPrcRound' (Batch Process Round Number) API transaction must be used to initiate the process in M3.
  • The POS system controls the upload frequency of sales information to M3. The upload frequency must be specified in the POS system, and is usually determined either by a constant number of sales tickets to be sent each time or by a time interval.
  • If customer-specific prices are required at the POS, the POS system must be interfaced with the application programming interface 'Price and Discount Inquiry Interface' (OIS320MI), where the 'GetPriceLine' (Get Item Price for an Order Line) transaction must be used.
  • The 'Separate accounting' parameter in 'POS Settings' (OPS700) must be selected if you want the discounts to be accounted for separately in the general ledger (FGLEDG). If the 'Separate accounting' parameter is selected, then sales are accounted as gross sales.

Follow these steps

  1. The customer picks up the item in the shop

    The customer picks up the required item in the shop and takes it to a point of sale.

  2. Enter/Scan the item in the point of sale system

    The item is entered and/or scanned in the point of sale system and possible prices and discounts are displayed. General price lists from the point of sale system are used.

  3. Identify the customer

    The customer is checked and identified to verify whether the customer should have any additional discounts or customer-specific prices. Customer-specific prices for an item are retrieved by using 'Price and Discount Inquiry Interface' (OIS320MI) and the 'GetPriceLine' (get item price for an order line) transaction. Note that only line discounts can be used.

    This activity is optional and is used only for known customers.

  4. Enter payment and get a receipt

    A payment is entered. It is possible to have many different payment methods per receipt; that is, multiple 1990 transactions (payments). For example, a payment can be made in cash, with a check or by credit card. Furthermore, if the customer receives money back or the amount is rounded off according to standard practices, then a 1990 transaction is created.

    Receipt No. 123456

    Item No.

    Quantity

    U/M

    Amount

    Item A 1 Pce 99.95
    Subtotal 99.95
    To pay 100.00
    Master Card 500.00
    Change back 400.00
    VAT 25% VAT 19.99
  5. Upload sales information to M3 and update stock levels

    After the payment is entered, it is uploaded to M3 through the point of sale application programming interface 'POS Sales Tickets Interface' (OPS270MI). Two different transaction types are used:

    • Transaction type 1000=Sale of items
    • Transaction type 1990=Payments.

    The stock level is updated directly and can be displayed in both 'Balance Identity. Open Toolbox (MWS068)' and 'Stock Transaction. Display History' (MWS070).

    The sales ticket input file OPSALE is updated as described in the table:

    Transaction type Item No. Quantity U/M Payment method VAT Amount
    1000 Item A 1 Pcs 19.99 79.96
    1990 Master Card (MC) 500.00
    1990 Cash (CSH) –400.00
    1990 Rounding off (RND –0.05
    Note: Transaction type 1990 in the OPSALE file corresponds to accounting type 101 in the general ledger, and transaction type 1000 corresponds to accounting type 120.
  6. Update general ledger and sales statistics

    Sales statistics (OSBSTD) and general ledger (FGLEDG) are updated in batch through 'POS Sales Ticket. Update' (OPS280). The 'Sales statistics interface' and 'Financial interface' parameters in (OPS280) must be selected before the batch is run. Note that you should also select the 'Inventory accounting interface' parameter. This means that the stock is updated by sales tickets that have been validated in 'POS Sales Ticket Toolbox' (OPS275) or 'POS Sales Ticket. Transfer' (OPS270).

    For the general ledger, the following accounting events and types are created:

    Accounting event Accounting type Amount Bank operation
    OP20 101 (Cash payment) 500.00 47 (Master Card)
    OP20 101 (Cash payment) –400.00 45 (Cash)
    OP20 101 (Cash payment) –00.05 46 (Rounding off)
    OP20 111 (VAT payable) –19.99
    OP20 120 (Revenues) –79.96
    Note: The bank operation is retrieved from the selected payment method.