WP Manifestindependent plugin directory
manifest / ecommerce / afaz-stock-desk-woocommerce

Afaz Stock Desk for WooCommerce

Update the stock quantity of every product and variation from one clean admin screen. Inline editing, bulk updates, instant saving, no page reloads.

★ 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/afaz2297/afaz-stock-desk-woocommerce/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.

Update the stock quantity of every WooCommerce product and variation from one clean admin screen. Inline editing, bulk updates, instant saving, no page reloads.


Why

Restocking a WooCommerce store normally means opening each product, scrolling to the Inventory tab, typing a number and pressing Update. For a shop that restocks weekly, that is dozens of page loads for a two-minute job.

This plugin adds a single Product Stock screen. Every product is listed with its image, name, SKU, category and stock badge, next to one editable quantity box. Type the number, press Enter, done.

Because the screen exposes nothing except the quantity, it is safe to hand to a shop manager or a warehouse assistant — nobody can rename a product or change a price by accident.

Features

  • One screen listing every product with thumbnail, name, SKU, category and status badge
  • Inline quantity editing saved over AJAX, with + / − steppers
  • Bulk updates: set, increase or decrease the stock of selected products
  • "Select all in this view" reaches every product matching the current filters, not just the page
  • Variations rendered as their own editable rows under the parent product
  • Live status badges: In stock, Low stock, Out of stock, On backorder
  • Search by product name or SKU
  • Filter by stock status and product category, sort by name or date
  • Optional automatic enabling of Track stock quantity for this product
  • Settings panel built into the screen — no separate options page
  • Fully translatable, ships with a POT file
  • HPOS compatible

Requirements

WordPress 6.5 or newer
WooCommerce 8.0 or newer
PHP 7.4 or newer

Installation

From a release ZIP

  1. Download the latest ZIP from the Releases page.
  2. In WordPress go to Plugins → Add New → Upload Plugin and choose the ZIP.
  3. Activate, then open Product Stock in the admin menu.

From source

git clone https://github.com/afaz2297/afaz-stock-desk-woocommerce.git

Place the folder inside wp-content/plugins/ and activate it.

Usage

Open Product Stock in the admin sidebar. It sits just above WooCommerce.

  • Type a number in a stock box and press Enter — it saves immediately
  • Press Esc to discard an edit before it saves
  • Use + / − for one-at-a-time adjustments; the save is debounced
  • Tick several rows to open the bulk bar, then set / increase / decrease them together
  • The gear icon opens the settings panel

Bulk updates

Selecting rows reveals a bulk bar with three actions — Set stock to, Increase by and Decrease by. If the current filters match more products than the page shows, a link offers to select all of them.

Updates run in batches of 20 through WooCommerce's own stock functions, with live progress, so a large catalogue never blocks on one giant request. One bulk action resolves up to 1,000 products; raise or lower that with asdw_bulk_limit.

A note on "Auto-enable stock tracking"

This setting is on by default. When a product that was not tracking stock is rendered on the screen, tracking is switched on and its quantity starts at 0, which WooCommerce reads as out of stock. Entering the real number fixes it instantly.

If you would rather not touch existing products, turn the setting off. Tracking is then only enabled for a product when you actually save a quantity for it.

Developer reference

Filters

Filter Description
asdw_settings Filter the resolved settings array.
asdw_capability Capability required to open the screen. Default manage_woocommerce.
asdw_menu_position Admin menu position. Default 55.4 (WooCommerce sits at 55.5).
asdw_unsupported_product_types Product types that never hold a quantity. Default grouped, external.
asdw_query_args WP_Query arguments used to list products.
asdw_bulk_limit Maximum products one bulk action may resolve. Default 1000.

Actions

Action Description
asdw_stock_updated Fires after a quantity is saved. Receives $product_id, $quantity, $product.

Example

// Let shop editors use the screen too.
add_filter( 'asdw_capability', function () {
    return 'edit_products';
} );

// Log every change.
add_action( 'asdw_stock_updated', function ( $product_id, $quantity ) {
    error_log( sprintf( 'Stock for #%d set to %s', $product_id, $quantity ) );
}, 10, 2 );

Project structure

afaz-stock-desk-woocommerce/
├── afaz-stock-desk-woocommerce.php   Plugin header, constants, bootstrap
├── uninstall.php                     Removes the option on delete
├── readme.txt                        WordPress.org readme
├── includes/
│   ├── class-asdw-plugin.php         Container
│   ├── class-asdw-settings.php       Option storage + sanitization
│   ├── class-asdw-stock.php          WooCommerce stock helpers
│   ├── class-asdw-list-screen.php    Menu, query, rendering
│   └── class-asdw-ajax.php           AJAX endpoints
├── assets/
│   ├── css/admin.css
│   └── js/admin.js
└── languages/
    └── afaz-stock-desk-woocommerce.pot

Security

  • Every AJAX request is nonce-checked and capability-checked
  • Listing filters passed by GET are verified with a nonce and a capability check before being read
  • All input is sanitized, all output escaped
  • Stock writes go through wc_update_product_stock() so WooCommerce stays authoritative

Found something? Please open a private security advisory rather than a public issue.

Contributing

Pull requests are welcome. Please follow the WordPress PHP coding standards and keep the plugin dependency-free.

Author

Afaz Alif — LinkedIn

Helping SMEs build modern, functional, conversion-focused e-commerce sites that rank and convert. Six years of WooCommerce and eCommerce work with startups in jewelry, peptides, clothing, beauty and lifestyle, taking stores from $0 to $10K–$50K+ monthly revenue through better store structure, product pages, checkout flow and conversion-focused design.

Trademark notice

This is an independent extension for WooCommerce. It is not affiliated with, endorsed by, or sponsored by Automattic Inc. or WooCommerce. "WooCommerce" is a trademark of Automattic Inc., used here only to describe what this plugin works with.

License

GPL-2.0-or-later. See LICENSE.