Projects/Integration Yasmeera Webstore
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
An Example
The Scenario
- Master Data
- Produk baru akan dibuat dan didefinisikan di InfiniteERP oleh pengguna tim Yasmeera
- Webstore secara rutin akan sinkronisasi produk baru yang ada di ERP.
- Tim Admin Webstore 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 (*)
- Define two remittance types
- Mail deposit
- Branch deposit
The Industry Template
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 |
---|---|
_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://my.infinite-erp.co.id:8080/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 |
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
- 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.
Instead, we assume that the user can connect with a guest user and initiate the action.
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.
The current proposal is to have a template per client. Is that acceptable?
This feature targets smaller enterprises that typically have only one organization; is that areasonable simplification assumption?