Product Management Plugin
WordPress module built with ACF, with built-in Bazaarvoice integration.
by Pawel Cetnarowski · github.com/papik295/product-plugin-wp
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/papik295/product-plugin-wp/archive/refs/heads/develop.zipA small WordPress plugin for managing products and displaying product information with review placeholders. The plugin is built as a sanitized example, so it does not include real client names, credentials, or production integration details.
Features
- Product custom post type.
- ACF product fields loaded from Local JSON.
- Product archive, product detail, and reviews blocks.
- Product data exposed through custom REST endpoints.
- Environment-based script URL settings for test and production.
- Conditional frontend asset loading.
Requirements
- WordPress
- PHP 8+
- Composer
- Node.js and npm
- Advanced Custom Fields
Installation
From the plugin directory:
composer install
npm install
npm run build
Then activate the plugin in WordPress.
The build/ directory is not committed to the repository. Assets must be built locally or as part of a deployment/release process.
Product Fields
Products use the pri_product post type.
The plugin includes an ACF Local JSON field group in:
acf-json/group_pri_product_fields.json
Expected fields:
product_idproduct_namebazaarvoice_idproduct_descriptionpds_filesds_fileproduct_category
Product images use the native WordPress featured image.
During development, changes made to the field group in ACF can be written back to the plugin's acf-json/ directory. For production, field group changes should be made in code and deployed, not edited directly on live.
Blocks
The plugin provides three blocks:
- Product Archive
- Product Single
- Product Reviews
The editor uses WordPress block editor components. Frontend block output is mounted with React and fetches product data from the plugin REST API.
Settings
Settings are available in:
Settings -> Product Management
Available options:
- environment: test or production
- client name
- test script URL
- production script URL
- enable reviews
- enable rating summary
- enable debug mode
- cache duration
Script URLs are placeholders and should be replaced per environment.
REST API
The plugin exposes frontend-safe product and configuration data under:
/wp-json/product-management/v1
Available endpoints:
GET /productsGET /products/{id}GET /settingsGET /bazaarvoice-script
Public requests only expose published products. Editors can access additional product statuses while configuring blocks.
Development
Watch block assets:
npm run start
Build assets:
npm run build
Run PHP static analysis:
composer analyse
Notes
The review integration is intentionally mocked. The plugin renders Bazaarvoice-style placeholders and resolves a configured script URL, but it does not include real Bazaarvoice credentials or client-specific implementation details.