WooCommerce Overview
Comprehensive e-commerce functionality for TenPoint Crossbows powered by WooCommerce.
Platform Details
WooCommerce Version: 4.0+ (with HPOS support)
Product Count: ~500 crossbow products
Average Order Value: Varies by product line
Integration: Deep Epicor ERP integration
Product Catalog
Product Types
Simple Products:
- Standard crossbow models
- Accessories (bolts, scopes, targets)
- Replacement parts
Variable Products:
- Crossbow packages with scope/accessory options
- Color/finish variations
- Warranty tier selections
Bundled Products:
- Complete crossbow kits
- Accessory bundles
- Seasonal packages
Custom Product Fields
ACF Fields:
warrantied_bow_sku— Related warranty product SKUskip_inventory_update— Exclude from Epicor inventory syncbazaarvoice_external_id— External ID override for reviewsbazaarvoice_review_count— Cached review countbazaarvoice_average_rating— Cached average ratingrear_image— Rear view product image (crossbow-specific)product_comparison— Enable/disable in comparison tools
Product Categories
Organized hierarchically:
Crossbows
├── Hunting Crossbows
├── Target Crossbows
├── Youth Crossbows
└── Pistol Crossbows
Accessories
├── Bolts & Arrows
├── Scopes & Sights
├── Cases & Targets
└── Replacement Parts
Apparel
└── [Clothing categories]
Product Attributes
Crossbow Specifications:
- Draw Weight (lbs)
- Speed (FPS)
- Length
- Weight
- Axle-to-Axle Width
- Power Stroke
- Safety Features
Used for:
- Product filtering (FacetWP)
- Comparison tools
- Search refinement
Custom Order Statuses
Beyond WordPress defaults (pending, processing, on-hold, completed, cancelled, refunded, failed):
| Status | Slug | Purpose | Set By |
|---|---|---|---|
| Awaiting Shipment | wc-awaiting-shipment | Ready for warehouse | Theme |
| Shipment Pending | wc-shipment-pending | Exported to Epicor | Epicor plugin |
| Invoiced | wc-invoiced | Invoice generated | suma-woo-emails |
| Partially Shipped | wc-partially-shipped | Partial fulfillment | suma-woo-emails |
Payment Methods
Credit Card & ACH
Gateway: EBizCharge (woocommerce-ebizcharge-gateway v9.7.1)
Features:
- Credit card processing
- ACH/eCheck support
- Subscription recurring billing
- Surcharge handling:
- Configurable percentage or fixed amount
- Display in order totals
- Meta keys:
_ebiz_surcharge_enabled,_ebiz_surcharge_amount,_ebiz_surcharge_percentage,_ebiz_surcharge_caption
HPOS Compatible: Yes
PayPal
Gateway: PayPal Commerce Platform (woocommerce-paypal-payments)
Features:
- PayPal Checkout
- Credit/debit card via PayPal
- Pay Later messaging
- Advanced credit and debit card payments (ACDC)
Metadata:
_transaction_id— PayPal transaction ID_ppcp_paypal_order_id— PayPal order ID_ppcp_paypal_fees— Processing fees
Financing
Gateway: PayTomorrow (paytomorrow v3.0.6)
Features:
- Point-of-sale financing
- Monthly Payment Estimator (MPE) widget
- Real-time approval
- Flexible payment terms
Requirements:
- Valid lender metadata in order
- Meta keys:
PT-ReferenceID,PT-URL,PT-RETURN-URL
MPE Widget:
- CDN:
cdn.paytomorrow.com/js/pt-mpe.min.js - Displays on product pages
- Shows estimated monthly payments
Zero-Dollar Orders
Orders with $0 total (gift cards, coupons, promotions) are automatically approved and exported to Epicor.
Checkout Customization
Custom Checkout Plugin
Plugin: Checkout for WooCommerce
Features:
- Multi-step checkout flow
- Address autocomplete
- Mobile-optimized layout
- Custom field placement
Validation
Address Validation:
// Prevents email addresses in street address field
if (filter_var($address, FILTER_VALIDATE_EMAIL)) {
wc_add_notice('Please enter a valid street address', 'error');
}
Gift Card Validation:
- Validates gift card codes
- Checks balance before order completion
- Integrates with Epicor gift card system
Dealer Validation (Warranty Registration):
- Gravity Forms validation on form ID 4
- Prevents dealer data matching customer data
- Fields validated: ID 49, 50, 51
Tax Calculation
Plugin: WooCommerce AvaTax (woocommerce-avatax)
Features:
- Real-time tax calculation via Avalara API
- Tax-exempt customer support
- Nexus compliance
- Automated tax reporting
Tax-Exempt Detection: Orders exported to Epicor with tax-exempt flag when:
- Customer has tax-exempt status
- Verified tax-exempt certificate on file
Shopping Cart
Smart Coupons
Plugin: WooCommerce Smart Coupons
Features:
- Percentage discounts
- Fixed cart discounts
- Free shipping coupons
- Buy X Get Y deals
- Store credit
- Gift cards
- Auto-apply coupons
Epicor Integration:
- Coupon discounts exported as line items
- Gift cards exported as misc charges with
GiftCardNum_c
Cart Widgets
- Cart count (via AJAX:
api.php?action=current_cart_count) - Mini cart
- Cart abandonment tracking (Klaviyo)
Product Display
Product Images
Custom Implementation: Theme class-product-content.php
Features:
- Responsive images via
<picture>elements - Multiple image sizes:
- Thumbnail: 300×300
- Medium: 600×600
- Large: 1024×1024
- Full: Original dimensions
- Rear image support (crossbow-specific photography)
- Lazy loading via Picturefill
- Gallery zoom/lightbox
Product Variations
Custom Fields:
_custom_price— Override variation price_custom_sku— Custom SKU per variation- Variation-specific warranties
Display:
- Color/image swatches (woo-variation-swatches-pro)
- Dropdown selection
- Radio button selection
- Quick view modal
Related Products
Custom Rendering: Theme class-product-content.php
Logic:
- Same category products
- Custom columns: 3 for crossbows, 4 for accessories
- Excludes out-of-stock items (optional)
- Sortable by price, popularity, date
Product Schema Markup
Structured data for SEO:
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "TenPoint Viper S400",
"image": "product-image-url",
"description": "High-performance crossbow...",
"sku": "CB123",
"offers": {
"@type": "Offer",
"url": "product-url",
"priceCurrency": "USD",
"price": "1599.99",
"availability": "https://schema.org/InStock"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "127"
}
}
Product Filtering & Search
FacetWP Pro
Plugin: facetwp + addons
Facets:
- Price range slider
- Product categories
- Crossbow specifications (draw weight, speed, etc.)
- Brand
- Availability (in stock/out of stock)
- Rating
Addons:
facetwp-cache— Performance optimizationfacetwp-conditional-logic— Show/hide facetsfacetwp-elementor— Elementor integrationfacetwp-flyout— Flyout displayfacetwp-range-list— Range sliders
Custom Integration: Theme class-facetwp.php
- Category name mapping for display
- Custom facet labels
Algolia InstantSearch
Plugin: wp-search-with-algolia
Features:
- Instant search results
- Faceted filtering
- Typo tolerance
- Synonyms
- Analytics
Implementation:
- Custom search modal (page 6832)
- Theme integration:
class-algolia.php,class-algolia-custom-search.php - Conditional script loading
Product Reviews
Bazaar Voice Integration
Theme Module: inc/class-bazaar-voice.php
Features:
- Synced reviews from Bazaar Voice platform
- REST API:
POST /wp-json/bv/v1/statistics-update - Batch processing: 100 products at a time
- Cached statistics (review count, average rating, last review date)
- Rate limiting via
bazaarvoice_last_updatemeta
Shortcode:
[bzv_accessory_review_summary]
Display:
- Product pages: Review summary with star rating
- Archive pages: Review count and rating
- Schema markup integration
Inventory Management
Stock Synchronization
Plugin: tenpoint-epicor-integration
Process:
- Queries Epicor BAQ:
KP-AVAILINV - Bulk updates WooCommerce stock levels
- Updates
_stockand_stock_statusmeta - Updates
wp_wc_product_meta_lookuptable - Updates visibility taxonomy
- Clears caches
Skip Inventory Update:
Products with skip_inventory_update = 'yes' meta are excluded from sync.
Back-in-Stock Notifications: Plugin: back-in-stock-notifications-for-klaviyo
Flow:
- Customer subscribes to out-of-stock product
- Inventory sync updates stock to > 0
- Klaviyo sends email notification
Order Management
Order Flow
Cart → Checkout → Payment → Order Created (pending)
↓
Payment Gateway Processes
↓
wc-processing (if payment successful)
↓
Signifyd Fraud Check
↓ (if approved)
External Cron: Order Export to Epicor
↓
wc-shipment-pending (exported, awaiting fulfillment)
↓
Epicor Fulfillment (external)
↓
wc-partially-shipped OR wc-completed
Custom Order Columns
WooCommerce Orders Admin:
- "Exported to Epicor" (✓ or N/E with tooltip)
- "Date Exported" (timestamp)
- Payment method filtering
Order Notes
Automatic notes added by:
- Epicor integration plugin (export success/failure)
- Payment gateways (transaction IDs)
- Signifyd plugin (fraud scores)
- Email plugins (notification status)
Order Meta Keys
Epicor Integration:
_tenpoint-epicor-integration_exported_to_epicor— Export status_tenpoint-epicor-integration_epicor_order— Epicor OrderNum_epicor_order_export_date— Export timestamp
Payment Methods:
_transaction_id— Gateway transaction ID_payment_method_title— Display name_ppcp_paypal_order_id— PayPal order IDPT-ReferenceID— PayTomorrow reference
Gift Cards:
_gift_card_code— Gift card code_gift_card_amount— Applied amount
Email Notifications
Custom Emails
Plugin: suma-woo-emails
Custom Email Classes:
Partially Shipped Order:
- Class:
WC_Customer_Partially_Shipped_Order - Trigger: Status changes to
wc-partially-shipped - Recipients: Customer
- Content: Partial shipment details, tracking info
Signifyd Declined Order:
- Class:
WC_Customer_Signifyd_Declined_Order - Trigger: Order declined by Signifyd fraud detection
- Recipients: Customer
- Content: Order cancellation notice
- Integration:
send_email_on_signifyd_rejection()in theme WooCommerce class
Standard WooCommerce Emails
- New order (admin notification)
- Order processing (customer)
- Order completed (customer)
- Order refunded (customer)
- Customer invoice
- Password reset
- New account
Admin Tools
Bulk Editing
Plugins:
pw-bulk-edit— Price and attribute editingsmart-manager-for-wp-e-commerce— Advanced grid editor
Data Import/Export
Plugins:
wp-all-import-pro— CSV/XML product importwp-all-export-pro— Custom export templates
Common Imports:
- Product catalog from Epicor
- Inventory updates
- Price changes
- Product attributes
Product Management
- Duplicate products (duplicate-post)
- Regenerate thumbnails
- Bulk category assignment
- Bulk attribute creation
Reports & Analytics
WooCommerce Reports
Built-in reports:
- Sales by date
- Sales by product
- Top sellers
- Top earners
- Refunds
- Coupons by date
- Customer list
External Analytics
- Google Analytics (e-commerce tracking)
- Klaviyo customer analytics
- Bazaar Voice review analytics
- Epicor ERP reporting
Security & Fraud Prevention
Signifyd Fraud Detection
Plugin: signifyd-for-woocommerce v1.1.0
Features:
- Real-time order analysis
- Risk scoring (0-100)
- Automatic order acceptance/rejection
- Integration with custom email system
Hooks:
woocommerce_signifyd_rejected→ Send decline emailwoocommerce_signifyd_accepted→ Process gift cards
FraudLabs Pro
Plugin: fraudlabs-pro-for-woocommerce
Features:
- Secondary fraud screening
- IP geolocation validation
- Email verification
- Transaction velocity checks
Recaptcha
Plugin: recaptcha-for-woocommerce
Protection:
- Checkout form spam prevention
- Registration form protection
- Login attempt protection
Performance Optimization
Database
- High Performance Order Storage (HPOS/COT) enabled
- Indexed meta queries
- Transient caching for product queries
- Object cache support (Redis/Memcached)
Caching
- Page caching (WP Rocket when enabled)
- Object caching
- Transient caching for expensive queries
- CDN (Cloudflare)
Assets
- Dequeued default WooCommerce CSS/JS (theme handles styling)
- Conditional script loading
- Minified and concatenated assets
- CDN for common libraries
Troubleshooting
Order Export Issues
See: Epicor Integration: Troubleshooting
Inventory Sync Problems
- Check Epicor BAQ accessibility
- Verify SKU matching
- Review sync logs
- Check
skip_inventory_updatemeta
Payment Gateway Errors
- Test gateway credentials
- Check SSL certificate validity
- Review gateway logs
- Verify webhook endpoints
Checkout Issues
- Clear cart transients
- Check validation rules
- Review JavaScript console errors
- Test with different payment methods