Erpnext: POS Enhancement

Created on 8 Jan 2016  Â·  24Comments  Â·  Source: frappe/erpnext

Hello
In regards to the payment mode in a POS transaction, currently we can only select any one payment mode to settle the transaction. Also in the POS Profile settings there is option for just one Cash/Bank Account to be selected for payments.

Instead, a new Mode of Payments section should be added in the POS settings page, which should have a Child Table form having the following fields.

  1. Name of Payment Mode
  2. Cash/Bank Account

And on the POS payment screen the user should be able to select multiple payment modes in list mode, like it how a journal entry can have multiple accounts with various accounts of different accounts.

Also a numeric keypad should be added to input the amount for faster POS experience.

You may refer to the images below from tally and odoo POS transactions.

  1. Tally Input Screen
    print-preview-of-pos-invoice-multi-1024x493
  2. Tally POS print preview (Standard Print Template)
    print-preview-of-pos-invoice-multi1
  3. Tally POS print preview (POSPrint Template)
    image016
  4. Odoo Input Screen
    screen shot 2016-01-08 at 4 12 28 pm

This Multi mode feature is very basic and is a must to be included. Hope to see it in the next update.

Regards
KG

Most helpful comment

**HOLD RECEIPT SCREENS

**
@rmehta This is again how it's done in quickbooks and its very simple:

  1. Transaction is in progress. Customer is selected, 1 item is selected. To place this transaction on hold the "Put on hold" button is clicked.
    http://i.imgur.com/hoQizL2.png
  2. New transaction screen opens blank. If no customer or item has been entered yet in this screen, then the "Put on hold" button starts off as "Held receipts" in order to be able to go back to the list of held receipts from the same button. The moment a customer is selected or an item is entered, the button changes to "Put on hold"
    http://i.imgur.com/SFzCl3W.png
  3. If "Held receipts" button is clicked one is taken to the list of held receipts where one can select the one they wish to go back to.
    http://i.imgur.com/M0OTmD8.png
  4. Clicking on the transaction you want and selecting "I want to..->Unhold" takes one back to the transaction screen with everything as was previously left off
    http://i.imgur.com/kc7er2e.png
  5. A transaction can be put on hold the moment any information is entered, in this case only the customer was selected. This helps avoid asking the customer for their information again if you want to take care of another customer ahead of them and then return to them. This screenshot only shows when a receipt was held by only entering the customer name, but you can also hold the transaction with the items selected only without a customer, or both with a customer and a set of items.
    http://i.imgur.com/NG0x7gO.png
  6. Once any of the held receipts are completed, one can once again go to the "Held receipts" screen and see the list reduced and go to the next receipt or leave the held receipts there forever until you want to unhold them. To start a new transaction from this screen, you click "Make a Sale"
    http://i.imgur.com/LBDO8UJ.png

All 24 comments

I agree. I have started to think that i might ripping out the POS part of the application and rewrite it in meteor. Odoo has a really nice product but I feel like it going to turn into a sugar crm and the coding behind it is terrible.

@woakes070048 awesome. Please share your branch, would love to learn / help :)
]

@rmehta sir, can we expect to have the multi-mode payment in the next update ?

Not in our list, but we would love to help out contributors

@rmehta I am willing to pay for this feature. please give me the estimates.

@wuditex Awesome, can you add this as a bounty here? https://www.bountysource.com/

@rmehta sure I can, but I am not sure how much should the bounty be for

Add what you think is reasonable. Maybe some one else can also pitch in. Also post on the forum so anyone can claim it!

Sent from phone

On 15-Jan-2016, at 9:51 AM, wuditex [email protected] wrote:

@rmehta sure I can, but I am not sure how much should the bounty be for

—
Reply to this email directly or view it on GitHub.

I agree that the POS interface should have a rewrite. Odoo does this very well, maybe take a hint from them? Yes splitting payment is a very basic function and really shouldn't be very difficult to implement.

@pifiu By rewrite what you exactly mean ? Which features you would like to see ? If one can list down the exact requirements and we can chime in later with ours. We are ready to contribute :)

Well I think taking a look at the Odoo POS is a start and seeing how theirs works. I would also take some hints from QuickBooks POS edition.

I think some key features to start taking POS more seriously:

  1. Cash reconciliation - See this https://github.com/frappe/erpnext/issues/2731#issuecomment-173030060 and also its link on discuss.
  2. More customization options in the screen or settings in terms of layout and ability to perhaps enable a "touch screen friendly" view where the buttons and layout is optimized for easier touching.
  3. Splitting payment as this thread suggests.
  4. Better native POS thermal printer functionality without so many prompts - direct print to thermal. This is a big feature. Right now the printing configuration is clunky. To print you need to go through about 3 or 4 options before printing something. It should be possible to allow for the "print" button to instantly print to the thermal printer, not have to go through 1 or 2 extra options to be presented with which option to print. This goes back to the ability to set a tighter hardware integration and perhaps enabling a default printer if that would resolve the issue.
    Additionally an easier to customize receipt template engine.
  5. Options for printing barcode labels of products - although this is not necessarily a POS feature, it is used heavily in retail sector for labeling products.
  6. Support for dual screen options. This allows some businesses to provide the customer a "sale view" without just cloning the main operator monitor, and more similar to a price display so the customer can see the tally as products are being scanned and entered.
  7. Support for more hardware integration - primarily credit card and payment processing. Although a payment gateway can be integrated easily this still relies on keying in numbers and the transactions might be considered "card not presente". So a more elegant solution to be able to implement EMV chip cards with some universal or common hardware such as verifone for example would be nice.
  8. Mobile POS solution (is this already possible with the app?)

I can keep going on, but if I had to put a number one priority it would definitely be the quick receipt printing, since that is a very essential part of a POS sytem. One should not have to spend more time trying to print something than ringing up a transaction.

@pifiu I like all the points you mentioned. As for point 6. How do you see this being implemented? Is there a client facing (cash register) screen you have seen used?

@system19 @alikhoja @rmehta

  1. POS should have different payment modes like
    i) Credit Card
    ii) Cash
    iii) Credit Note
    iv) Debtors (with Party Name)
    v) Or as defined by the admin in POS settings.
  2. Integration with Loyalty App to pull
    i) Customer Name
    ii) Loyalty Points/Discounts / Price List
  3. Have Tabs for every unfinished POS transactions in order to be able to hold billing for a customer if needed and bill the other in the mean time.
  4. Need a number-pad for touchscreen to enter quantities with a "+/-" button, incase if there are returns then it can be entered with - sign in quantities.
  5. Open POS in a new interface without the ERPNext Top Navigation Panel to give more space on the touchscreen or mobile devices like ipad or any tablet.
  6. Integration with scanner, printer, network, etc. with mobile devices. (This can be done at a later stage too)
  7. Have local db at location for syncing with main server as requested in the post https://discuss.erpnext.com/t/pos-for-retail-shops-with-multiple-tilts/7614

@wuditex @pifiu thanks for the suggestions.

Do you want to make a mockup for each of the feature suggestions? Use this: http://pencil.evolus.vn/ - This will help us build this quickly!

@wuditex All excellent points. I especially like the idea of the POS interface not requiring all of the ERPNext UX. Item 3: Do other POS apps allow for this? As for me this feature would be a very low priority especially if we have multiple registers.
@rmehta should we keep chatting here about the new POS module or shift it to a section of Dev forum? Not sure about protocols... Are we clogging up git? If we move to dev forum a new category would be nice. Am happy babbling away here too.

@wuditex your #6 point is something I forgot. This is a very useful feature. This is comes in handy if you only have 1 register and have a customer holding up the line with a second customer that can be assisted while the first one waits, and then switch back over to the original customer.

@rmehta Is it possible to even implement ANYTHING that seems very easy? I mean this hold feature is simple enough. The printing seems like it could not be too difficult and is honestly very important.
The multiple payment option also seems very easy to do.

@rmehta, the active feature of "Advances" can be used for this purpose, or not?

@MaxMorais you mean for multiple payments? Not sure will have to dig into the code :stuck_out_tongue:

@rmehta May I suggest to consider to introduce Customer ID/Barcode options in POS, which is essential options in POS specially in Retail business.

@rmehta, yeah for multiple payments!

@rmehta I'm sorry for offtop, just wanted to inform that original Pencil project has an active fork:
https://github.com/prikhi/pencil
Hope this can be useful.

**SPLIT PAYMENT SCREENS

**
@rmehta This is the way we do it in quickbooks and its easy enough to use.

  1. Item to be billed is entered and amount due presented in red.
    http://i.imgur.com/IQAJHHn.png
  2. Clicking cash - opens the enter cash amount box and one enters the amount they wish to pay in cash.
    http://i.imgur.com/iNFN2wA.png
  3. $25 cash paid out of the $100 - balance.
    http://i.imgur.com/N4vo8UV.png
  4. $75 balance remaining presented in red.
    http://i.imgur.com/iKMMOyf.png
  5. Clicking cash button again opens the previously entered amount - this allows you to modify the cash amount in case you rather pay a higher amount now or remove the payment completely.
    http://i.imgur.com/rtUd2BG.png
  6. Clicking credit pulls up the credit card box to enter the amount you wish to pay with a credit card - and which card they would like to use. (Possible to split into multiple credit cards by selecting multiple cards)
    http://i.imgur.com/xxEuA0G.png
  7. $25 paid in cash and $25 applied to a visa credit card. $50 balance left shown in red.
    http://i.imgur.com/3aLrWGs.png
  8. "Check" button is clicked and amount to be accepted in a check along with the check number is entered. Again partial amount allowed or the option to remove the payment if you decide to open the window again.
    http://i.imgur.com/qgGGbb9.png
  9. $50 check amount entered, $25 cash $25 visa credit card, balance shown as $0 in black, ready to finish transaction. Offers the ability to save the transaction or save and print a receipt. An amount smaller than $50 for the check could have also been entered a balance could remain and another credit card could be added if you want or billed to an accounts receivable for the balance. Any combination could work.
    http://i.imgur.com/cJkekhd.png
  10. This just shows the ability to add the payment of multiple cards split among cards. Multiple visa, or visa and mastercard, or any other combination or selection. It also shows being able to remove a card payment if the customers mind is changed.
    http://i.imgur.com/4gYihs0.png
  11. Example showing payment split across multiple credit cards.
    http://i.imgur.com/4Q6cy0M.png

**HOLD RECEIPT SCREENS

**
@rmehta This is again how it's done in quickbooks and its very simple:

  1. Transaction is in progress. Customer is selected, 1 item is selected. To place this transaction on hold the "Put on hold" button is clicked.
    http://i.imgur.com/hoQizL2.png
  2. New transaction screen opens blank. If no customer or item has been entered yet in this screen, then the "Put on hold" button starts off as "Held receipts" in order to be able to go back to the list of held receipts from the same button. The moment a customer is selected or an item is entered, the button changes to "Put on hold"
    http://i.imgur.com/SFzCl3W.png
  3. If "Held receipts" button is clicked one is taken to the list of held receipts where one can select the one they wish to go back to.
    http://i.imgur.com/M0OTmD8.png
  4. Clicking on the transaction you want and selecting "I want to..->Unhold" takes one back to the transaction screen with everything as was previously left off
    http://i.imgur.com/kc7er2e.png
  5. A transaction can be put on hold the moment any information is entered, in this case only the customer was selected. This helps avoid asking the customer for their information again if you want to take care of another customer ahead of them and then return to them. This screenshot only shows when a receipt was held by only entering the customer name, but you can also hold the transaction with the items selected only without a customer, or both with a customer and a set of items.
    http://i.imgur.com/NG0x7gO.png
  6. Once any of the held receipts are completed, one can once again go to the "Held receipts" screen and see the list reduced and go to the next receipt or leave the held receipts there forever until you want to unhold them. To start a new transaction from this screen, you click "Make a Sale"
    http://i.imgur.com/LBDO8UJ.png

Many issues are fixed from this thread in v7. Closing this mega-thread for now.

Please raise individual issues for individual feature requests instead of mega threads!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

nabinhait picture nabinhait  Â·  4Comments

deantheiceman picture deantheiceman  Â·  4Comments

cradford picture cradford  Â·  4Comments

ioweb-gr picture ioweb-gr  Â·  4Comments

giuseppelamatrice picture giuseppelamatrice  Â·  3Comments