WP Manifestindependent plugin directory
manifest / unclassified / smartgudang

SmartGudang

Mobile-first warehouse inventory plugin for WordPress

★ 0stars

Install

Download source zip No release zip yet

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
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

🇬🇧 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.

Home Warehouse stock Choose item Stock-out form

Features

  • Category → Brand → Item data model (custom post types inv_barang, inv_merek and taxonomy inv_kategori).
  • Stock-in and stock-out forms with server-side validation.
  • Automatic transaction history (dedicated inv_transaksi table) 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 from wp-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)

  1. Open Releases and download smartgudang-<version>.zip.
  2. 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).