📜 ⬆️ ⬇️

The perfect way to offline from online

image

Hello!

A typical payment process for a real-life order that I recently picked up:
(I requested the number Z from the seller / online store and provided everything you need for a personalized price.)
')
- Hello. I want to pay and pick up order â„–Z. - the Client says and approaches the seller.
- Just a minute. - says the seller. The seller opens the online store system, copies the data and prints a piece of paper. - Now to the cashier and then back to me.
The customer goes to the checkout, admiring the assortment of the store.

- Good day, what we pay, the amount? - Requests the cashier from the cashier.
- Here, on these documents - the client answers.
- Wait a second. - says the cashier. The cashier and the cashier ask for help from the payment terminal and the printer, - "Payment terminal - help me make the payment."
- Dear Customer, provide a card and a pin. - payment terminal, looking out of the window.
The client provided everything the terminal requested.
- Cash all OK, money blocked. - payment terminal counted out in front of the cash register.
- Hey printer, print a check! - requested cashier, you need to give the client.
- Here's a check, thanks for paying. The cashier from the cashier replied politely.
The customer goes to the seller.
- Here, everything is paid for, where is my long-awaited product? - asked the client.
In the story further I received the goods and related guarantees, but it was possible not to drive me around the hall.

So, what is missing to go online to online stores, and vice versa, from offline to online.

One online store, with a small warehouse, moved to the first floor. I was asked to see which solution would be suitable for receiving payment offline. The task seems trivial. But all the calculations of "prices" and "balances" must go through the online store system, otherwise it is a long and expensive circulation.

Task - to speed up the manual mode .


As quickly as possible and cheaply open the point of self-delivery / purchase of goods for the online store. All prices, promotions and loyalty programs must always be the same for online and offline by default.
Find the fastest way for data from the store database to the terminal and receipt printer.

So, we have systems, like actors in a dialogue:
The client is the cardholder.
The seller is the one who has the rights to use the online store system.
Online store - knows all about the order and can transfer this data to someone.
Payment terminal - Accepts customer card.
Printer - Prints a check to the client.
Cashier and cashier - Transmits data to the terminal, printer and something else useful.

Let's turn actors into hardware and software. We look at the ways of connecting applications in the browser with offline iron. We take into account the cost of implementation and support.

The obvious solution was mPOS with the application / API on the tablet.

Solution Concept - Automation


All steps are similar, but instead of a client with documents, the seller runs around the store and brings the terminal, or rather his faithful mobile assistant.
The seller in the browser forms a link to work with the Cashier.

kass-api://payNow?callback=[ecommerce-system-url?{ *}]&order={ } 

Cashier instantly, here also sends data to the payment terminal application:

 pay-api://payNow?callback=[kass-api://paymentResult?{ *}]&order={ } 

The customer pays for the order through the Payment Terminal.

Payment Terminal returns control of the Cashier:

 kass-api://paymentResult?{ *} 

Cashier, here also sends the data to the printer for payment:

 print-api://payNow?callback=[kass-api://paymentResult?{ *}]&order={ } 

The printer printed a check, did something else, and returned control to the Cashier:

 ecommerce-system-url?{ *} 


* security parameters may be among parameters
Everything has long been invented, called this custom scheme.

What is a custom scheme?


This is an element that was embedded in the URI itself (Universal Resource Identifier).
We are all accustomed to http: //, https: //, ftp: //, sftp: // and others. This is already implemented in popular platforms.

myapp: // path-to-file where myapp is the same scheme.

For iOS
For Android

Solution in the USA


Take Paypal Here and a compatible printer.
It provides the right API .

Fortunately, the PayPal Here application accepts payment via mPOS Terminal and can print checks on a bluetooth printer.

All in one application: Cashier, terminal and printer.

For a week, we screwed the necessary API in the admin of the online store and installed this case on the iPad. Everything is great.

Yes, it is a little better than the same terminal , which we cannot use in Russia.

Return to the reality of Russia


I did not find a single solution that could completely solve the problem in the way it was possible for a store in the USA.

Let me suggest the following:
Please: Atol, Evtor, Cashier Module, Yandex.Kassa, 2Can, all those listed in the article , “Cash Desk, which I do not know,” add Custom Scheme API to your application.

If someone knows solutions for the harsh reality, I will be glad to cooperate. Share your observations below in the comments.

Source: https://habr.com/ru/post/353602/


All Articles