WooCommerce Order Entry
Simple WOO order entry GUI to quickly add orders.
by xboxhacker · github.com/xboxhacker/woocommerce-order-entry · website
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/xboxhacker/woocommerce-order-entry/archive/refs/heads/main.zipReadme
WooCommerce Order Entry Plugin
A comprehensive WordPress plugin that allows administrators to manually create WooCommerce orders through an intuitive GUI interface with a copy and paste customer address option. No need to type out the customer information.
Features
Customer Management
- Manual customer information entry with all required fields
- Save customers to database for future use
- Load previously saved customers from dropdown
- Parse customer information from pasted text with enhanced address parsing
- Automatic field population based on parsed data
- Country selection between United States and Canada (defaults to United States)
Product Management
- Dynamic product line creation with quantity, SKU, description, and price
- Real-time product search by SKU or name
- Product selection from WooCommerce inventory
- Add/remove product lines with validation
- Automatic price population from selected products
Order Processing
- One-click order creation
- Automatic order status set to "Processing"
- Direct link to created order for review
- Complete integration with WooCommerce order system
- PO Number integration: Display and search functionality in WooCommerce orders
Installation
- Upload the plugin files to
/wp-content/plugins/woocommerce-order-entry/ - Activate the plugin through the 'Plugins' menu in WordPress
- Navigate to WooCommerce → Order Entry to start creating orders
Requirements
- WordPress 5.0 or higher
- WooCommerce 3.0 or higher
- PHP 7.0 or higher
PDF Invoice Attachment
The plugin includes a pre-built vendor/ folder with Dompdf, so PDF invoices work out of the box. No Composer setup is required.
If you prefer to manage dependencies with Composer (e.g. for updates), run:
cd wp-content/plugins/woocommerce-order-entry
composer install
Without the vendor folder, invoices are sent as HTML in the email body (which can still be printed to PDF from your email client).
Usage
Creating an Order
-
Customer Information
- Use the dropdown to select a saved customer, or
- Paste customer information in the text area and click "Parse & Fill", or
- Manually enter customer details
-
Product Lines
- Start typing in the SKU field to search for products
- Select products from the search results
- Adjust quantity and pricing as needed
- Add additional product lines using the "Add Product Line" button
-
Submit Order
- Review all information
- Check "Save this customer for future use?" if you want to store customer information
- Click "Create Order" to submit
-
Order Confirmation
- View the success message with order number
- Click the order link to review the created order in WooCommerce
Country Selection
The plugin supports two countries:
- United States (default selection)
- Canada
The country selection affects:
- Form labels (State/Province, Zip/Postal Code)
- Address parsing logic for postal codes
- Order data stored in WooCommerce
PO Number Functionality
When a PO number is entered in the order form:
- Display: Appears in the order details page in the WooCommerce admin
- Search: Can be searched from the WooCommerce orders list
- Column: Shows in a dedicated "PO Number" column in the orders list
- Storage: Stored as order metadata for easy retrieval
Enhanced Customer Text Parsing
The plugin can automatically parse customer information from pasted text. It recognizes:
- Names: First line typically contains the full name
- Street Addresses: Lines containing numbers and street indicators (St., Ave., Rd., etc.)
- City/State/Zip: Format like "City, ST 12345" (US) or "City, ON K1A 0A9" (Canada)
- Email addresses: Valid email format detection
- Phone numbers: Various phone number patterns
- Postal codes:
- US format: 12345 or 12345-6789
- Canadian format: K1A 0A9 or K1A0A9
Example Formats:
United States:
John Doe
17700 Main St.
Kansas City, KS 66219
john.doe@email.com
(555) 123-4567
Canada:
Jane Smith
123 Maple Street
Toronto, ON M5V 3A8
jane.smith@email.com
(416) 555-0123
Keyboard Shortcuts
- Tab through form fields for quick data entry
- Enter key activates product search
- Escape key closes search results
Technical Details
Database Schema
The plugin creates a custom table wp_wc_oe_customers to store saved customer information:
CREATE TABLE wp_wc_oe_customers (
id mediumint(9) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
email varchar(255) NOT NULL,
phone varchar(50),
address_1 varchar(255),
address_2 varchar(255),
city varchar(100),
state varchar(100),
postcode varchar(20),
country varchar(5) DEFAULT 'US',
po_number varchar(100),
created_at datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
AJAX Endpoints
wc_oe_search_products- Product search functionalitywc_oe_save_customer- Save customer to databasewc_oe_load_customer- Load saved customer datawc_oe_parse_customer- Parse customer information from textwc_oe_create_order- Create WooCommerce order
WooCommerce Integration
The plugin extends WooCommerce functionality by:
- Adding PO number display in order details
- Including PO number in order search functionality
- Adding PO number column to orders list
- Storing PO number as searchable order metadata
- Supporting US and Canadian address formats
File Structure
woocommerce-order-entry/
├── woocommerce-order-entry.php (Main plugin file)
├── templates/
│ └── admin-page.php (Admin interface template)
├── assets/
│ ├── admin.css (Styling)
│ └── admin.js (JavaScript functionality)
└── README.md
Security Features
- Nonce verification for all AJAX requests
- Data sanitization and validation
- Capability checks for admin access
- SQL injection prevention with prepared statements
Customization
Extending Customer Parsing
The customer parsing logic can be enhanced by modifying the ajax_parse_customer() method. Current implementation includes enhanced patterns for:
- Name extraction from first line
- Street address detection with number patterns
- City/State/Zip parsing with regex for both US and Canadian formats
- Email and phone detection
- Automatic country detection based on postal code format
- Sequential field assignment
Adding Custom Fields
To add custom fields to the customer form:
- Update the database schema in
create_customers_table() - Add form fields to
templates/admin-page.php - Update the save/load customer AJAX handlers
- Modify the JavaScript to handle new fields
Styling Customization
The plugin includes responsive CSS that can be customized by:
- Modifying
assets/admin.css - Adding custom CSS through WordPress admin
- Using theme customizations
Version History
Version 1.1.3 (2025-07-28)
- Added Country Selection:
- Country dropdown with United States and Canada options
- United States set as default selection
- Updated form labels (State/Province, Zip/Postal Code)
- Enhanced parsing logic to detect Canadian postal codes
- Automatic country detection in address parsing
Version 1.1.2 (2025-07-28)
- Enhanced PO Number Integration:
- PO number now displays in WooCommerce order details page
- Added PO number column to WooCommerce orders list
- Made PO number searchable in WooCommerce order search
- Improved order metadata storage for better integration
Version 1.1.1 (2025-07-25)
- Fixed checkbox styling to be appropriately sized
- Updated text to "Save this customer for future use?" (added question mark)
- Improved checkbox alignment and visual presentation
Version 1.1.0 (2025-07-25)
- Enhanced address parsing for formatted customer information
- Improved regex patterns for city/state/zip detection
- Better street address recognition
- Updated plugin naming and directory structure
Version 1.0.0
- Initial release
- Customer management functionality
- Product search and selection
- Order creation with WooCommerce integration
- Responsive admin interface
Support
For support and feature requests, please visit the plugin repository or contact the development team.
License
This plugin is licensed under GPL v2 or later.