Open gohanman opened 7 years ago
We would love to see some progress on this. A digital only process would be super lovely but the more traditional paper receipt route would certainly be an excellent start. I assume two copies of each receipt with a tip line need to be printed so that the customer can keep one copy just like at a restaurant. Since vanilla grocery transactions don't involve tipping, I assume the cashier would have to specify that a particular transaction is potentially "tippable" so that the POS prints the paper slip with a tip line?
Theoretically:
A digital only process actually seems easier to me. Going this route would be least disruptive to cashier or POS's existing behavior. There's one interaction to collect the payment, which may or may not include a tip, and then the transaction's done. A more traditional paper setup would require more steps to somehow go back into the transaction after the initial payment and reauth the card for the tip.
A digital process would be far better than paper! Thank you! I look forward to testing the functionality.
From: Andy Theuninck notifications@github.com Sent: Friday, July 27, 2018 2:07 PM To: CORE-POS/IS4C Cc: Narendra Varma; Comment Subject: Re: [CORE-POS/IS4C] Implementing Tipping (#885)
Theoretically:
A digital only process actually seems easier to me. Going this route would be least disruptive to cashier or POS's existing behavior. There's one interaction to collect the payment, which may or may not include a tip, and then the transaction's done. A more traditional paper setup would require more steps to somehow go back into the transaction after the initial payment and reauth the card for the tip.
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FCORE-POS%2FIS4C%2Fissues%2F885%23issuecomment-408538866&data=02%7C01%7C%7C14ea11dcc93a4fc2cabd08d5f404fa2d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636683224581193442&sdata=1yIYbtOvpSPH7TXt3AU0M%2F8%2Fw%2FlG4A9RDAqzj67t350%3D&reserved=0, or mute the threadhttps://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAcTaNnjZYMKA6n3cb0CAi-qcY3q_pBydks5uK4DtgaJpZM4OaWdf&data=02%7C01%7C%7C14ea11dcc93a4fc2cabd08d5f404fa2d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636683224581193442&sdata=bi6%2BixbnBhF3R0tbQOKTsajNMb3pxr5Z70jTXj8jJOc%3D&reserved=0.
I just installed the master version of the paycard plugin on my v2.7 lane and with tipping disabled, when I enter a transaction and then enter DATACAP to charge available card, I get a blue box saying "process card transaction". At this point, I cannot enter anything and have to use the browser back button. Same behavior with tipping enabled.
That sounds like some kind of javascript error that's not necessarily tipping related. Clearing the browser cache might help.
I believe it's related to issue #976 since I don't have the autoloader changes yet. I'll wait to try this once we upgrade to v2.9+
This is in 2.10 although still entirely untested
@gohanman Just installed 2.10 on the lane, built a new NewMagellan driver and got EMV and swipe transactions running properly using our new Verifone VX-805. Thanks to Joel for his help. However, selecting the EMV with tip option after DATACAP command seems to do nothing at all. Used the EMV test app to verify that the tipping functionality works as expected on the VX805. Any thoughts?
What does the direct command DATACAPEMVTIP do, if anything?
Direct command DATACAPEMVTIP seemed to work and I was able to follow the prompts on the terminal to add a tip and run the card (message on terminal was APPROVED). However, the POS gave an error saying "An unknown error occurred at the gateway". Once I cleared the error, POS came back to the dialog asking me to confirm that I want to "tender $xxx as EMVTIP?". POS definitely thinks the transaction was not completed but I checked with Vantiv and the transaction was successfully charged.
That's unfortunately the "something went horribly wrong" generic error. The debug_lane.log might shed light on what happened.
Ok, wierdly enough it now works partially. After the transaction was approved on the terminal (with tip) the POS came back with: "Partial Approval" and the amount paid is the total including tip with Change of the tip amount! I checked my lane settings and Tender CC is mapped to COREPOS-pos-lib-Tenders-CreditCardTender. I would expect that the tip amount would be added to the transaction as an open ring in the TIPS department specified in the paycard plugin settings and not booked as change.
PS: Nothing of value in the debug_lane log
Yes it should be adding the tip amount as an open ring in the specified departments. Is it configured as literally "TIPS" or is it that department's number? If it's the name instead of the number that's probably the issue.
The current setup does just blindly trust the open ring will succeed. I suppose it'd be better to have a fallback option to record the tip some other way if the open ring fails. There'd be some potential back office headaches if tips aren't recorded in two different ways but prompting the cashier to give change is a more immediate and acute problem.
It's configured as a department number (54 in our case). Agree that having some graceful fallback option to record the tip in the transaction rather than prompting the cashier to give change is better. I was under the impression that the CC tender didn't allow change at all...
I found the problem - typo of PaycardTipDepartment in MercuryDC.php and missing case 'EMVTIP': in PaycardEmvMenu.php. I have fixed both and checked them into the Our Table Gitlab v2.10 repo.
It all works now but of course having some "smarts" to ensure that the open ring succeeds and if not, a fallback would be great. I am happy to test this in a high-volume production setting on Friday and give more feedback...
Whoops. Something in the commit message auto-closed the issue.
Nice find BTW, thanks.
I'm spinning this off as separate functionality:
While the focus of this will be technical there's probably a non-technical side too. I imagine accepting tips via credit card will require some kind of conversation with the store's merchant services provider to make sure the tipping functionality is enabled on the account and/or to avoid setting off alarm bells at the MSP. But I don't have the experience to do more than speculate.
I think the optimal workflow would be to:
I'm sure there are some clever solutions for digital only processes but for a first attempt at this I think it's easiest to stick closely to common conventions.
On the front end side we'd need:
On the back end side we'd need:
I think it's ultimately easier to have these as separate transactions as opposed to suspending it and then resuming to add the tip. It's likely necessary to have tip transactions separate in the event that the original is finalized by mistake so aiming for consistency with all tips seems like the right choice. But the tip transactions will need to be curated out of aggregate reports. A purchase plus a tip is still logically only one transaction. This would apply to Paycards, too. We'd have a record for the original authorization and another record for the successful adjustment where as the processor likely reports that as a single authorization.