5.1 KiB
Helper Endpoint Contracts
This spec covers helper, lookup, search, and stats endpoints that support forms and dashboards. The main business save/delete/status endpoints are covered in the WMS, Accounting, Master Data, System Settings, and Document Lifecycle specs.
Common Contract
Unless a route explicitly differs, helper endpoints:
- Load authenticated context through
db_auth.php. - Scope reads by the active
company_id. - Return JSON.
- Are consumed by AJAX from PHP pages.
- Should not mutate business documents unless their name says
manage,remove,delete,approve,confirm,cancel,void,issue,post,receive, orupdate.
ICS Search And Lookup
| Endpoint | Purpose | Main consumers |
|---|---|---|
app/ics/api/engine/contact_search.php |
Search contacts for stock/document forms. | Stock in/out/transfer and document source forms. |
app/ics/api/engine/product_search.php |
Search active products/SKUs for stock forms. | Stock in/out/transfer forms. |
app/ics/api/engine/barcode_lookup.php |
Resolve scanned barcode into product, lot/serial, or location context. | Scanner workflows and barcode-enabled forms. |
app/ics/api/engine/validate_scan_location.php |
Validate scanned warehouse/zone/aisle/rack context. | Scanner workflows. |
app/ics/api/engine/retrieve_stock_by_source.php |
Return stock rows linked to a source document. | WMS document detail and approval/deletion context. |
ICS Location Helpers
| Endpoint | Purpose |
|---|---|
app/ics/api/engine/retrieve_warehouse.php |
Return active warehouses available to the company. |
app/ics/api/engine/retrieve_zone.php |
Return zones for a warehouse. |
app/ics/api/engine/retrieve_aisle.php |
Return aisles for a warehouse/zone. |
app/ics/api/engine/retrieve_rack.php |
Return racks for a warehouse/zone/aisle. |
These endpoints are driven by warehouse/storage setup and company location mode. They are used to populate dependent dropdowns and validate manual location selection.
ICS Lot And Serial Helpers
| Endpoint | Purpose |
|---|---|
app/ics/api/engine/retrieve_lot.php |
Return known lots for a product/SKU. |
app/ics/api/engine/retrieve_active_lot.php |
Return lots with active stock availability. |
app/ics/api/engine/retrieve_active_serial.php |
Return serial numbers with active stock availability. |
app/ics/api/engine/sku_label_lots.php |
Return lots available for SKU label generation. |
app/ics/api/engine/sku_label_products.php |
Return products available for SKU label generation. |
Stats Endpoints
| Endpoint | Purpose |
|---|---|
app/accounting/api/engine/account_stats.php |
Chart of accounts summary cards/statistics. |
app/accounting/api/engine/department_stats.php |
Department summary cards/statistics. |
app/contact/api/engine/contact_stats.php |
Contact summary cards/statistics. |
app/inventory/api/engine/product_stats.php |
Product summary cards/statistics. |
app/inventory/api/engine/warehouse_stats.php |
Warehouse summary cards/statistics. |
app/ics/api/engine_report/product_stats.php |
Stock/product operational statistics. |
app/ics/api/engine_report/warehouse_stats.php |
Stock overview warehouse statistics. |
app/dashboard/api/engine_report/reports_stats.php |
WMS dashboard cards and charts; gated by transaction limits. |
Stats endpoints are read-only dashboard/list-page support routes. They should follow the same quota behavior as their parent dashboard/report area where UsageGuard is applied.
Retrieve Endpoints
Retrieve endpoints return one record or a bounded list needed by an edit form.
| Module | Endpoints |
|---|---|
| Contact | retrieve_contact.php, retrieve_contact_type.php |
| Inventory | retrieve_category.php, retrieve_product.php, retrieve_storage.php, retrieve_warehouse.php |
| Stock | retrieve_stock_in.php, retrieve_stock_out.php, retrieve_stock_transfer.php |
| Order | retrieve_order.php, retrieve_invoice.php, retrieve_return.php |
| PO | retrieve_po.php, retrieve_supplier_return.php |
| Revenue | retrieve_quotation.php |
| Expense | retrieve_purchase_request.php |
| Accounting | retrieve_account.php, retrieve_department.php, get_journal_detail.php |
| Settings | retrieve_company.php, retrieve_profile.php, retrieve_smtp.php, retrieve_users.php |
Expected behavior:
- Validate active company scope.
- Return only active positive-company rows unless the feature explicitly needs historical/deleted records.
- Avoid exposing rows from another company even when an ID is guessed.
Generic Inventory Manager Endpoint
Endpoint: app/inventory/api/engine/manager.php
This route is an inventory utility endpoint guarded to owner/admin roles. It belongs with product/category/warehouse/storage maintenance and should not be used for unauthenticated or cross-module access.
Endpoint Documentation Rule
When adding a new helper endpoint, update this file if the endpoint is not already clearly covered by a feature spec. Include:
- Endpoint path.
- Read/write behavior.
- Main consumer page.
- Important company/role/limit guards.
- Payload shape when frontend code depends on exact fields.