Projects/Integration Yasmeera Webstore

From InfiniteERP Wiki
Revision as of 09:56, 18 December 2021 by Wikiadmin (talk | contribs) (Web Services API)
Jump to: navigation, search

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

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.
  • 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

  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
_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?

Closed Discussion Items