SmartGudang
Mobile-first warehouse inventory plugin for WordPress
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/alifgammai/smartgudang/archive/refs/heads/main.zip🇬🇧 English · 🇮🇩 Bahasa Indonesia
A WordPress plugin for warehouse inventory that staff use straight from their phones. Stock is tracked per brand, every transaction is logged automatically, history can be exported as PDF, and every input is validated on the server.
It was first built for a farm equipment distributor (sprayers up to tractors), then cleaned up into a general-purpose plugin. The app interface is in Indonesian.
Features
- Category → Brand → Item data model (custom post types
inv_barang,inv_merekand taxonomyinv_kategori). - Stock-in and stock-out forms with server-side validation.
- Automatic transaction history (dedicated
inv_transaksitable) with PDF export (FPDF). - Dashboard with stock summary and recent activity.
- App-like frontend built from shortcodes, with a drawer menu, designed for staff on mobile.
karyawan(staff) role: can use the inventory pages on the frontend but is blocked fromwp-admin.- Item and brand photos, a profile page and a built-in tutorial.
- Settings page in wp-admin. Data is only removed on uninstall if the delete-data option is ticked (kept by default).
Requirements
| Component | Minimum version |
|---|---|
| WordPress | 6.0 |
| PHP | 7.4 |
Installation
From the zip (recommended)
- Open Releases and download
smartgudang-<version>.zip. - In WordPress go to Plugins → Add New → Upload Plugin, choose the zip and Activate.
With Git
cd wp-content/plugins
git clone https://github.com/alifgammai/smartgudang.git
Then activate it from Plugins.
Usage
Create WordPress pages and add the shortcodes you need.
| Shortcode | Purpose |
|---|---|
[inv_login_form] |
Login form |
[inv_beranda] |
Frontend home / dashboard |
[inv_stok] |
Stock list |
[inv_pilih_jenis] |
Choose transaction type |
[inv_pilih_merek] |
Choose brand |
[inv_pilih_barang] |
Choose item |
[inv_detail_barang] |
Item detail |
[inv_tambah_kategori] |
Add category |
[inv_tambah_merek] |
Add brand |
[inv_tambah_barang] |
Add item |
[inv_form_masuk] |
Stock-in form |
[inv_form_keluar] |
Stock-out form |
[inv_riwayat] |
Transaction history |
[inv_kelola_data] |
Data management |
[inv_profil] |
User profile |
[inv_tutorial] |
Usage tutorial |
[inv_user_name], [inv_count_masuk], [inv_aktivitas] |
Small info snippets for use on other pages |
Inventory pages are only available to logged-in users with the inv_access capability. Other settings live under the SmartGudang menu in wp-admin.
Pre Test / Post Test links (optional)
The side menu can show Pre Test and Post Test links, for example to a Google Form. If the filters are not set, the menu items are hidden.
add_filter( 'inv_pretest_url', fn() => 'https://forms.gle/example-pretest' );
add_filter( 'inv_posttest_url', fn() => 'https://forms.gle/example-posttest' );
Technical notes
- Stock is updated inside a database transaction with
SELECT ... FOR UPDATE, so two staff saving at the same moment cannot corrupt the stock count. - Every form is protected by a WordPress nonce and checks capabilities on the server, not only by hiding things in the UI.
- Stock-out cannot exceed the available stock.
Project structure
smartgudang/
├── smartgudang.php # main plugin file
├── uninstall.php
├── admin/ # wp-admin menu, pages and CSS
├── includes/ # core logic (DB, transactions, forms, roles, PDF, ...)
│ └── lib/fpdf/ # FPDF library
├── languages/ # translation files
└── public/ # frontend (views, css, js, img)
Releasing (maintainer)
The release zip is built automatically by GitHub Actions when a version tag is pushed:
# 1. Bump the version in smartgudang.php (the "Version:" header and the INV_VERSION constant)
# 2. Add the changes to CHANGELOG.md
git commit -am "Release 2.4.1"
git tag v2.4.1
git push origin main --tags
Every push to main is also linted on PHP 7.4, 8.0 and 8.3 (ci.yml).
The release workflow checks that the tag matches the plugin header version, then attaches smartgudang-2.4.1.zip to the Releases page.
Author
Built by Alif Gamma I, PHP Developer (Laravel & WordPress). Portfolio: alifgammai.my.id
Security
Please report vulnerabilities privately. See SECURITY.md.
License
GPL v2 or later. See LICENSE. The FPDF library in includes/lib/fpdf/ has its own license (license.txt).