1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
{% extends "common/base.j2" %}
{% block body_content %}
<div class="jumbotron">
<div class="container text-center">
<h1>{{ _("GSoC 2018: Codeless Payment") }}</h1>
<h6>{{ _("Implemented by Shivam Kohli as part of GSoC 2018 under the mentoring and guidance of Florian Dold.") }}</h6>
</div>
</div>
<div class="container">
<div class="col-lg-12">
<h2 id="overview">{{ _("Overview") }}</h2>
<p>
{% trans %}
Codeless payment is a component that sits between the seller's
frontend and the GNU Taler merchant backend. This component has a
web interface, where payment buttons are configured. Registered
merchants can manage their inventory and simultaneously create a
'Buy Now' button for a specific product. This code can be directly
copy pasted on the seller's frontend and can be used for 'Pay with
Taler'.
{% endtrans %}
</p>
</div>
</div>
<div class="container">
<div class="col-lg-6">
<h2 id="overview">{{ _("Use Cases") }}</h2>
<p>
{% trans %}
The various use cases and features of codeless payment are:
{% endtrans %}
</p>
<ul>
<li>
{% trans %}
The primary use case is the registration of the merchant. The
codeless payment backend provides a secure django authenticated
login to the merchant. The registered merchant can add inventory
(both digital as well as physical) in their stocks. They can
manage inventory and simultaneously create a 'Buy Now' button for
the product. The merchant also monitors the orders placed and
updates the status of the order which helps in shipment tracking.
{% endtrans %}
</li>
<li>
{% trans %}
A merchant has the flexibility to add two types of inventory as follows:
{% endtrans %}
<ul>
<li>
{% trans %}
The merchant can upload digital inventory (like a PDF or HTML
page) via the codeless payments frontend and the user can then
purchase it and view the version hosted by the codeless
payment frontend.
{% endtrans %}
</li>
<li>
{% trans %}
The merchant can add any physical inventory available in his
stocks. While adding these inventory, the seller is prompted
to add minimum quantity of product that is required to be
maintained in the stock. Whenever the stocks run below this
limit the seller would be notified (currently this feature has
not been added but soon email notification would be added).
{% endtrans %}
</li>
</ul>
</li>
<li>
{% trans %}
The buyers will access the seller's frontend where the code for
the 'Buy Now' button is present. When this button is triggered,
they are redirected to codeless payment backend and eventually
redirected to the payment page. After successful payment, the
buyer can also track their shipment for physical products or
view the digital version hosted by the codeless payment
frontend.
{% endtrans %}
</li>
<li>
{% trans %}
The other use case of the codeless payment backend is to handle
the event when the 'Buy Now' button is triggered on the seller's
frontend. To perform the payment the backend communicates with
merchant backend api. After successful payment, the users are
redirected to the fulfilment page.
{% endtrans %}
</li>
</ul>
<h2 id="overview">{{ _("Dynamic Merchant Instance") }}</h2>
<p>
{% trans %}
The documentation for the API to dynamically manage merchant
instance can be found
<a href="https://docs.taler.net/api/api-merchant.html#dynamic-merchant-instance">here</a>.
{% endtrans %}
</p>
</div>
<div class="col-lg-6">
<img src="{{ url_static('images/UseCaseDiagram.png') }}" alt="{{ _("Use Case Diagram")}}" style="float: right; margin: 5px 5px 5px 5px;" width="100%">
</div>
</div> <!-- /container -->
<div class="container-fluid c_acronym">
<div class="container">
<h2 id="documentation">{{ _("Link to the contributions made") }}</h2>
<p>
</p>
<ul>
<li>{{ _("Codeless Payment Backend") }}
(<a href="https://git.taler.net/codeless.git/">{{ _("Link")}}</a>)
</li>
<li>{{ _("Documentation to dynamically manage Merchant Instances") }}
(<a href="https://git.taler.net/api.git/commit/?id=53b3fbc3a882975b4ca8ef70d7ae256c9c17a23e">{{ _("Link")}}</a>)
</li>
</ul>
<p>
</p>
</div>
</div>
<div class="container">
<div class="col-lg-12">
<h2 id="overview">{{ _("Future Work") }}</h2>
<p>
{% trans %}
The backend of codeless payment is very robust and can be easily
extended as per the requirements. It is adaptive to add new features
to this framework. But as per the discussion and the scope of this
project, there are various features that will be soon added in the
Codeless Merchant Backend. The list of future work is as follows:
{% endtrans %}
</p>
<ul>
<li>
{% trans %}
To send email notification to the merchant when the stocks run
below a certain limit. The minimum quantity required to be
maintained in the stocks is currently taken from the
merchant(specific to each product) but no such notification system
is designed.
{% endtrans %}
</li>
<li>
{% trans %}
To add API access to the merchant backend via the codeless payment
service. Basically, it would be used as a hosting platform for
multiple merchants. There would be an additional user interface
part in the codeless payment service where a logged-in merchant
can generate an API key. This API key can be used to access the
functionality of the merchant backend in a controlled way. After
requesting an API key, the page would display the generated key
and a base URL for the API to use by the seller, which is handled
by the codeless payments service.
{% endtrans %}
</li>
<li>
{% trans %}
Mapping every seller account to a separate merchant backend
instance. This is not required for a simple version of codeless
payments, but as soon as API access for sellers, this is a useful
feature. The codeless payment service then can also double as a
hosting service for merchants.
{% endtrans %}
</li>
<li>
{% trans %}
To add various analytics for the merchant. Various analysis
could be performed on the orders placed for the respective
merchant. Some of the analysis that can be performed are
displaying the most frequently purchased product, some insights
about the shipment tracking, analysis of products based on
delivery location, etc. For this part, dicussions and some more
research have to be done before proceeding to the
implementation.
{% endtrans %}
</li>
</ul>
</div>
</div> <!-- /container -->
<div class="container">
<div class="row">
<h2 id="documentation">{{ _("Screenshots") }}</h2>
<div class="col-lg-4">
<h3>{{ _("Home page")}}</h3>
<img src="{{ url_static('images/home.png') }}" height="240" align="middle">
</div>
<div class="col-lg-4">
<h3>{{ _("Product page")}}</h3>
<img src="{{ url_static('images/product.png') }}" height="240" align="middle">
</div>
<div class="col-lg-4">
<h3>{{ _("Shipment Tracking")}}</h3>
<img src="{{ url_static('images/shipment.png') }}" height="240" align="middle">
</div>
</div>
</div>
{% endblock body_content %}
|