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
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
|
\input texinfo @c -*-texinfo-*-
@setfilename codeless.info
@include doc/version.texi
@include doc/syntax.texi
@documentencoding UTF-8
@settitle The GNU Taler Codeless Merchant Manual @value{VERSION}
@paragraphindent 0
@exampleindent 4
@copying
This manual is for the GNU Taler Codeless Merchant.
Copyright @copyright{} 2014-2018 Taler Systems SA
@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts. A copy of the license is included in the section entitled "GNU
Free Documentation License".
@end quotation
@end copying
@titlepage
@title The GNU Taler Codeless Merchant Manual
@subtitle Version 1.0
@author Shivam Kohli (@email{kohlishivam05@gmail.com})
@page
@vskip 0pt plus 1filll
@insertcopying
@end titlepage
@summarycontents
@contents
@ifnottex
@node Top
@top The GNU Taler Codeless Merchant Manual
@insertcopying
@end ifnottex
@menu
* Introduction::
* Installation::
* Inventory Tracking::
* Common Usage::
Appendices
* GNU-AGPL:: The GNU Affero General Public License says how you
can copy and share the code of the `GNU Taler Exchange'.
Indices
* Concept Index:: Index of concepts and programs.
@end menu
@node Introduction
@chapter Introduction
This manual is an early draft that still needs significant editing
work to become readable.
@section About GNU Taler
GNU Taler is an open protocol for an electronic payment system with a
free software reference implementation. GNU Taler offers secure, fast
and easy payment processing using well understood cryptographic
techniques. GNU Taler allows customers to remain anonymous, while
ensuring that merchants can be held accountable by governments.
Hence, GNU Taler is compatible with anti-money-laundering (AML) and
know-your-customer (KYC) regulation, as well as data protection
regulation (such as GDPR).
@section About this manual
This tutorial targets system administrators who want to install and
operate a GNU Taler Codeless Merchant.
A component that sits between the seller's frontend and the GNU Taler
merchant backend. This component should has a web interface, where
payment buttons can be configured. Additional Component include
inventory management, where the seller can configure the available
stock for an item and will get notified when their stock runs low.
Currently, to accept payments with GNU Taler, people have to write
their own code. By using this the merchant will be able to communicate
with the merchant’s backend via a simple API.
@section Architecture overview
For the implementation the part MTV(Model-Template-View) pattern is
followed.
The following three components has been included.
@itemize
@cindex frontend
@item A frontend which interacts with the customer's browser. The
frontend enables the customer to place an order. Upon payment,
it redirects the user on the shipment detail form where the user
adds his shiment details. Moreover, the frontend is a complete portal
where the merchant has the abality to create and manage his account.
He has the flexibilty to manage his inventory.
@cindex Backend
@item The backend of codeless payment is very roboust and can be easily
extended as per the requirements. The backend provides a lot of operations
namely manage incoming and outgoing inventory, service for handling,
payments, managing singup and singin for the merchant, and handle all the
url requests. This tutorial will describe how to integrate such a component
to handle payments managed by Taler and also manage the inventory for the
merchant.
@cindex Database
@item A SQL which stores the order history for the Merchant backend and
keeps a track of the inventory. For now, the reference implemenation only
supports sqlite, but the code could be easily extended to support another DBMS
@end itemize
The following image illustrates the various interactions of these key components:
@c @center @image{doc/interaction, 1in, 1in}
@node Installation
@chapter Installation
Please install the following packages before proceeding with the codeless
payment backend compilation.
@itemize
@item
GNU autoconf @geq{} 2.69
@item
GNU automake @geq{} 1.14
@item
Django = 1.8
@item
requests@geq{} 2.19
@end itemize
There are no other dependencies required for the codeless payment backend to
run.
@example
$ git clone https://git.taler.net/codeless.git/
$ cd codeless/
$ make
# make install
# make run #to run the server
@end example
@node Inventory Tracking
@chapter Inventory Tracking
This chapter includes various sections on specific topics that might
be helpful to understand how inventory tracking operates.
@menu
* Database Schema::
* New inventory::
* Shipment Tracking::
* Order Creation::
@end menu
@node Database Schema
@section Database Schema
The following image illustrates the database schema used for inventory tracking:
@c @center @image{doc/database, 1in, 1in}
@node New inventory
@section New inventory
The Merchant can add two types of inventory
@itemize
@item Digital Inventory
The seller 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.
A large number of uploading format is accepted. The content-type
of the uploaded file is determined by a self defined function in
the backend.The stock for digital purchases doesn't run out.
@item Normal Product
In this kind of product the seller has a flexibilty to add any
product. While adding these inventory, the seller is promted to
add MinimumQuantity of Product that is required to be maintained
in the stock. Whenever the stoxks run below this limit the seller
would be notified(Curently this feature has not been added but
soon email notification would be added).
@end itemize
@node Shipment Tracking
@section Shipment Tracking
Whenever user purchases a product from the seller, after successful
payment they are redirected to the fullfillment page. For digital
inventory the fullfillment page would be the direct display of the
digital inventory(like pdf). But for actual product shipment tracking
makes sence. Therefore on the fullfillment page the user can track
his shipment. The status of the order is updated by the merchant
and on this basis the user is updated about his shipment of fullfillment
page. For now there are five paramters that have used for tracking, but
this is extensible and can be modified according to the requirement.
@node Order Creation
@section Order Creation
The pay_url that is used while making contract is handled by the
codeless payment backend. While handling this function the crsf
token is exempted and this function returns the json request. The
order creation depends on the json format. If the json response status
is 200 only then an order will be created and also the quantity of the
same product is used to update the inventory on hand.
@node Common Usage
@chapter Common Usage
The following image illustrates the various use case of codeless payment:
@c @center @image{doc/UseCaseDiagram, 1in, 1in}
@c **********************************************************
@c ******************* Appendices *************************
@c **********************************************************
@node GNU-AGPL
@chapter GNU Affero GPL
@cindex license
@include doc/agpl.texi
@node Concept Index
@chapter Concept Index
@printindex cp
@bye
|