Difference between revisions of "Projects/Integration Yasmeera Webstore"
(→Design Considerations) |
(→Contoh) |
||
(59 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. < | + | <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. | ||
− | < | + | <p> |
− | Webstore secara aktif melakukan sinkronisasi terhadap master data dan transaksi bisnis yang terjadi di 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. |
+ | </p> | ||
====References==== | ====References==== | ||
Line 14: | Line 19: | ||
Proyek ini didesain tetap mempertimbangkan mengurangi waktu dan biaya implementasi adopsi InfiniteERP. | Proyek ini didesain tetap mempertimbangkan mengurangi waktu dan biaya implementasi adopsi InfiniteERP. | ||
− | + | <br> | |
InfiniteERP tetap menjadi central repository untuk master data tidak terbatas pada produk dan business partner. | InfiniteERP tetap menjadi central repository untuk master data tidak terbatas pada produk dan business partner. | ||
Line 26: | Line 31: | ||
===Glossary=== | ===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=== | ===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===== | =====InfiniteERP Implementation===== | ||
− | + | Untuk menerapkan integrasi ini dibutuhkan beberapa setup yang harus dilakukan terlebih dahulu: | |
''Setup Data'' | ''Setup Data'' | ||
* A client that represents the organization itself. | * 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: | * Define the business partner categories: | ||
** Distributor | ** Distributor | ||
Line 66: | 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 (*) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
====User roles & profiles==== | ====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. | ;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==== | ||
− | # | + | # Pelanggan melalui webstore melakukan transaksi pembelian dan melakukan pembayaran dengan metode yang dipilih. |
− | # | + | # Webstore mengirim informasi penjualan Sales Order ke ERP |
− | # | + | # User ERP melakukan proses selanjutnya untuk proses pengiriman barang. |
− | # | + | # User ERP membuat transaksi Goods Shipment untuk pengiriman barang |
− | # | + | # User ERP mencetak alamat Pelanggan dan mengirimnya melalui Ekspedisi |
− | # | + | # 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 105: | 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 111: | Line 191: | ||
===Open Discussion Items=== | ===Open Discussion Items=== | ||
− | |||
− | ; '' | + | ; ''Jadwal Sinkronisasi Webstore ke ERP'': Realtime or Batch update? |
===Closed Discussion Items=== | ===Closed Discussion Items=== | ||
+ | |||
+ | [[Category:Projects_ERP]] |
Latest revision as of 11:07, 28 May 2022
Contents
- 1 Functional Specifications
- 1.1 Overview
- 1.2 Design Considerations
- 1.3 Glossary
- 1.4 Functional Requirements
- 1.5 Non-Functional Requirements
- 1.6 Open Discussion Items
- 1.7 Closed Discussion Items
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
- 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.
- Setiap terjadi transaksi penjualan, Webstore akan melakukan update/insert data penjualan tersebut ke ERP dalam bentuk transaksi Sales Order
- 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
- Pelanggan melalui webstore melakukan transaksi pembelian dan melakukan pembayaran dengan metode yang dipilih.
- Webstore mengirim informasi penjualan Sales Order ke ERP
- User ERP melakukan proses selanjutnya untuk proses pengiriman barang.
- User ERP membuat transaksi Goods Shipment untuk pengiriman barang
- User ERP mencetak alamat Pelanggan dan mengirimnya melalui Ekspedisi
- 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?