WooCommerce EN
📦 Important: This guide applies to all three plugin versions (WooCommerce 8.x, 9.x, 10.x).
Choose the plugin version that matches your WooCommerce version!
- 1️⃣ Requirements
- 2️⃣ Choosing the Plugin Version
- 3️⃣ Plugin Installation
- 4️⃣ Basic Configuration
- 5️⃣ Product Fields Setup (IKPU and Packaging Code)
- What are IKPU and Packaging Code?
- Step 1: Filling in the IKPU and Packaging Code Fields
- Step 2: Available Packaging Codes
- Step 3: Where to Obtain the Required Codes
- Step 4: Verification
- Bulk Product Update (optional)
- Frequently Asked Questions (FAQ)
- Q: Are these fields mandatory?
- Q: What happens if IKPU is not filled in?
- Q: Can I use the same IKPU for all products?
- Q: How can I find the correct packaging code for my product?
- Q: Can I change IKPU after creating a product?
- Q: Where can I find these fields in the WooCommerce admin panel?
- Q: What if the fields do not appear?
- Q: Do I need to fill these fields for variable products?
- 📸 Example of filled fields
- 🔗 Additional Resources
- 6️⃣ Testing (Sandbox Mode)
- 7️⃣ Preparing for Production
- 8️⃣ Troubleshooting
- 9️⃣ Support
- 🔟 Additional Information
1️⃣ Requirements
System Requirements
WooCommerce | Plugin Archive | WordPress | PHP |
|---|---|---|---|
8.0 - 8.9 | wc-globalpay-gateway-wc8-v1.0.0.zip | 6.4+ | 7.4+ |
9.0 - 9.9 | wc-globalpay-gateway-wc9-v1.0.0.zip | 6.5+ | 7.4+ |
10.0+ | wc-globalpay-gateway-wc10-v1.0.0.zip | 6.7+ | 7.4+ |
General requirements for all versions
PHP 7.4+ (recommended 8.0+)
MySQL 5.6+ or MariaDB 10.2+
HTTPS required for production
PHP extensions:
curl,json,mbstring
Required Global Pay Data
Service ID
OAuth Username
OAuth Password
Access to sandbox or production environment
📞 Obtaining credentials: Request all credentials from Global Pay support:
Telegram: @Globalpay_merchants_support
2️⃣ Choosing the Plugin Version
🎯 How to check WooCommerce version
WordPress Admin → Plugins
Locate WooCommerce
Check version number (e.g., 10.0.3)
📦 Download the plugin
Select the version corresponding to your WooCommerce version:
📥 Download: wc-globalpay-gateway-wc8-v1.0.0.zip
wc-globalpay-gateway-wc8-v1.0.0.zip02 Dec 2025, 12:37 PM
📥 Download: wc-globalpay-gateway-wc9-v1.0.0.zip
wc-globalpay-gateway-wc9-v1.0.0.zip02 Dec 2025, 12:38 PM
📥 Download: wc-globalpay-gateway-wc10-v1.0.0.zip
wc-globalpay-gateway-wc10-v1.0.0.zip02 Dec 2025, 12:39 PM
📂 Alternative source:
Bitbucket repository:
https://bitbucket.org/global_solutions/global-pay-plugins-woo-8.x-9.x-10-x
Repository structure:
global-pay-plugins-woo-8.x-9.x-10-x/ ├── woocommerce-8.x/wc-globalpay-gateway/ ├── woocommerce-9.x/wc-globalpay-gateway/ └── woocommerce-10.x/wc-globalpay-gateway/
3️⃣ Plugin Installation
Option A: Install via ZIP (recommended)
Download the correct plugin version (Choosing the Plugin Version)
WordPress Admin → Plugins → Add New → Upload Plugin
Select ZIP file → Install → Activate
Option B: Install via Bitbucket (for developers)
# 1. Check WooCommerce version # 2. Navigate to WordPress plugins directory cd /path/to/wordpress/wp-content/plugins/ # 3. Clone repository git clone https://bitbucket.org/global_solutions/global-pay-plugins-woo-8.x-9.x-10-x.git temp-globalpay # 4. Copy your version (replace 10.x with 8.x or 9.x) cp -r temp-globalpay/woocommerce-10.x/wc-globalpay-gateway ./ # 5. Remove temp folder rm -rf temp-globalpay # 6. Verify structure cd wc-globalpay-gateway ls -la
Required files:
wc-globalpay-gateway.php(main plugin file)includes/(classes)assets/(styles & scripts)languages/(translations)
Option C: Manual Upload
Download plugin files from Bitbucket
Upload to
/wp-content/plugins/wc-globalpay-gateway/Ensure
wc-globalpay-gateway.phpis in the plugin rootActivate via WordPress Admin → Plugins
4️⃣ Basic Configuration
Step 1: Activate the Plugin
Go to WordPress Admin → Plugins.
Find GlobalPay Payment Gateway
Click Activate.
Step 2: Configure in WooCommerce
Navigate to WooCommerce → Settings → Payments
Locate Card Payment (GlobalPay)
Click Manage
Step 3: General Settings
🔧 General Settings
Field | Example | Description |
|---|---|---|
Enable method | ✅ | Turns on the payment method |
Title |
| Shown on checkout page |
Description |
| Message to customers |
🔐 API Settings
For Sandbox Environment:
Field | Value |
|---|---|
Environment |
|
OAuth Username |
|
OAuth Password |
|
Service ID |
|
For Production Environment:
Field | Value |
|---|---|
Environment |
|
OAuth Username |
|
OAuth Password |
|
Service ID |
|
🎨 Additional Options
Field | Recommended |
|---|---|
Enable API logging | ✅ (for debugging purposes) |
Step 4: Save Settings
Click the Save changes button at the bottom.
5️⃣ Product Fields Setup (IKPU and Packaging Code)
To correctly integrate your WooCommerce store with the product marking and accounting system of the Republic of Uzbekistan, it is necessary to fill in additional fields for each product.
What are IKPU and Packaging Code?
IKPU (Identification Code of Products and Services) — a unique code assigned to each product in Uzbekistan’s national product marking system.
It is a mandatory field for payments via UzCard and HUMO systems.Packaging Code — a numeric code that defines the type of product packaging according to the official classifier.
Step 1: Filling in the IKPU and Packaging Code Fields
Once the GlobalPay plugin is activated, the required fields automatically appear in each product’s edit page.
How to fill in the fields for a product:
Go to WooCommerce → Products
Select a product to edit
Scroll down to the Product data section
On the General tab, find the following fields:
Product Code (IKPU) * — required field
Packaging Code * — required field
Fill in the fields as follows:
Field | Description | Example |
|---|---|---|
Product Code (IKPU) | Unique product code from the official classifier tasnif.soliq.uz |
|
Packaging Code | Numeric code from the classifier tasnif.soliq.uz |
|
👉 Click Update or Publish when finished.
⚠️ Important: Both fields marked with * are mandatory.
If these fields are not filled in, payments through GlobalPay will not be processed.
Step 2: Available Packaging Codes
The Product Code (IKPU) and Packaging Code fields are plain text fields intended for entering the corresponding numeric codes from the official classifier at tasnif.soliq.uz.
📖 Note: Always use the actual codes from the official classifier tasnif.soliq.uz. Enter only the numeric value.
Step 3: Where to Obtain the Required Codes
Packaging Codes (units of measure):
🌐 Official classifier: https://tasnif.soliq.uz — search by keyword
📞 GlobalPay Support: support@global.uz — specialists can help you find the correct codes for your product category
📞 Classifier Call Center: 1198 — free consultation on packaging codes
📦 From supplier: Codes are often provided in the accompanying product documentation
IKPU (Product Codes):
🌐 Official classifier: https://tasnif.soliq.uz
📦 From supplier: Use the IKPU codes provided by your distributor
📞 Call Center: 1198 — consultation on identifying the correct IKPU code for your product
📌 Important:
IKPU and Packaging Codes are taken exclusively from Uzbekistan’s national classifier of goods and services — tasnif.soliq.uz.
Step 4: Verification
After filling in the fields, make sure that:
✅ Product Code (IKPU) is filled in (17 digits)
✅ Packaging Code is filled in (numeric value from the classifier, e.g.
796)✅ You clicked Update
Your product is now ready for sale through GlobalPay!
During checkout, these data will be automatically sent for fiscalization.
Bulk Product Update (optional)
If you have many products and need to apply the same values to all, you can use SQL commands.
-- Set packaging code “796” (piece) for all products without a value INSERT INTO wp_postmeta (post_id, meta_key, meta_value) SELECT ID, '_globalpay_package_code', '796' FROM wp_posts WHERE post_type = 'product' AND ID NOT IN ( SELECT post_id FROM wp_postmeta WHERE meta_key = '_globalpay_package_code' ); -- Set IKPU for all products in a specific category UPDATE wp_postmeta SET meta_value = '10851000001000001' WHERE meta_key = '_globalpay_ikpu' AND post_id IN ( SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id = 123 -- Category ID for "Electronics" );
⚠️ Warning: Always create a database backup before running SQL queries!
Frequently Asked Questions (FAQ)
Q: Are these fields mandatory?
A: Yes. To ensure proper fiscalization through GlobalPay, the IKPU and Packaging Code fields are mandatory. Without them, payment will be declined during fiscalization.
Q: What happens if IKPU is not filled in?
A: GlobalPay will return a fiscalization error, and the payment will not be processed.
Q: Can I use the same IKPU for all products?
A: Technically yes, but it is incorrect from an accounting and legal standpoint. Each product category must have its own unique IKPU code according to the classifier.
Q: How can I find the correct packaging code for my product?
A:
Visit tasnif.soliq.uz
Find the code that matches your product’s unit of measure
Enter the numeric code in the Packaging Code field
Q: Can I change IKPU after creating a product?
A: Yes, you can edit it at any time. The changes will apply to new orders.
Q: Where can I find these fields in the WooCommerce admin panel?
A: After activating the GlobalPay plugin:
Go to WooCommerce → Products → [Select product]
In the Product data section → General tab, you’ll find the fields below the price settings.
Q: What if the fields do not appear?
A:
Ensure that the GlobalPay plugin is activated
Clear your WordPress cache (if using a cache plugin)
Make sure you’re editing a product (post_type = product)
Refresh the page (Ctrl + F5)
Q: Do I need to fill these fields for variable products?
A: Yes, both IKPU and Packaging Code must be filled for simple and variable products.
For variable products, fill them at the parent (main) product level.
📸 Example of filled fields
🔗 Additional Resources
Uzbekistan Classifier of Goods and Services: tasnif.soliq.uz — official source for IKPU and packaging codes
💡 Tip: Bookmark tasnif.soliq.uz — you’ll need it every time you add new products.
6️⃣ Testing (Sandbox Mode)
Prepare Your Store
Create a test product:
WooCommerce → Products → Add New
Set price to at least 1000 UZS (e.g., 10000 UZS).
Click Publish.
⚠️ Important: Orders with amounts below 1000 UZS may be rejected by the API.
Check checkout configuration:
WooCommerce → Settings → Advanced
Make sure WooCommerce Blocks Checkout is enabled.
Test Cards
Card Type | Number | Expiry | CVV | OTP |
|---|---|---|---|---|
Uzcard |
|
| — | SMS |
HUMO |
|
| — | Browser Console* |
Visa | Request from Global Pay support | |||
Mastercard | Request from Global Pay support |
⚠️ Note: Test cards work only in Sandbox mode.
🔐 For HUMO test cards, the OTP code appears in the browser console, not via SMS.
In Production, all cards use SMS OTP.
Test Procedure
Add a product (≥ 1000 UZS) to the cart.
Proceed to checkout.
Select
Pay by Card (GlobalPay)as the payment method.Enter card details:
Card number
Expiry date (MM/YY)
CVV (for Visa/Mastercard)
Cardholder name (for Visa/Mastercard)
Click Place Order.
Enter the OTP code:
HUMO (Sandbox): from browser console
Uzcard/Visa/Mastercard: from SMS
Verify that the order completes successfully.
Getting the HUMO OTP Code (Sandbox Only)
Open browser developer tools (F12).
Go to the Console tab.
Look for a message:
🔐 TEST OTP CODE: 123456
📝 Note:
HUMO OTP is shown in the browser console in Sandbox only.
Uzcard, Visa, and Mastercard OTPs are sent by SMS in both Sandbox and Production.
7️⃣ Preparing for Production
Pre-Launch Checklist
Production credentials received
Site runs over HTTPS
SSL certificate installed
Plugin tested in Sandbox
Order notification emails verified
File permissions checked
Switching to Production
WooCommerce → Settings → Payments → GlobalPay
Set environment to
ProductionEnter your live credentials:
Service ID
OAuth Username
OAuth Password
Disable debug options:
API logging ❌
Checkout debug ❌
Save settings.
Production Testing
Make a real purchase (≥ 1000 UZS).
Check that the order appears in WooCommerce.
Verify transaction status in GlobalPay Admin.
Ensure email notifications are received.
Confirm that all cards (including HUMO) require OTP via SMS.
8️⃣ Troubleshooting
Payment Option Not Visible
Issue: Payment method doesn’t appear at checkout.
Solution:
Ensure plugin is activated.
Go to WooCommerce → Payments → GlobalPay and check it’s enabled.
Clear cache in WordPress and browser.
Verify your theme is WooCommerce compatible.
“Card Information Not Found” Error
Issue: API rejects card information.
Solution:
Check Service ID, Username, and Password.
Ensure correct environment (Sandbox vs Production).
Confirm card number and expiry date.
Verify CVV and cardholder name (Visa/Mastercard).
Order amount must be ≥ 1000 UZS.
OTP Code Not Received
Sandbox – HUMO:
OTP appears in browser console (no SMS).
Sandbox – Uzcard/Visa/Mastercard:
Should arrive via SMS.
Check your test phone number in GlobalPay account.
Production:
OTP always arrives via SMS.
Verify correct phone number.
Contact GlobalPay Support if issue persists.
Viewing Logs
Enable API logging:
WooCommerce → Payments → GlobalPay → Enable logging
Check logs via file system:
tail -f /wp-content/plugins/wc-globalpay-gateway/logs/api.log
Or via WordPress debug log:
tail -f /wp-content/debug.log | grep GlobalPay
Cache Issues
Issue: Card info not clearing after cancellation.
Solution:
Clear browser cache (Ctrl + Shift + R).
Delete WordPress transients:
// В WordPress Admin → Tools → WP-CLI wp transient delete --all
Theme or Plugin Conflicts
Issue: Plugin not functioning with certain themes.
Solution:
Switch to a default theme (Storefront, Twenty Twenty-Four).
Disable other plugins one by one.
Check browser console for JavaScript errors.
Make sure your theme supports WooCommerce Blocks.
9️⃣ Support
Repository
Bitbucket:
https://bitbucket.org/global_solutions/global-pay-plugins-woo-8.x-9.x-10-x
Documentation and technical support
Confluence Wiki:
WooCommerce. Installation and configuration guide for the GlobalPay plugin
GlobalPay API Docs:
https://globalsolutions.portal.swaggerhub.com/globalpay/docs/main-page
Technical support:
💬 Telegram: @Globalpay_merchants_support
🔟 Additional Information
Supported Card Types
Card Type | Prefix | CVV | Cardholder Name | OTP (Sandbox) | OTP (Production) |
|---|---|---|---|---|---|
Uzcard | 8600, 5614, 5440, 6264, 6262, 6263 | ❌ | ❌ | SMS | SMS |
HUMO | 9860 | ❌ | ❌ | Browser Console | SMS |
Visa | 4 | ✅ | ✅ | 3D Secure | 3D Secure |
Mastercard | 5 | ✅ | ✅ | 3D Secure | 3D Secure |
Limitations & Requirements
Parameter | Value |
|---|---|
Minimum Order Amount | 1000 UZS |
Supported Currency | UZS (Uzbek Sum) |
HTTPS Required | Yes (for production) |
Required product fields | IKPU, Packaging Code |
Plugin Directory Structure
wc-globalpay-gateway/ ├── wc-globalpay-gateway.php ├── includes/ │ ├── class-wc-gateway-globalpay.php │ ├── class-globalpay-api.php │ ├── class-globalpay-product-fields.php │ ├── class-globalpay-security.php │ ├── class-globalpay-token-manager.php │ ├── class-globalpay-webhook.php │ ├── class-wc-globalpay-blocks-support.php │ └── class-globalpay-hpos-helper.php ├── assets/ │ ├── css/checkout.css │ ├── js/blocks.js │ ├── js/checkout.js │ └── images/cards/ ├── languages/ │ ├── wc-globalpay-gateway-en_US.mo │ ├── wc-globalpay-gateway-ru_RU.mo │ └── wc-globalpay-gateway-uz_UZ.mo ├── templates/checkout/ └── logs/api.log
Version: 1.0.0
Updated: November 29, 2025
Author: Rushan Idrisov