Difference between revisions of "Projects/Integration Yasmeera Webstore"

From InfiniteERP Wiki
Jump to: navigation, search
(Glossary)
(Contoh)
 
(39 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
{{WorkInProgress}}
 +
 
== Functional Specifications ==
 
== Functional Specifications ==
  
Line 4: Line 6:
  
 
====Purpose====
 
====Purpose====
Integrasi ini bertujuan untuk se-efektif mungkin menjadikan ERP sebagai central repository, menjadi pusat data dan back office. <br>
+
<p>
 +
Integrasi ini bertujuan untuk se-efektif mungkin menjadikan ERP sebagai central repository, menjadi pusat data dan back office.
 +
</p>
 
Yasmeera Webstore menjadi aplikasi front end yang berhubungan langsung dengan Customer/Pelanggan/Pembeli. Oleh karena itu semua master data akan didefinisikan dan dibuat di ERP. Akan terjadi sinkronisasi data utama dari ERP ke Webstore.
 
Yasmeera Webstore menjadi aplikasi front end yang berhubungan langsung dengan Customer/Pelanggan/Pembeli. Oleh karena itu semua master data akan didefinisikan dan dibuat di ERP. Akan terjadi sinkronisasi data utama dari ERP ke Webstore.
<br>
+
<p>
 
Webstore secara aktif melakukan sinkronisasi terhadap master data dan transaksi bisnis yang terjadi di webstore. Dengan demikian User Pengguna akan lebih banyak bekerja pada aplikasi ERP.
 
Webstore secara aktif melakukan sinkronisasi terhadap master data dan transaksi bisnis yang terjadi di webstore. Dengan demikian User Pengguna akan lebih banyak bekerja pada aplikasi ERP.
 +
</p>
  
 
====References====
 
====References====
Line 33: Line 38:
 
===Functional Requirements===
 
===Functional Requirements===
  
====An Example====
+
====The Scenario====
=====The Scenario=====
 
 
* Master Data
 
* Master Data
** Produk baru akan dibuat dan didefinisikan di InfiniteERP oleh pengguna tim Yasmeera
+
** Produk baru akan dibuat di Kulaku.com oleh pengguna tim Yasmeera
** Webstore secara rutin akan sinkronisasi produk baru yang ada di ERP.
+
** Webstore secara rutin akan sinkronisasi produk baru ke InfiniteERP.
** Tim Admin Webstore akan menambahkan gambar-gambar produk yang akan ditampilkan dan dilihat oleh customer.
+
** Tim Admin Kulaku.com akan menambahkan gambar-gambar produk yang akan ditampilkan dan dilihat oleh customer.
  
 
* Transaksi Penjualan/Sales Order
 
* Transaksi Penjualan/Sales Order
Line 83: Line 87:
 
* Define Payment Method
 
* Define Payment Method
 
* A price list adjustment to represent the discount on advertisements for business members (*)
 
* A price list adjustment to represent the discount on advertisements for business members (*)
* Define two remittance types
 
** Mail deposit
 
** Branch deposit
 
 
=====The Industry Template=====
 
  
 
====User roles & profiles====
 
====User roles & profiles====
  
The user roles affected by this functionality are:
+
Berikut User dan Roles yang terlibat:
 +
;API_User: Adalah akun User yang dibuat secara khusus untuk mengakses web services API yang disediakan oleh ERP dan digunakan oleh Webstore untuk komunikasi data. Akun ini memiliki akses untuk melakukan aktifitas CREATE dan UPDATE untuk transaksi Sales Order di ERP.
 
;Non-professional Functional Administrator: Typically a small business owner or trusted employee at a small business that is tasked with configuring the system to meet the requirements of the business. These users are typically computer-literate and very familiar with desktop applications and consumer web sites but does not have a formal education in computer science; they are therefore expecting a user experience comparable to the one of a consumer-grade application. They are very knowledgeable about the way their business work but are not familiar with ERPs and have never participated in a complex IT or formal business process re-engineering project.
 
;Non-professional Functional Administrator: Typically a small business owner or trusted employee at a small business that is tasked with configuring the system to meet the requirements of the business. These users are typically computer-literate and very familiar with desktop applications and consumer web sites but does not have a formal education in computer science; they are therefore expecting a user experience comparable to the one of a consumer-grade application. They are very knowledgeable about the way their business work but are not familiar with ERPs and have never participated in a complex IT or formal business process re-engineering project.
  
 
====Business process definition====
 
====Business process definition====
# Users connect to an Openbravo instance with a ''guest user'' which has access to a role that only allows to initiate an initial client setup with industry template action.
+
# Pelanggan melalui webstore melakukan transaksi pembelian dan melakukan pembayaran dengan metode yang dipilih.
# Users can choose to either browse a catalog of industry templates or to instantiate a client from a template they previously downloaded
+
# Webstore mengirim informasi penjualan Sales Order ke ERP
# Users can initiate the client creation process using the selected industry template and specifying the organization specific data
+
# User ERP melakukan proses selanjutnya untuk proses pengiriman barang.
# Optionally, an instance administrator approves the client creation (this task might include payment verification)
+
# User ERP membuat transaksi Goods Shipment untuk pengiriman barang
# The system instantiates the client, applies the template
+
# User ERP mencetak alamat Pelanggan dan mengirimnya melalui Ekspedisi
# Users receive a notification with the login instructions
+
# Pihak Ekspedisi secara rutin memberi informasi nome resi pengiriman dan User ERP melakukan update nomer RESI di menu Goods Shipment
  
 
====User stories====
 
====User stories====
Line 107: Line 107:
  
 
====User Interface Mockups====
 
====User Interface Mockups====
TBD  
+
TBD
 +
 
 +
====Web Services API====
 +
 
 +
API main URL :
 +
<pre>
 +
https://HOST/infinite/org.openbravo.service.json.jsonrest/END_POINT
 +
</pre>
 +
 
 +
Parameter umum penggunaan API yang tersedia:
 +
{| class="wikitable"
 +
|-
 +
! Parameter Name !! Description
 +
|-
 +
| _org|| organization ID
 +
|-
 +
| _noCount|| count only
 +
|-
 +
| _onlyCount||
 +
|-
 +
| _filter ||
 +
|-
 +
| _startRow|| mengambil jumlah baris record start
 +
|-
 +
| _endRow|| mengambil jumlah baris record akhir
 +
|-
 +
| _sortBy || melakukan sorting berdasarkan field tertentu
 +
|-
 +
| _selectedProperties|| untuk menentukan field apa saja yang akan diquery, untuk melihat nama field tersedia, cukup lakukan GET tanpa parameter dan semua field akan tampil by default.
 +
|-
 +
| _where|| melakukan filter data untuk field tertentu, contoh: _where=currency.iSOCode='USD <br> https://HOST/infinite/org.openbravo.service.json.jsonrest/Country?_where=currency.iSOCode='USD'' <br> akan menghasilkan data nama negara yang memiliki mata uang USD
 +
|}
 +
 
 +
Cara menggunakan parameter:
 +
<pre>
 +
http://HOST/infinite/org.openbravo.service.json.jsonrest/BusinessPartner?_startRow=10&_endRow=50&_sortBy=name&_selectedProperties=id,searchKey,name,description
 +
</pre>
 +
<br>
 +
<br>
 +
JSON REST API yang bisa digunakan untuk integrasi ini:
 +
 
 +
{| class="wikitable"
 +
|-
 +
! API Name!! End Point!! Description
 +
|-
 +
| Sales Order|| /Order|| Sales Order Header adalah informasi transaksi penjualan terkait Pelanggan sebagai pembeli produk
 +
|-
 +
| Sales Order Line|| /OrderLine|| Sales Order Line, dapat berisi lebih dari satu record data product yang dibeli oleh pelanggan
 +
|-
 +
| Product|| /Product||
 +
|-
 +
| Example || Example || Example
 +
|-
 +
| Example || Example || Example
 +
|}
 +
 
 +
===== [[API Sales Order|Sales Order]] =====
 +
 
 +
====== Contoh Document Approval Sales Order ======
 +
Contoh penggunaan Document Approval API untuk merubah Document Status di window Sales Order dapat dilihat pada link berikut:<br>
 +
<p>
 +
[[Document Approval API for Sales Order(Sample)|Document Approval API for Sales Order(Sample)]]
 +
</p>
 +
 
 +
===== [[API Stock by Storage Bin|Stock by Storage Bin]] =====
 +
 
 +
=====Error Result=====
 +
Jika terjadi error, API akan memberikan standard HTTP ERROR code
 +
 
 +
===== HTTP Error Codes =====
 +
 
 +
The following HTTP error codes are used to flag different error situations:
 +
* 400: the request uri or parameters are incorrect, for example the request uri did not have a valid entity name.
 +
* 409: the JSON content is invalid
 +
* 404: the object could not be found (applies when a uri points to a single object and that single object can not be found
 +
* 401: if a security exception occurs
 +
* 500: is used for all other exceptions
 +
 
 +
Contoh situasi umum ketika error terjadi dapat dilihat [https://wiki.infinite-erp.co.id/index.php/JSON_REST_Web_Services#JSON_Error_Result disini]
  
 
===Non-Functional Requirements===
 
===Non-Functional Requirements===
Line 113: Line 191:
  
 
===Open Discussion Items===
 
===Open Discussion Items===
; ''Self-service model'': In a pure self-service model - required for a full support of a pure multi-tenant system - the user should be able to initiate the creation of a new client using a template without having any previous access to the system. This action would then be considered as a request and it would need to go through a workflow which includes various steps (example: payment collection, approval, provisioning, etc.). This presupposes the existence of a workflow engine, which is not available in Openbravo.<BR> Instead, we assume that the user can connect with a guest user and initiate the action.<BR> Is this acceptable?
 
  
; ''Industry templates by organization'': Larger enterprises can have multiple organizations each implementing different lines of businesses or operations in different countries. It is therefore conceivable that a larger organization might want to implement different industry templates within a single client. <BR>The current proposal is to have a template per client. Is that acceptable?<BR>This feature targets smaller enterprises that typically have only one organization; is that areasonable simplification assumption?''
+
; ''Jadwal Sinkronisasi Webstore ke ERP'': Realtime or Batch update?
  
 
===Closed Discussion Items===
 
===Closed Discussion Items===
  
 
[[Category:Projects_ERP]]
 
[[Category:Projects_ERP]]

Latest revision as of 11:07, 28 May 2022

Warning.png   This document is still a work in progress. It may contain inaccuracies or errors.

Functional Specifications

Overview

Purpose

Integrasi ini bertujuan untuk se-efektif mungkin menjadikan ERP sebagai central repository, menjadi pusat data dan back office.

Yasmeera Webstore menjadi aplikasi front end yang berhubungan langsung dengan Customer/Pelanggan/Pembeli. Oleh karena itu semua master data akan didefinisikan dan dibuat di ERP. Akan terjadi sinkronisasi data utama dari ERP ke Webstore.

Webstore secara aktif melakukan sinkronisasi terhadap master data dan transaksi bisnis yang terjadi di webstore. Dengan demikian User Pengguna akan lebih banyak bekerja pada aplikasi ERP.

References

None.

Design Considerations

Proyek ini didesain tetap mempertimbangkan mengurangi waktu dan biaya implementasi adopsi InfiniteERP.
InfiniteERP tetap menjadi central repository untuk master data tidak terbatas pada produk dan business partner.

Assumptions

  1. It should be possible to operate this functionality in a pure multi-tenant implementation. In particular, this means that it should be possible for a user to initiate the creation of a new client applying an industry template in a self-service manner without having any prior access to the system and without being a system administrator.

Dependencies

None.

Constraints

Glossary

  • Webstore adalah aplikasi online shop yang digunakan oleh pelanggan Yasmeera melakukan transaksi pembelian produk Yasmeera, melakukan pembayaran dan melihat status transaksi dan pengiriman.
  • Pelanggan adalah orang pembeli yang melakukan transaksi pembelian untuk semua produk Yasmeera.
  • User adalah pengguna aplikasi InfiniteERP.

Functional Requirements

The Scenario

  • Master Data
    • Produk baru akan dibuat di Kulaku.com oleh pengguna tim Yasmeera
    • Webstore secara rutin akan sinkronisasi produk baru ke InfiniteERP.
    • Tim Admin Kulaku.com akan menambahkan gambar-gambar produk yang akan ditampilkan dan dilihat oleh customer.
  • Transaksi Penjualan/Sales Order
    • Setiap terjadi transaksi penjualan, Webstore akan melakukan update/insert data penjualan tersebut ke ERP dalam bentuk transaksi Sales Order
      • Criteria Status transaksi yang akan dikirim ke InfiniteERP akan disepakati kemudian sesuai bisnis proses.
  • Proses Penjualan/Sales Order di InfiniteERP
    • Setelah ERP menerima data transaksi penjualan, Tim Admin CS akan melakukan monitoring melalui window Outstanding Sales Order.
    • Tim CS akan membuat prioritas dan memilih Sales Order mana yang akan diproses dan merubah Document Status pada Sales Order menjadi COMPLETED.
    • Jika diperlukan, bisa dicetak dokumen PICKING LIST yang akan digunakan oleh Tim Picking di gudang untuk mengambil stock produk yang akan dikirim.
      • Picking List ini menjadi acuan transaksi untuk mengambil sejumlah produk baik Quantity maupun Lokasi Rak (storage bin). Dengan demikian stok produk disetiap rak di gudang benar-benar tepat dan akurat.
InfiniteERP Implementation

Untuk menerapkan integrasi ini dibutuhkan beberapa setup yang harus dilakukan terlebih dahulu:

Setup Data

  • A client that represents the organization itself.
  • Membuat sebuah user account yang akan digunakan Webstore untuk mengakses API
  • Organization
    • Define new Organization for Online WebStore called "ONLINE_STORE"
  • Master Data Management
    • Business Partner
    • Product
      • Setiap product yang akan dijual online harus memiliki record di sub tab Product Organization
    • Price List - Selling Price
    • Import Business Partners
  • Sales Management
    • Sales Order
    • Create Invoices from Orders
    • Generate Invoices
    • Print Invoices
  • Financial Management
    • Define a GL calendar with quarterly periods
    • Define Financial Account / a bank account
    • Define a cashbook for petty cash transactions
  • Define the business partner categories:
    • Distributor
    • Agen
    • Reseller
    • Suppliers
  • Define the product categories
    • Ads
    • Services
    • Other
  • Define Payment Method
  • A price list adjustment to represent the discount on advertisements for business members (*)

User roles & profiles

Berikut User dan Roles yang terlibat:

API_User
Adalah akun User yang dibuat secara khusus untuk mengakses web services API yang disediakan oleh ERP dan digunakan oleh Webstore untuk komunikasi data. Akun ini memiliki akses untuk melakukan aktifitas CREATE dan UPDATE untuk transaksi Sales Order di ERP.
Non-professional Functional Administrator
Typically a small business owner or trusted employee at a small business that is tasked with configuring the system to meet the requirements of the business. These users are typically computer-literate and very familiar with desktop applications and consumer web sites but does not have a formal education in computer science; they are therefore expecting a user experience comparable to the one of a consumer-grade application. They are very knowledgeable about the way their business work but are not familiar with ERPs and have never participated in a complex IT or formal business process re-engineering project.

Business process definition

  1. Pelanggan melalui webstore melakukan transaksi pembelian dan melakukan pembayaran dengan metode yang dipilih.
  2. Webstore mengirim informasi penjualan Sales Order ke ERP
  3. User ERP melakukan proses selanjutnya untuk proses pengiriman barang.
  4. User ERP membuat transaksi Goods Shipment untuk pengiriman barang
  5. User ERP mencetak alamat Pelanggan dan mengirimnya melalui Ekspedisi
  6. Pihak Ekspedisi secara rutin memberi informasi nome resi pengiriman dan User ERP melakukan update nomer RESI di menu Goods Shipment

User stories

Functional requirements based on business processes

User Interface Mockups

TBD

Web Services API

API main URL :

https://HOST/infinite/org.openbravo.service.json.jsonrest/END_POINT

Parameter umum penggunaan API yang tersedia:

Parameter Name Description
_org organization ID
_noCount count only
_onlyCount
_filter
_startRow mengambil jumlah baris record start
_endRow mengambil jumlah baris record akhir
_sortBy melakukan sorting berdasarkan field tertentu
_selectedProperties untuk menentukan field apa saja yang akan diquery, untuk melihat nama field tersedia, cukup lakukan GET tanpa parameter dan semua field akan tampil by default.
_where melakukan filter data untuk field tertentu, contoh: _where=currency.iSOCode='USD
https://HOST/infinite/org.openbravo.service.json.jsonrest/Country?_where=currency.iSOCode='USD
akan menghasilkan data nama negara yang memiliki mata uang USD

Cara menggunakan parameter:

http://HOST/infinite/org.openbravo.service.json.jsonrest/BusinessPartner?_startRow=10&_endRow=50&_sortBy=name&_selectedProperties=id,searchKey,name,description



JSON REST API yang bisa digunakan untuk integrasi ini:

API Name End Point Description
Sales Order /Order Sales Order Header adalah informasi transaksi penjualan terkait Pelanggan sebagai pembeli produk
Sales Order Line /OrderLine Sales Order Line, dapat berisi lebih dari satu record data product yang dibeli oleh pelanggan
Product /Product
Example Example Example
Example Example Example
Sales Order
Contoh Document Approval Sales Order

Contoh penggunaan Document Approval API untuk merubah Document Status di window Sales Order dapat dilihat pada link berikut:

Document Approval API for Sales Order(Sample)

Stock by Storage Bin
Error Result

Jika terjadi error, API akan memberikan standard HTTP ERROR code

HTTP Error Codes

The following HTTP error codes are used to flag different error situations:

  • 400: the request uri or parameters are incorrect, for example the request uri did not have a valid entity name.
  • 409: the JSON content is invalid
  • 404: the object could not be found (applies when a uri points to a single object and that single object can not be found
  • 401: if a security exception occurs
  • 500: is used for all other exceptions

Contoh situasi umum ketika error terjadi dapat dilihat disini

Non-Functional Requirements

Performance
The initial client setup with the application of an industry template should complete within 30 minutes.

Open Discussion Items

Jadwal Sinkronisasi Webstore ke ERP
Realtime or Batch update?

Closed Discussion Items