Skip to main content

PRODUCT

📦 Technical Specification: Product Setup


📋 Feature Overview

Attribute Detail
Module 📂 Directory (PRODUCT)
Feature Name Product Management
Description Manages product definitions (Code, Name, Brand) and links them to specific suppliers and pickup addresses. Supports master-detail creation.
Page & Detail
1. Listing Page: /listing-product-manage
Displays grid of products, filters, and delete actions.
2. Add/Edit Page: /add-product-manage
Form for creating new products or updating details/suppliers.
User Guide 📄 [Ekajaya Admin User Guide - Directory Module, Section 7]

🛠️ Technical Implementation

A. Permissions & Access Control

Note: Access is controlled via PermissionGuard and component-level checks.
Scope Permission Code Description & Page Usage
Menu Visibility PRODUCT.MENU

Sidebar menu visibility.

\listing-product-manage

\add-product-manage

Page Routing PRODUCT.LISTING Access to listing route.
\listing-product-manage
Page Routing PRODUCT.VIEW

Access to add route.

\add-product-manage

Create Action PRODUCT.UPDATE

Visibility of the + Add button (uses Update permission).
\listing-product-manage

View Access PRODUCT.VIEW Controls visibility of action buttons (Edit).
\listing-product-manage
Delete Action PRODUCT.DELETE Visibility of the Delete 🗑️ icon.
\listing-product-manage
Edit/Save Action PRODUCT.UPDATE Ability to save changes on Add/Edit screen.
\add-product-manage

B. API Interaction

Base URL: ${environment.baseApiUrl}
1. Listing Product Manage \listing-product-manage
/products/getQuery
POST
Filter: productCode, productName, productBrand, isDeleted=0
/orders/getQuery
POST
Filter: productId, isClosed=0 (Dependency Check)
/jobs/getQuery
POST
Filter: productId, isClosed=0 (Dependency Check)
/products/update
POST
Purpose: Delete (isDeleted=true)
2. Add Product Manage \add-product-manage
/products/getQuery
POST
Filter: id (Fetch specific record)
/products/getQuery
POST
Filter: productCode (Uniqueness Check)
/products/mdCreate
POST
Purpose: Master-Detail Create
/products/mdUpdate
POST
Purpose: Master-Detail Update