Skip to main content

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 SKU
  • skip_inventory_update — Exclude from Epicor inventory sync
  • bazaarvoice_external_id — External ID override for reviews
  • bazaarvoice_review_count — Cached review count
  • bazaarvoice_average_rating — Cached average rating
  • rear_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):

StatusSlugPurposeSet By
Awaiting Shipmentwc-awaiting-shipmentReady for warehouseTheme
Shipment Pendingwc-shipment-pendingExported to EpicorEpicor plugin
Invoicedwc-invoicedInvoice generatedsuma-woo-emails
Partially Shippedwc-partially-shippedPartial fulfillmentsuma-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

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"
}
}

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 optimization
  • facetwp-conditional-logic — Show/hide facets
  • facetwp-elementor — Elementor integration
  • facetwp-flyout — Flyout display
  • facetwp-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_update meta

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:

  1. Queries Epicor BAQ: KP-AVAILINV
  2. Bulk updates WooCommerce stock levels
  3. Updates _stock and _stock_status meta
  4. Updates wp_wc_product_meta_lookup table
  5. Updates visibility taxonomy
  6. 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:

  1. Customer subscribes to out-of-stock product
  2. Inventory sync updates stock to > 0
  3. 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 ID
  • PT-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 editing
  • smart-manager-for-wp-e-commerce — Advanced grid editor

Data Import/Export

Plugins:

  • wp-all-import-pro — CSV/XML product import
  • wp-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 email
  • woocommerce_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_update meta

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