Official Documentation & Manuals

OmnifyWP Complete Knowledge Base

The complete documentation suite for OmnifyWP: merchant setup wizard, product catalog management, CRM, order workflows, and technical developer specifications for our 27 relational tables and REST APIs.

Request a Topic
search
51 Topics
📘 User Guide Getting Started Start #1

1. Introduction to OmnifyWP

1. Introduction to OmnifyWP

Discover how OmnifyWP eCommerce delivers ultra-high performance and a modern commerce experience on WordPress.

OmnifyWP eCommerce is an enterprise-grade, high-performance eCommerce solution engineered specifically for modern WordPress sites. By completely bypassing the legacy wp_posts and wp_postmeta bottleneck, OmnifyWP delivers sub-millisecond page loads, military-grade digital asset security, and high-converting checkouts.

Zero-Postmeta Latency

Product, order, customer, and inventory records live in 27 dedicated normalized relational SQL tables with optimized multi-column indexes, achieving sub-millisecond queries even with catalogs of millions of items.

Cryptographic Digital Locker

Deliver software, digital downloads, courses, and media securely with SHA-256 HMAC-signed URLs, time-based expiration, download caps, and automated file revocation upon refund.

Conversion-First Storefront

Modern responsive shop grid, sticky product cards, variant swatches, urgency badges, real-time cart scarcity timers, and frictionless single/multi-step checkouts designed to convert.

Architectural Comparison: OmnifyWP vs Legacy WooCommerce

Architecture Dimension Legacy WooCommerce OmnifyWP eCommerce
Database Storage Overloaded wp_posts & wp_postmeta EAV table joins 27 Dedicated Normalized SQL Tables (Clean Separation)
Query Execution Time 45ms – 250ms+ under large catalogs 0.4ms – 2.5ms indexed direct SQL queries
Digital Asset Delivery Basic PHP redirects or exposed download URLs HMAC-SHA256 Signed Tokens, 8KB chunk streaming
Refund Asset Security Manual access revocation required Instant Automatic File Revocation on order refund
Block Editor Integration Heavy legacy widgets & shortcode wrappers 100% Native Gutenberg Full Site Editing blocks
Built for Scale: Your blog posts, pages, and custom post types remain completely isolated from high-volume catalog queries. Backups, queries, and caching remain lightning fast as your store scales to millions in revenue.
Was this guide helpful?
#intro
📘 User Guide Getting Started Setup #2

2. Installation & Setup Wizard

2. Installation & Setup Wizard

Step-by-step installation instructions, system prerequisites, and the 4-step store setup wizard.

Getting your store live with OmnifyWP eCommerce takes less than five minutes. The built-in setup wizard automatically configures core currency settings, payment gateways, and necessary storefront shortcodes.

System Requirements

ComponentMinimum RequiredRecommended
WordPress6.5+Latest Stable (Block Editor Enabled)
PHP Version8.2+8.2 or 8.3 (with curl, mbstring, openssl, json)
DatabaseMySQL 5.7+ / MariaDB 10.3+MySQL 8.0+ / MariaDB 10.6+
Web ServerNginx or Apache with mod_rewriteNginx with HTTP/2 or HTTP/3
SSL CertificateHTTPS RequiredStrict Transport Security (HSTS) Active

Onboarding Setup Wizard

Upon plugin activation, navigate to Omnify → Setup Wizard to initialize your store in 4 simple guided steps:

  • Step 1: Store Profile: Business name, operational headquarters, physical address, and contact email.
  • Step 2: Currency & Locale: Operational base currency, thousand/decimal separator, symbol placement, and measurement units.
  • Step 3: Payment Gateways: One-click enablement for Stripe Elements, PayPal Commerce, Razorpay, SSLCommerz, and Cash on Delivery.
  • Step 4: Page Generation: Automatic creation and shortcode binding for Storefront, Cart, Checkout, Customer Portal, and Order Tracking.
wp-admin/admin.php?page=omnify-wizard
Setup Wizard
Setup Wizard Screenshot Placeholder
View Full Screenshot
Figure: Setup Wizard Image: screenshot-setup-wizard.svg

Generated Core Store Pages

OmnifyWP automatically generates dedicated pages with embedded shortcodes:

  • Storefront (/storefront/): Houses [omnify_storefront] to display the responsive product catalog grid.
  • Cart (/cart/): Houses [omnify_cart] for interactive line-item management and coupon applications.
  • Checkout (/checkout/): Houses [omnify_checkout] for high-converting single/multi-step checkout.
  • Customer Portal (/customer-portal/): Houses [omnify_customer_portal] for buyer account management and downloads.
  • Order Tracking (/order-tracking/): Houses [omnify_order_tracking] for guest order status lookups.
  • Secure Download (/secure-download/): Houses [omnify_download_page] for encrypted streaming delivery.
📘 User Guide Getting Started KPIs #3

3. Store Dashboard Overview

3. Store Dashboard Overview

Real-time financial KPI cards, store status badges, recent transactions feed, and one-click quick actions.

The Omnify Dashboard (located under Omnify → Dashboard) serves as the executive command center for store health, performance trends, and real-time transaction activity.

wp-admin/admin.php?page=omnify-dashboard
Store Dashboard
Store Dashboard Screenshot Placeholder
View Full Screenshot
Figure: Store Dashboard Image: screenshot-dashboard.svg

Key Performance Indicators (KPI Cards)

Total Revenue

Cumulative gross revenues generated by paid orders, complete with percentage change indicators compared against earlier sales periods.

Total Orders

Total transaction volume across all order states, allowing you to gauge operational velocity and sales velocity.

Active Customers

Total verified customer accounts and repeat purchasing records preserved in the custom normalized CRM schema.

Digital Downloads

Count of authorized cryptographic digital downloads streamed safely to verified purchasers with zero memory leakage.

Quick Actions Panel

Use the right-hand action shortcuts to rapidly perform routine storekeeper operations:

  • + Add New Product: Jump straight into the comprehensive product authoring suite.
  • Create Coupon: Launch a flash sale or custom discount code promotion.
  • Export Accounting CSV: Generate QuickBooks and Xero compatible financial exports.
  • Verify 27 SQL Tables: Run instant schema diagnostic checks across all custom tables.
📘 User Guide Catalog & Fulfillment Stock #4

4. Product Catalog Management

4. Product Catalog Management

Create and edit Physical, Variable, Digital, and Bundled products, configure pricing, and manage inventory.

Navigate to Omnify → Products to view, search, and organize your store's inventory. Products can be filtered by taxonomy, type, status, and creation date, or exported to CSV.

wp-admin/admin.php?page=omnify-products
Catalog Directory
Catalog Directory Screenshot Placeholder
View Full Screenshot
Figure: Catalog Directory Image: screenshot-product-catalog.svg

Supported Product Types

  • Digital / Downloadable: Software applications, WordPress plugins/themes, eBooks, audio/video lessons, presets, and digital graphics linked to secure cryptographic file delivery lockers.
  • Physical Products: Tangible items requiring weight, package dimensions, stock tracking, and shipping calculations.
  • Variable Products: Configurable products offering variation matrices based on attributes (e.g. License Tier: Single Site / 5 Sites / Agency, or Size / Color).
  • Product Bundles: Curated package deals grouping multiple digital or physical assets into a single discounted SKU.

Product Editor Interface

Click Create Product or edit an existing item to access the product management workspace.

wp-admin/admin.php?page=omnify-products&action=edit&id=101
Product Editor Wizard
Product Editor Wizard Screenshot Placeholder
View Full Screenshot
Figure: Product Editor Wizard Image: screenshot-product-editor.svg

Redesigned Product Variations Builder (v1.4.3)

Variable products are authored through a rebuilt variation matrix that pairs clear attribute controls with fast, responsive inputs:

  • Unified Attribute Badge Controls: Each attribute axis (e.g. SIZE, COLOR) renders as a clean uppercase badge chip paired with an integrated borderless dropdown and custom SVG chevron indicator.
  • Laser-Aligned Pricing & Stock Grid: SKU, Regular Price, and Sale Price share a normalized 42px height and 8px radius with currency-prefix indicators; the explicit Inventory Tracking toggle container sits aligned with Stock Qty and Stock Status.
  • Availability & Preorders Panel: A structured fulfillment card with Allow backorders and Preorder toggles plus a subgrid for Release Date, Preorder Limit, and a shopper-facing Notice Message.
  • Estimated Delivery Field: A single full-width input with a transport icon prefix communicating per-variation dispatch expectations.
  • Compact Icon Actions: Variation image selection and removal use 32×32px icon buttons with accessible tooltips instead of text links.
  • Lightweight Variation Notes: Native textareas replace heavy TinyMCE toolbars to remove editor bloat and improve render performance.

Product Taxonomies

Organize your catalog with structured taxonomies that drive storefront filtering, search, and navigation:

wp-admin/admin.php?page=omnify-categories
Taxonomies › Categories
Taxonomies › Categories Screenshot Placeholder
View Full Screenshot
Figure: Taxonomies › Categories Image: screenshot-categories.svg
wp-admin/admin.php?page=omnify-tags
Taxonomies › Tags
Taxonomies › Tags Screenshot Placeholder
View Full Screenshot
Figure: Taxonomies › Tags Image: screenshot-tags.svg
wp-admin/admin.php?page=omnify-brands
Taxonomies › Brands
Taxonomies › Brands Screenshot Placeholder
View Full Screenshot
Figure: Taxonomies › Brands Image: screenshot-brands.svg
wp-admin/admin.php?page=omnify-attributes
Catalog › Attributes
Catalog › Attributes Screenshot Placeholder
View Full Screenshot
Figure: Catalog › Attributes Image: screenshot-attributes.svg
Was this guide helpful?
#products
📘 User Guide Catalog & Fulfillment Sales #5

5. Order Fulfillment & Refunds

5. Order Fulfillment & Refunds

Manage incoming orders, review line items, inspect fraud risk scores, print packing slips, and issue refunds.

The orders fulfillment center under Omnify → Orders gives you complete control over transaction statuses, fulfillment workflows, and customer updates.

wp-admin/admin.php?page=omnify-orders
Orders Center
Orders Center Screenshot Placeholder
View Full Screenshot
Figure: Orders Center Image: screenshot-orders-center.svg

Order Lifecycle Workflows

StatusMeaningDigital Locker Action
PendingOrder created; awaiting customer payment clearance.Access withheld
ProcessingPayment confirmed; awaiting physical packing or delivery.Access active
CompletedOrder successfully fulfilled and dispatched to customer.Access active
On HoldAwaiting manual verification (e.g. Bank Transfer / Wire).Access withheld
CancelledOrder terminated before payment processing.Access withheld
Partially RefundedPortion of total returned; balance remains captured.Access active for non-refunded items
RefundedTransaction reversed; full funds returned to buyer.Access automatically revoked

Order Detail, Fraud Assessment & Refunds

Click on any order to view line items, customer addresses, transaction records, and the fraud risk assessment badge.

wp-admin/admin.php?page=omnify-orders&action=view&id=1042
Order #OMN-2026-1042
Order #OMN-2026-1042 Screenshot Placeholder
View Full Screenshot
Figure: Order #OMN-2026-1042 Image: screenshot-order-detail.svg
Automatic File Revocation & Gateway Sync: Processing a full refund or receiving a full refund webhook from Stripe/PayPal automatically revokes customer access to digital files, canceling existing download tokens. Partial refunds transition status to Partially Refunded, preserving access for remaining line items.
Was this guide helpful?
#orders
📘 User Guide Catalog & Fulfillment LTV #6

6. Customer Management (CRM)

6. Customer Management (CRM)

Centralized directory of customer profiles, purchase histories, lifetime value calculations, and address books.

Under Omnify → Customers, store owners have a built-in CRM directory capturing valuable buyer intelligence without requiring third-party plugins.

wp-admin/admin.php?page=omnify-customers
Customer Directory
Customer Directory Screenshot Placeholder
View Full Screenshot
Figure: Customer Directory Image: screenshot-customers-crm.svg

Customer Profile Capabilities

  • Lifetime Value (LTV): Track cumulative gross revenues contributed by individual shoppers to identify high-value VIP buyers.
  • Order Histories: Direct chronological access to every transaction placed by the customer.
  • Saved Address Books: View and manage customer billing and shipping addresses for smooth reordering.
  • Digital Access Rights: Inspect which software licenses or downloadable products are currently assigned to the user.
  • High-Performance Pagination: Instant search, sort, and SQL pagination optimized for enterprise customer bases with tens of thousands of records.
📘 User Guide Catalog & Fulfillment Deals #7

7. Promotions & Coupons Engine

7. Promotions & Coupons Engine

Create percentage or fixed discount coupons with minimum spend thresholds, usage caps, and expiration limits.

Run targeted promotions, seasonal flash sales, and customer loyalty rewards via Omnify → Coupons.

wp-admin/admin.php?page=omnify-coupons
Promotions & Coupons
Promotions & Coupons Screenshot Placeholder
View Full Screenshot
Figure: Promotions & Coupons Image: screenshot-coupons.svg

Discount Types

  • Percentage Discount (%): Deducts a percentage from the eligible cart items (e.g. 20% off entire cart).
  • Fixed Cart Discount ($): Deducts a fixed currency amount from the order total (e.g. $15 off orders over $100).
  • Fixed Product Discount ($): Applies a fixed currency discount per individual eligible product unit.

Usage Restrictions & Rules

Fine-tune coupon eligibility to prevent discount abuse:

  • Minimum & Maximum Spend: Establish subtotal spend boundaries required to activate the promo.
  • Individual Use Only: Prevent shoppers from stacking promotional codes.
  • Usage Limit per Coupon: Cap the total times a coupon can be redeemed store-wide.
  • Usage Limit per User: Limit redemptions per customer email address (e.g. one-time use per customer).
  • Timezone-Aware Expiration: Expiration dates and times evaluate against your WordPress site timezone (using wp_timezone()), eliminating premature or delayed expiration.
Was this guide helpful?
#coupons
📘 User Guide Analytics & Marketing Reports #8

8. Store Analytics & Reports

8. Store Analytics & Reports

Monitor sales trends, net revenues, Average Order Value (AOV), refund rates, and export accounting CSVs.

Under Omnify → Analytics, gain instant visibility into store health through interactive charts and performance summaries.

wp-admin/admin.php?page=omnify-analytics
Analytics & Reports
Analytics & Reports Screenshot Placeholder
View Full Screenshot
Figure: Analytics & Reports Image: screenshot-analytics.svg

Core Financial Metrics

Gross Sales

Total transaction values before deductions, discounts, or refunds.

Net Sales

Gross revenues minus promo discounts and completed refunds.

Average Order Value (AOV)

Average transaction size, helping evaluate upsell and cross-sell effectiveness.

CSV Export for Accounting: Click Export Report (CSV) in the top-right corner to export comprehensive financial data formatted for QuickBooks, Xero, or custom spreadsheet analysis.
📘 User Guide Analytics & Marketing Trust #9

9. Customer Reviews Moderation

9. Customer Reviews Moderation

Review moderation queue, verified buyer badges, star ratings management, and spam protection.

Customer testimonials build purchasing confidence. Navigate to Omnify → Reviews to moderate submitted buyer reviews and ratings.

wp-admin/admin.php?page=omnify-reviews
Reviews Moderation
Reviews Moderation Screenshot Placeholder
View Full Screenshot
Figure: Reviews Moderation Image: screenshot-reviews.svg

Review Management Features

  • Verified Buyer Badge: Automatically indicates whether the reviewer purchased the product from your store.
  • Moderation Statuses: Mark reviews as Approved, Unapproved (held for moderation), or move to Trash.
  • Star Ratings: Visual 1-5 star ratings displayed on storefront product cards and detail pages.
Was this guide helpful?
#reviews
📘 User Guide Analytics & Marketing Recovery #10

10. Abandoned Cart Recovery

10. Abandoned Cart Recovery

Automatically track dropped checkout sessions and recover lost sales with scheduled reminders.

Under Omnify → Abandoned Carts, OmnifyWP tracks incomplete checkout sessions and helps recover potential lost revenue automatically.

wp-admin/admin.php?page=omnify-abandoned-carts
Abandoned Cart Recovery
Abandoned Cart Recovery Screenshot Placeholder
View Full Screenshot
Figure: Abandoned Cart Recovery Image: screenshot-abandoned-carts.svg

Recovery Workflow

  1. Multi-Item Basket Capture: As soon as a customer enters their email address during checkout, Omnify serializes the entire shopping basket—including products, variations, quantities, and pricing.
  2. Threshold Evaluation: If no completed order occurs within 60 minutes, the session is flagged as Abandoned.
  3. Automated Reminder: Dispatches personalized recovery reminder emails containing direct, cryptographic 1-click checkout restoration links.
  4. Instant Session Restoration: Clicking the link reconstitutes the customer's entire basket with items, quantities, and active discounts intact.
  5. Conversion Attribution: Once purchased, the status transitions to Recovered, updating your recovery metrics.
📘 User Guide Store Configuration Config #11

11. Store Configuration & Settings

11. Store Configuration & Settings

Configure store currencies, payment processors, delivery methods, tax rates, emails, and checkout rules.

Under Omnify → Settings, customize your store's business logic, regional formats, payment processors, and notification templates.

General Settings

Configure store currency, symbol placement, decimal formatting, and physical measurement units.

wp-admin/admin.php?page=omnify-settings&tab=general
Settings › General
Settings › General Screenshot Placeholder
View Full Screenshot
Figure: Settings › General Image: screenshot-settings-general.svg

Payment Gateways Configuration & Setup Guides

Connect and configure integrated payment processors for your store. Secure-by-Default Architecture: When OmnifyWP is installed, all payment gateways start disabled by default (0). Gateways only appear on the checkout once the merchant configures valid credentials and explicitly enables them.

wp-admin/admin.php?page=omnify-settings&tab=payments
Settings › Payments
Settings › Payments Screenshot Placeholder
View Full Screenshot
Figure: Settings › Payments Image: screenshot-settings-payments.svg

1. Stripe Setup Guide (Credit/Debit, Apple Pay, Google Pay, SEPA)

Step 1: Log in to your Stripe Dashboard at stripe.com.

Step 2: Go to Developers → API keys. Copy your Publishable key (pk_live_... or pk_test_...) and Secret key (sk_live_... or sk_test_...).

Step 3: Go to Developers → Webhooks → Add endpoint. Set URL to https://yourdomain.com/wp-json/omnify/v1/webhook/stripe. Select events: payment_intent.succeeded, payment_intent.payment_failed, and charge.refunded. Copy the Signing secret (whsec_...).

Step 4: In WordPress, open Omnify → Settings → Payments → Stripe. Paste your Publishable Key, Secret Key, and Webhook Secret. Toggle Test Mode ON for sandbox testing, or OFF for live processing, and click Save Changes.

Step 5: Test transactions using Stripe's official card number 4242 4242 4242 4242, any future expiry date, and any 3-digit CVC.

2. PayPal Commerce Platform Setup Guide

Step 1: Visit developer.paypal.com and navigate to Dashboard → Apps & Credentials.

Step 2: Switch to Sandbox or Live, click Create App, select Merchant type, and copy your Client ID and Secret Key.

Step 3: Under App Webhooks, add https://yourdomain.com/wp-json/omnify/v1/webhook/paypal listening for CHECKOUT.ORDER.APPROVED, PAYMENT.CAPTURE.COMPLETED, and PAYMENT.CAPTURE.REFUNDED.

Step 4: In Omnify Settings → Payments → PayPal, paste Client ID and Secret, choose Sandbox or Live environment, enable Smart Buttons (PayPal, Pay in 4, Venmo, Cards), and save.

3. Razorpay Setup Guide (India: UPI, NetBanking, RuPay)

Step 1: Log in to your Razorpay Dashboard at dashboard.razorpay.com.

Step 2: Go to Account & Settings → API Keys. Click Generate Key to receive your Key ID and Key Secret.

Step 3: Go to Settings → Webhooks → Add New Webhook. Set URL to https://yourdomain.com/wp-json/omnify/v1/webhook/razorpay, enter a webhook secret passphrase, and select payment.captured, payment.failed, and refund.processed.

Step 4: In Omnify Settings → Payments → Razorpay, enter Key ID, Key Secret, and Webhook Secret, toggle Enable to ON, and save.

4. SSLCommerz Setup Guide (Bangladesh: bKash, Nagad, Rocket)

Step 1: Register a merchant account at sslcommerz.com. Obtain Sandbox credentials from integration support and production credentials from merchant.sslcommerz.com.

Step 2: Configure IPN (Instant Payment Notification) listener URL in SSLCommerz merchant panel: https://yourdomain.com/wp-json/omnify/v1/webhook/sslcommerz.

Step 3: In Omnify Settings → Payments → SSLCommerz, select Sandbox or Live environment, input your Store ID and Store Password, and save.

5. Cash on Delivery (COD) Setup Guide

Step 1: Open Omnify → Settings → Payments → Cash on Delivery and toggle Enable to ON.

Step 2: Configure Title, Description, and Customer Instructions for couriers.

Step 3: Restrict COD to physical items (virtual/downloadable items automatically hide COD). Set optional minimum and maximum order thresholds.

Step 4: Orders are initially assigned Processing or Pending Payment, transitioning to Completed when cash is received.

6. Direct Bank Wire Transfer (BACS) Setup Guide

Step 1: Open Omnify → Settings → Payments → Direct Bank Transfer and toggle Enable to ON.

Step 2: Add one or more business bank accounts: Account Name, Account Number, Bank Name, Sort Code/Routing Number, IBAN, and BIC/SWIFT.

Step 3: Orders are placed on On Hold status with account instructions displayed on screen and emailed to the buyer. Once the wire transfer clears in your bank, administrators mark the order as Processing or Completed.

8. Paystack Setup Guide (Africa: Nigeria, Ghana, Kenya, South Africa)

Step 1: Register at paystack.com and copy your Public Key (pk_live_...) and Secret Key (sk_live_...).

Step 2: Set Webhook URL to https://yourdomain.com/wp-json/omnify/v1/paystack/webhook.

Step 3: In Omnify Settings → Payments → Paystack, toggle Enable to ON, select Test or Live environment, paste keys, and save.

9. Tap Payments Setup Guide (Middle East & GCC)

Step 1: Register at tap.company and obtain your Public and Secret API keys.

Step 2: Point webhook destination to https://yourdomain.com/wp-json/omnify/v1/tap/webhook.

Step 3: In Omnify Settings → Payments → Tap Payments, paste your credentials and save.

10. Mollie Setup Guide (European Union: iDEAL, Bancontact, SEPA)

Step 1: Obtain your Live or Test API Key from mollie.com dashboard.

Step 2: In Omnify Settings → Payments → Mollie, enter your API Key and save. All localized European payment schemes are enabled automatically.

11. Khalti & eSewa Setup Guides (Nepal)

Khalti: Enter Live/Test Secret Key in Omnify Settings → Payments → Khalti.

eSewa: Enter Merchant Code and HMAC-SHA256 Secret Key in Omnify Settings → Payments → eSewa.

12. Paddle Billing Setup Guide (Global Merchant of Record)

Step 1: In Paddle dashboard, obtain Client-Side Token, API Secret Key, and configure webhook to https://yourdomain.com/wp-json/omnify/v1/paddle/webhook.

Step 2: In Omnify Settings → Payments → Paddle, enter your credentials and save.

7. Cheque Payment Setup Guide

Step 1: Open Omnify → Settings → Payments → Cheque Payment and toggle Enable to ON.

Step 2: Enter Payee Name and physical mailing address for checks. Orders stay On Hold until paper checks are received, deposited, and cleared.

Delivery & Shipping Options

wp-admin/admin.php?page=omnify-settings&tab=delivery
Settings › Delivery
Settings › Delivery Screenshot Placeholder
View Full Screenshot
Figure: Settings › Delivery Image: screenshot-settings-shipping.svg

Taxes & Calculations

wp-admin/admin.php?page=omnify-settings&tab=taxes
Settings › Taxes
Settings › Taxes Screenshot Placeholder
View Full Screenshot
Figure: Settings › Taxes Image: screenshot-settings-taxes.svg

Automated Email Notifications

wp-admin/admin.php?page=omnify-settings&tab=emails
Settings › Emails
Settings › Emails Screenshot Placeholder
View Full Screenshot
Figure: Settings › Emails Image: screenshot-settings-emails.svg

Checkout Experience

wp-admin/admin.php?page=omnify-settings&tab=checkout
Settings › Checkout
Settings › Checkout Screenshot Placeholder
View Full Screenshot
Figure: Settings › Checkout Image: screenshot-settings-checkout.svg

Store Page Mapping

wp-admin/admin.php?page=omnify-settings&tab=pages
Settings › Core Pages
Settings › Core Pages Screenshot Placeholder
View Full Screenshot
Figure: Settings › Core Pages Image: screenshot-settings-pages.svg
Was this guide helpful?
#settings
📘 User Guide Store Configuration DB #12

12. System Tools & Seeding

12. System Tools & Seeding

4-card database diagnostics overview, one-click demo data generation with animated progress bar, granular cleanups, and server runtime verification.

Under Omnify → Tools & Seeding, store administrators have access to an enterprise maintenance suite for diagnostics, demo data generation, granular cache purging, and catalog import/export operations.

wp-admin/admin.php?page=omnify-tools
System Tools & Seeding
System Tools & Seeding Screenshot Placeholder
View Full Screenshot
Figure: System Tools & Seeding Image: screenshot-system-tools.svg

Real-Time Database Diagnostics

The top diagnostic bar queries all 27 normalized custom tables to present instant volume and operational metrics across key entities:

Orders Table

1,420 Total Records: Active order lifecycle tracking with zero postmeta latency.

Products Table

38 Products: Physical, digital, and variant items with normalized inventory indexes.

Customers

892 Profiles: Dedicated guest and registered customer records with lifetime revenue tracking.

Activity Logs

2,840 Events: Immutable audit records tracking administrative and payment operations.

Demo Data Generation & Seeding

Seed realistic test catalogs with a single click. The interactive generation process features an animated progress bar that stages records across multiple entities:

  • Sample Products: Seeds physical goods, downloadable digital assets, and multi-attribute variations complete with pricing and stock levels.
  • Orders & Customers: Populates historical orders with various payment statuses (Paid, Processing, Completed, Refunded) to test reporting.
  • Coupons & Categories: Creates promotional discount rules, taxonomy categories, and storefront tags.

Granular Database Maintenance & Cleanups

Selectively optimize or purge specific data partitions without affecting live customer transactions:

  • Purge Demo Records: Safely removes only records flagged with demo metadata, preserving real customer orders.
  • Clear Abandoned Carts: Prunes stale sessions older than 30 days to optimize session table storage.
  • Automated Daily Database Maintenance: Runs background cron (omnify_daily_database_cleanup) to automatically prune stale carts, expire transients, and optimize indexes.
  • Flush Transients & Query Caches: Recomputes pricing tiers, shipping rules, and cached queries immediately.
  • Verify Table Schema & Indexes: Runs integrity checks across all 27 custom tables and applies missing migrations automatically.

Server Runtime & Environment Specs

Inspect server environmental requirements at a glance: PHP version (8.2+ recommended), MySQL/MariaDB version, memory allocation limits, maximum execution timeouts, and upload size allowances.

Was this guide helpful?
#tools
📘 User Guide Store Configuration Audit #13

13. Administrative Activity Log

13. Administrative Activity Log

Immutable chronological audit trail tracking administrator actions, price modifications, refund executions, and security events.

Under Omnify → Activity Log, store administrators can audit an immutable, chronological stream of all system, administrative, and payment gateway events.

wp-admin/admin.php?page=omnify-activity
Activity Audit Log
Activity Audit Log Screenshot Placeholder
View Full Screenshot
Figure: Activity Audit Log Image: screenshot-activity-log.svg

Advanced Event Filtering

Filter thousands of audit events in real time with comprehensive criteria:

  • Category Filter: Narrow down events by functional domain (Orders, Products, Customers, Coupons, Settings, System, Security).
  • Date Range Filter: Inspect activities within custom date boundaries (Today, Yesterday, Last 7 Days, Last 30 Days, Custom Range).
  • Administrator Filter: Isolate changes executed by specific store managers, clerks, or system automated cron workers.
  • Search Keywords: Search across event summaries, object IDs, and user metadata instantly.

Event Data & Detail Inspection

Each logged action records complete forensic metadata for compliance and security:

  • Action Type & Severity: Color-coded badges denote informational events, updates, deletions, and security alerts.
  • Actor Identification: Displays the executing user avatar, display name, user ID, and remote IP address.
  • State Diffs: Captures before-and-after values for critical changes such as price modifications, inventory overrides, and setting updates.
  • One-Click Log Pruning: Securely purge historical logs older than 90 days or export logs to CSV for external archiving.
Was this guide helpful?
#activity
📘 User Guide Store Configuration REST #14

14. REST API, Webhooks & Diagnostics

14. REST API, Webhooks & Diagnostics

Manage REST API credentials, configure outbound webhook topic subscriptions with HMAC-SHA256 signatures, and run live payment diagnostics.

Under Omnify → API & Webhooks, developers and system administrators manage external integrations, outbound event dispatches, and live connectivity health checks.

wp-admin/admin.php?page=omnify-api
REST API Keys & Diagnostics
REST API Keys & Diagnostics Screenshot Placeholder
View Full Screenshot
Figure: REST API Keys & Diagnostics Image: screenshot-api-keys.svg

REST API Key Management

Generate cryptographically secure API credentials for headless storefronts (Next.js, Astro), mobile applications, and ERP integrations:

  1. Click + Generate API Key in the management toolbar.
  2. Specify a descriptive label (e.g. Next.js Production Front or Inventory Sync Worker).
  3. Select permission scope: Read, Write, or Read/Write.
  4. Assign a user account with appropriate capabilities.
  5. Save to reveal the generated Consumer Key (ck_...) and Consumer Secret (cs_...). Note: The secret is displayed once upon creation.

Outbound Webhooks Manager

Publish real-time event notifications to external web services and automation pipelines (Zapier, Make, custom webhooks):

  • Topic Subscriptions: Subscribe to granular events including order.created, order.paid, order.refunded, order.status_changed, product.created, and customer.created.
  • Payload Signing: Every outbound HTTP POST request includes an X-Omnify-Signature header generated via HMAC-SHA256 using your configured webhook secret key.
  • Delivery Testing & Logs: Dispatch test ping events and review delivery status codes, latency timings, and response headers.

Live Diagnostics & Connectivity Checker

Verify live API keys, gateway credentials, and network connectivity without leaving the WordPress administration panel:

  • Stripe Connection Test: Validates secret key authentication against the Stripe API (/v1/balance) and checks account currency and live/test mode.
  • PayPal REST Connection Test: Verifies Client ID and Secret credentials by executing an OAuth2 token handshake against PayPal servers.
  • Arbitrary Endpoint Connectivity Test: Sends an authenticated HEAD/GET probe to custom webhook receivers or API endpoints to test SSL certificates and HTTP latency.
Was this guide helpful?
#api
📘 User Guide Storefront & Support Shop #15

15. Customer Storefront & Portal 2.0

15. Customer Storefront & Portal 2.0

Comprehensive walkthrough of the modern shopper experience: 4-layout catalog switcher, quick filter pills, flash sale countdown, and Customer Portal 2.0 hub.

OmnifyWP eCommerce features a high-converting storefront design inspired by modern luxury apparel and modern commerce brands. Shoppers enjoy sub-millisecond catalog browsing, 4-layout switching, interactive color/size swatches, flash sale countdowns, social proof notifications, and seamless checkout journeys.

Catalog Multi-Layout Switcher ([omnify_storefront])

The catalog toolbar includes an interactive layout switcher with preferences automatically saved in browser localStorage:

1. 4-Column Modern Grid (data-cols="4")

Clean borderless cards: Soft #f6f6f8 image box, pill badges (HOT, -14%, LIMITED), outline heart wishlist button, slide-in hover tools (Quick View & Compare), floating sizes, circular plus button, and interactive swatches.

2. 3-Column Classic Grid (data-cols="3")

Balanced editorial cards: Medium-format image boxes with generous spacing, star ratings, price with discount badges, color swatches, and direct Add to Cart buttons.

3. 2-Column Split View (data-cols="2")

Horizontal split cards: Left image column (46% width) paired with right details column (54% width) displaying title, 5-star rating, price, swatches, sizes, full-width "Select options" button, and Quick View/Compare links.

4. 1-Column List View (data-cols="list")

3-Section row layout: Left 220px image, center details (title, rating, swatches, sizes, 2-line excerpt), and right panel with price, green 292 IN STOCK badge, full-width button, and vertical action links.

https://omnifywp.com/storefront/
Storefront Catalog
Storefront Catalog Screenshot Placeholder
View Full Screenshot
Figure: Storefront Catalog Image: screenshot-storefront-catalog.svg

Faceted Sidebar Filters

Collapsible accordions for category, price range, brand, color swatches, and size facets allow customers to zero in on products instantly without page reloads.

Instant Single-Click Tabs

Category and collection switcher tabs update product cards dynamically, preserving customer scroll position and reducing bounce rates.

Slide-Over Quick Checkout

Slide-over modal allows instant purchase completion directly from the catalog page without leaving the storefront.

Product Details Page

High-resolution gallery sliders, variation attribute swatches (color, size, format), live stock counters, and sticky add-to-cart bars optimize individual product conversions.

https://omnifywp.com/storefront/omnify-heavyweight-hoodie/
Elessi-Style 3-Column Single Product Page
Elessi-Style 3-Column Single Product Page Screenshot Placeholder
View Full Screenshot
Figure: Elessi-Style 3-Column Single Product Page Image: screenshot-storefront-product.svg

Shopping Cart ([omnify_cart])

Slide-out AJAX mini cart drawer and full-page cart with item quantity steppers, discount promo codes, and real-time shipping zone estimates.

https://omnifywp.com/cart/
Interactive Shopping Cart
Interactive Shopping Cart Screenshot Placeholder
View Full Screenshot
Figure: Interactive Shopping Cart Image: screenshot-storefront-cart.svg

Conversion-Optimized Checkout ([omnify_checkout])

Single-page, friction-free checkout featuring country-first address auto-detection, optional 1-click account creation, and native payment gateway buttons.

https://omnifywp.com/checkout/
Conversion-Optimized Checkout
Conversion-Optimized Checkout Screenshot Placeholder
View Full Screenshot
Figure: Conversion-Optimized Checkout Image: screenshot-storefront-checkout.svg

Customer Portal 2.0 ([omnify_customer_portal])

A centered 1360px modern self-service hub built with the SupportHub emerald design system. Customers can track orders, manage addresses, update security credentials, and access cryptographically protected digital downloads.

https://omnifywp.com/customer-portal/
Customer Portal 2.0 (SupportHub Modern Theme)
Customer Portal 2.0 (SupportHub Modern Theme) Screenshot Placeholder
View Full Screenshot
Figure: Customer Portal 2.0 (SupportHub Modern Theme) Image: screenshot-storefront-portal.svg

4-Column KPI Stats Grid

Real-time customer analytics displaying Lifetime Spent, Total Orders, Digital Assets, and Saved Addresses with contextual status subtitles.

Live Tab Counter Pills

Navigation tabs with dynamic counter badges (e.g., Orders (4), Downloads (2)) and horizontal auto-scrolling on mobile devices.

Balanced 2-Column Settings

Symmetrical account settings layout pairing personal profile management on the left with password security and address book stacked on the right.

Public Order Tracking ([omnify_order_tracking])

Guests and unregistered shoppers can look up their orders using only their Order ID and Billing Email, accessing live fulfillment progress steps and digital files.

https://omnifywp.com/order-tracking/
Public Order Tracking
Public Order Tracking Screenshot Placeholder
View Full Screenshot
Figure: Public Order Tracking Image: screenshot-storefront-tracking.svg
📘 User Guide Catalog & Fulfillment Stock #16

16. Variable Products, Preorders & Availability

16. Variable Products, Preorders & Availability

Create variable products, configure the redesigned variation builder, and manage inventory, backorders, preorders, and the back-in-stock waitlist.

Variable products let you sell the same item in multiple configurations (size, color, format, license tier) with independent SKUs, pricing, and stock. OmnifyWP also models availability as a first-class concept: backorders, preorders, estimated delivery, and a customer back-in-stock waitlist.

Step 1 — Create a Variable Product

  1. Go to Omnify → Products → + Add New Product and set the Product Type to Variable.
  2. Open the Attributes panel and add the axes you sell on (e.g. SIZE, COLOR).
  3. Generate the variation matrix — each row inherits the parent pricing until overridden.

Step 2 — Configure Each Variation

  • Unified Attribute Badges: each axis uses a clean badge chip paired with an integrated dropdown and custom chevron.
  • Pricing & Stock Grid: SKU, Regular Price, and Sale Price share a normalized 42px/8px-radius layout with currency prefixes and an aligned Inventory Tracking toggle.
  • Media Actions: 32×32px icon buttons (upload / trash) with tooltips select and remove variation images.
  • Variation Notes: lightweight native textareas replace heavy WYSIWYG toolbars.

Step 3 — Availability, Backorders & Preorders

Open the Availability & Preorders panel on the variation:

  • Allow Backorders: permit purchases once stock reaches zero.
  • Preorder: enable preorders with a Release Date, a Preorder Limit, and a shopper-facing Notice Message.
  • Estimated Delivery: a full-width input with a transport icon prefix communicates per-variation dispatch expectations.

Back-In-Stock Waitlist

Out-of-stock products and variations display a customer opt-in. When stock is replenished, the automated Back-In-Stock Alert email fires to every waitlisted shopper.

Tip: Preorder and backorder flags are stored per product and per variation, so a single storefront can sell in-stock, backorderable, and preorder items side by side.
📘 User Guide Store Configuration Config #17

17. Shipping Zones, Taxes & Multi-Currency

17. Shipping Zones, Taxes & Multi-Currency

Define country/region delivery zones and rates, configure multi-tier tax rules, and enable the storefront currency switcher.

Under Omnify → Settings, the Delivery, Tax, and Currency panels control what shoppers pay and where you sell.

Delivery Zones & Rates

wp-admin/admin.php?page=omnify-settings&tab=delivery
Settings › Delivery
Settings › Delivery Screenshot Placeholder
View Full Screenshot
Figure: Settings › Delivery Image: screenshot-settings-shipping.svg
  • Flat Rate: charge a standard fee per order or per item.
  • Free Shipping Threshold: automatically unlock free delivery above a cart subtotal.
  • Local Pickup: let customers collect in-store with zero shipping fee.

Tax Rules

wp-admin/admin.php?page=omnify-settings&tab=taxes
Settings › Taxes
Settings › Taxes Screenshot Placeholder
View Full Screenshot
Figure: Settings › Taxes Image: screenshot-settings-taxes.svg
  • Prices Entered With Tax: toggle inclusive vs exclusive catalog pricing.
  • Calculate Tax Based On: shipping address, billing address, or store base.
  • Rounding & Shipping Tax: round per line or per total, and optionally tax shipping.
  • Reporting Codes: attach tax reporting codes for accounting exports.

Multi-Currency Switcher

Place [omnify_currency_switcher] (or the omnify/currency-switcher block) in a header or sidebar. Prices recalculate in real time, the shopper's choice is stored in a 1-year cookie, and gateways that don't support the currency are filtered out of checkout.

📘 User Guide Store Configuration Mail #18

18. Email Notifications, SMTP & Logs

18. Email Notifications, SMTP & Logs

Configure the 17 automated email triggers, connect a custom SMTP relay for inbox delivery, and monitor delivery logs with automatic retries.

Under Omnify → Settings → Email, manage every customer and admin notification plus the delivery transport.

wp-admin/admin.php?page=omnify-settings&tab=emails
Settings › Emails
Settings › Emails Screenshot Placeholder
View Full Screenshot
Figure: Settings › Emails Image: screenshot-settings-emails.svg

17 Automated Triggers

Omnify ships 17 transactional triggers covering the full order lifecycle: order receipt, payment pending/failed, refund requested/processed, order status changes, shipment dispatched, ready-for-pickup, order cancelled, customer order notes, account welcome, low-stock and out-of-stock admin alerts, back-in-stock alerts, high-risk order alerts, and abandoned-cart recovery.

Custom SMTP Relay

  • Host & Port: point Omnify at your SMTP server (e.g. smtp.postmarkapp.com:587).
  • Encryption & Auth: choose TLS/SSL and supply credentials.
  • From / Reply-To / BCC: set the sender identity and optional admin BCC.

Delivery Logs & Retries

Every send is recorded in the email log with its trigger, recipient, status, and error message. Failed sends are automatically retried on an hourly schedule, and any log entry can be re-sent from the admin with one click.

📘 User Guide Store Configuration Team #19

19. Roles, Staff Permissions & Fraud

19. Roles, Staff Permissions & Fraud

Delegate store operations with Shop Manager and Shop Clerk roles, map per-feature permissions, and rely on automated fraud risk scoring.

OmnifyWP lets you delegate store operations safely without handing over full WordPress administrator access.

Built-In Roles

  • Shop Manager: full operational store management (catalog, orders, customers, settings) without manage_options.
  • Shop Clerk: fulfillment, order processing, and customer support focused access.

Per-Feature Permissions

Under Settings → Roles, map roles to individual feature areas: Dashboard, Orders, Products, Customers, Coupons, Abandoned Carts, Reviews, and Analytics. A clerk can be allowed to manage Orders while Products and Settings remain locked.

Automated Fraud Scoring

Each order receives a fraud risk level (Safe, Suspicious, High Risk) derived from IP geolocation, proxy indicators, billing/shipping mismatches, and transaction velocity. High-risk orders can raise an admin alert email and appear flagged in the order detail screen.

Least-Privilege Tip: Grant shop_clerk access to Orders, Customers, and Reviews only. Keep Coupons, Settings, and Tools restricted to managers and administrators.
Was this guide helpful?
#roles
📘 User Guide Analytics & Marketing GA4 #20

20. Conversion Tracking (GA4 & Meta Pixel)

20. Conversion Tracking (GA4 & Meta Pixel)

Connect Google Analytics 4 and Meta Pixel to measure the full e-commerce funnel from product view to purchase.

Under Omnify → Settings → Marketing, enable built-in conversion tracking without a separate tagging plugin.

Google Analytics 4 (GA4)

  • Enable GA4 and paste your Measurement ID (e.g. G-XXXXXXX).
  • Tracked events: view_item_list, view_item, add_to_cart, begin_checkout, and purchase with transaction revenue, currency, and item parameters.
  • Enable debug mode to validate events in the GA4 DebugView.

Meta Pixel (Facebook Pixel)

  • Enable Meta Pixel and paste your numeric Pixel ID.
  • Tracked events: PageView, ViewContent, AddToCart, InitiateCheckout, and Purchase.
Attribution: Purchase events include the real order number and value, so revenue reconciles directly with your Analytics dashboard totals.
📘 User Guide Store Configuration Legal #21

21. Privacy, GDPR & Data Maintenance

21. Privacy, GDPR & Data Maintenance

Honor GDPR data requests with built-in export/erase tools, and keep the database fast with automated maintenance.

OmnifyWP integrates with the WordPress privacy framework so you can service data-subject requests without custom code.

Personal Data Export & Erasure

  • Exporter: under Tools → Export Personal Data, an "Omnify" exporter returns the customer profile, orders, order items, downloads, wishlist, and abandoned carts.
  • Eraser: under Tools → Erase Personal Data, the matching eraser anonymizes or removes the same records.

Data Retention & Maintenance

  • Soft Deletes: trashed records are excluded from storefront and public queries but retained for audit.
  • Automated Daily Cleanup: the omnify_daily_database_cleanup cron prunes expired abandoned carts and stale sessions and optimizes tables.
  • Download Audit Trail: every delivery logs IP, user agent, and status for compliance evidence.
Compliance: Combine these tools with your WordPress privacy policy page and a published data-retention window documented from Settings → Advanced.
Was this guide helpful?
#privacy
📘 User Guide Store Configuration Data #22

22. Import, Export & Data Management

22. Import, Export & Data Management

Seed demo data, move catalogs and records in and out with schema-validated CSV/XML, and perform granular maintenance without touching live transactions.

OmnifyWP ships a complete data lifecycle toolkit: realistic demo seeding for new stores, schema-validated import/export for migrations and bulk edits, and granular cleanup utilities that never touch live customer transactions.

Demo Data Seeding

Under Omnify → Tools, one click seeds a realistic sample store: products across simple/variable/digital types, customer profiles, historical orders with varied statuses, reviews, coupons, and category hierarchies — with an animated progress bar.

Exporting Records

Under Omnify → Import / Export, download records as standardized UTF-8 CSV (or XML for products):

  • Products — full catalog with pricing, stock, preorder, shipping, and taxonomy columns.
  • Customers — CRM profiles with status and tax-exemption flags.
  • Orders — order headers with totals, payment method, and coupon data.
  • Coupons, Tax Rules & Delivery Zones — marketing and configuration tables.

Importing Records

Drag a CSV or XML file into the import dropzone. Required fields are validated per entity; column order does not matter and unknown columns are safely ignored. A starter template for each entity can be downloaded from the schema reference card.

Granular Maintenance & Cleanup

  • Clean by Type: remove products, orders, customers, reviews, coupons, or activity logs individually.
  • Optimize Tables / Clear Transients: reclaim space and refresh cached queries.
  • Purge Abandoned Carts: prune stale sessions past the retention window.
  • Danger Zone: wipe all store data behind explicit confirmation safeguards.
Back up first: Always take a database snapshot before running imports or any Danger Zone cleanup operation.
📘 User Guide Storefront & Support Help #23

23. FAQ & Troubleshooting

23. FAQ & Troubleshooting

Frequently asked questions, common troubleshooting scenarios, and performance tips.

Q: How does OmnifyWP achieve sub-millisecond database queries?

OmnifyWP stores products, variations, orders, and customer data in 27 dedicated normalized SQL tables (wp_omnify_*) with explicit multi-column indexes, bypassing WordPress's shared wp_posts and wp_postmeta tables completely.

Q: How do digital download links prevent unauthorized file sharing?

Download links use time-limited HMAC-SHA256 signatures salted with your WordPress secret keys. Actual server file paths are never exposed, and downloads are served via memory-safe 8KB chunk streaming with download attempt limits.

Q: How do I test Stripe payments without charging real credit cards?

Navigate to Omnify → Settings → Payments, toggle Test Mode on, enter your Stripe Test Publishable and Secret Keys, and use Stripe's standard test card numbers (e.g. 4242 4242 4242 4242).

Q: What happens to customer download access when an order is refunded?

When an order is refunded in Omnify → Orders, OmnifyWP immediately revokes all associated download tokens, preventing future file access.

Q: Can OmnifyWP run alongside standard WordPress block themes?

Yes! OmnifyWP is 100% Full Site Editing (FSE) ready and includes native Gutenberg blocks, patterns, and templates. It works seamlessly with block themes, classic themes, and headless frontends (Next.js, Nuxt).

Q: Where can I get support or report an issue?

Visit the official website at omnifywp.com or our plugin page on wp.org.

Was this guide helpful?
#faq
⚡ Developer Doc Overview #24

The Developer-First eCommerce Engine for WordPress

Next-Generation Headless & Decoupled WordPress Commerce

The Developer-First
eCommerce Engine for WordPress

Omnify replaces sluggish wp_posts and wp_postmeta overhead with a purpose-built 27-table normalized SQL relational engine, atomic stock management, cryptographic link signing, and complete REST APIs.

27
Custom Relational SQL Tables
< 1.2ms
Database Index Lookup Time
12
Integrated Payment Gateways
100%
Decoupled REST API Coverage
⚡ Developer Doc Overview #25

System Pipeline & Data Flow

System Pipeline & Data Flow

Omnify processes requests cleanly through decoupled application layers:

Storefront / Client
Shortcodes or Next.js Headless
→
REST / Auth
Omnify_Rest_Server + Nonce/Keys
→
Repositories SDK
Domain Logic & Validation
→
Custom DB Schema
27 Indexed Tables + Object Cache
→
Delivery & Pay
Stripe, PayPal & HMAC Locker
⚡ Developer Doc Storefront & Checkout #26

Pro Frontend Experience & Live Storefront Sandbox

Pro Frontend Experience & Live Storefront Sandbox

Interactive Playground

Experience OmnifyWP's conversion-optimized Elessi-style 3-column single product page, real-time scarcity countdown cart, and frictionless multi-gateway checkout. Test responsive screen sizes, click variation swatches, and switch storefront brand accent colors live!

https://omnifywp.com/storefront/pro-sandbox/
Pro Sandbox
Pro Frontend Sandbox Screenshot Placeholder
Figure: Pro Frontend Experience & Live Storefront Sandbox Image: screenshot-pro-frontend-sandbox.svg
⚡ Developer Doc Overview #27

Quickstart & Installation

Quickstart & Installation

Omnify is distributed as a clean, self-contained WordPress plugin with zero external PHP dependencies.

Terminal — Cloning and Building the Package
# 1. Clone the repository
git clone https://github.com/omnifywp/omnifywp-ecommerce.git wp-content/plugins/omnify

# 2. Package into a distribution ZIP ready for installation
cd wp-content/plugins/omnify
node build.js

# 3. Output artifact: dist/omnifywp-ecommerce.zip

Runtime Requirements

ComponentMinimumRecommendedNotes
PHP 8.2.0+ 8.3+ Strict types, typed properties, match expressions, and union return types.
WordPress 5.8+ 6.4+ Compatible with both Classic PHP themes and Full Site Editing (FSE).
MySQL 5.7+ / MariaDB 10.3+ MySQL 8.0+ InnoDB engine with utf8mb4 collation support for emojis and global scripts.
⚡ Developer Doc Overview #28

Architecture & Dependency Injection

Architecture & Dependency Injection

Omnify utilizes an internal dependency container (Omnify_Container) exposed by the singleton Omnify_Plugin. Every repository, gateway, and service class is auto-wired with strict constructor injection.

PHP — Accessing the Container
use OmnifyeCommerceRepositoriesOmnify_Product_Repository;
use OmnifyeCommerceRepositoriesOmnify_Order_Repository;

// Fetch the plugin container anywhere in WordPress
$container = omnify()->container();

// Resolve auto-wired repositories
$product_repo = $container->get(Omnify_Product_Repository::class);
$order_repo   = $container->get(Omnify_Order_Repository::class);

// Query products directly
$products = $product_repo->all([
    'status'   => 'published',
    'per_page' => 20,
]);
⚡ Developer Doc Database & Schema #29

Database Engine & 27 Relational Tables

Database Engine & 27 Relational Tables

Omnify isolates all commercial data from the WordPress post engine. Tables are prefixed with wp_omnify_* and indexed for high-concurrency throughput.

The 27 Core Database Tables

TablePrimary FunctionIndices & Keys
wp_omnify_productsMaster catalog records (download, simple, variable, bundle)PRIMARY (id), UNIQUE KEY (slug), KEY (status, type)
wp_omnify_product_variationsFormat matrix (SKU, price swatches, attributes)PRIMARY (id), KEY (product_id)
wp_omnify_product_filesPhysical files, versions, and attachmentsPRIMARY (id), KEY (product_id), KEY (expires_at)
wp_omnify_product_categoriesCategory terms & taxonomy linkagesPRIMARY (id), KEY (product_id), KEY (slug)
wp_omnify_product_brandsProduct brands & manufacturer termsPRIMARY (id), KEY (product_id), KEY (slug)
wp_omnify_product_tagsFaceted search and discovery tagsPRIMARY (id), KEY (product_id), KEY (slug)
wp_omnify_ordersOrders, financial totals, currency, and tax trackingPRIMARY (id), UNIQUE KEY (order_number), KEY (customer_id, status)
wp_omnify_order_itemsSnapshot of purchased items, prices, and quantitiesPRIMARY (id), KEY (order_id), KEY (product_id)
wp_omnify_order_notesStaff internal comments & customer visibility updatesPRIMARY (id), KEY (order_id), KEY (customer_visible)
wp_omnify_customersCustomer CRM profiles, addresses, and tax exemptionsPRIMARY (id), UNIQUE KEY (email), KEY (user_id), KEY (status)
wp_omnify_customer_notesCRM support notes attached to customer accountsPRIMARY (id), KEY (customer_id), KEY (customer_visible)
wp_omnify_customer_activityAudit trail (logins, checkout started, address changes)PRIMARY (id), KEY (customer_id), KEY (activity_type)
wp_omnify_customer_accessDigital file entitlements & access permissionsPRIMARY (id), UNIQUE KEY (customer_id, product_id)
wp_omnify_downloadsCryptographic download stream transaction logsPRIMARY (id), KEY (product_id), KEY (file_id), KEY (customer_id)
wp_omnify_couponsPromotional codes, percentage/fixed rules, limitsPRIMARY (id), UNIQUE KEY (code)
wp_omnify_reviewsProduct ratings, content, and approval statesPRIMARY (id), KEY (product_id), KEY (status)
wp_omnify_abandoned_cartsCaptured checkout inputs, recovery tokens, remindersPRIMARY (id), UNIQUE KEY (token), KEY (email, status)
wp_omnify_wishlistsCustomer wishlist favorite associationsPRIMARY (id), UNIQUE KEY (user_id, product_id)
wp_omnify_email_logsTransactional email dispatch log & retry queuePRIMARY (id), KEY (trigger_name), KEY (status)
wp_omnify_metadataExtensible key/value metadata for products, orders, customersPRIMARY (id), KEY (object_type, object_id)
wp_omnify_webhook_eventsInbound gateway webhook event ledger (dedupe & audit)PRIMARY (id), KEY (gateway), KEY (event_id)
wp_omnify_webhooksOutbound webhook endpoints & topic subscriptionsPRIMARY (id), KEY (status)
wp_omnify_webhook_delivery_logsOutbound delivery attempts, HTTP status & latencyPRIMARY (id), KEY (webhook_id)
wp_omnify_inventory_logsStock movement audit trail (reductions, restocks)PRIMARY (id), KEY (product_id), KEY (variation_id)
wp_omnify_stock_subscribersBack-in-stock waitlist opt-ins per product/variationPRIMARY (id), KEY (product_id)
wp_omnify_admin_activitiesAdmin action audits & security trace logsPRIMARY (id), KEY (user_id), KEY (action)
wp_omnify_api_keysREST API consumer keys & permission scopesPRIMARY (id), UNIQUE KEY (consumer_key)

Soft Deletion & Caching Engine

Soft deletion is native across all core tables via a nullable deleted_at timestamp. Trashed items are excluded from storefront catalog queries, star rating averages, urgency counters, and public REST queries.

⚡ Developer Doc Repositories SDK #30

Repositories SDK Reference

Repositories SDK Reference

All database reads and writes are encapsulated inside typed repository classes.

Product Repository (Omnify_Product_Repository)

PHP — Product Queries, Stock & Variations
$products = $container->get(OmnifyeCommerceRepositoriesOmnify_Product_Repository::class);

// 1. Filter products with pagination and faceted criteria
$items = $products->all([
    'status'       => 'published',
    'category'     => 'Templates',
    'type'         => 'download',
    'price_min'    => 10.00,
    'price_max'    => 120.00,
    'stock_status' => 'instock',
    'sort'         => 'rating_desc',
    'per_page'     => 20,
]);

// 2. Atomic stock decrement (prevents checkout race conditions)
$success = $products->reduce_stock(
    product_id: 10,
    variation_id: null,
    quantity: 1
);

Order Repository (Omnify_Order_Repository)

PHP — Creating Orders & Adding Notes
$orders = $container->get(OmnifyeCommerceRepositoriesOmnify_Order_Repository::class);

// Batch-hydrated order listing (eliminates N+1 queries)
$recent_orders = $orders->all([
    'status'   => 'completed',
    'per_page' => 50,
]);

Customer Repository (Omnify_Customer_Repository)

PHP — Customer Lookups & Audit Timeline
$customers = $container->get(OmnifyeCommerceRepositoriesOmnify_Customer_Repository::class);

// Find customer by WordPress User ID
$customer = $customers->find_by_user_id(get_current_user_id());

// Record custom CRM event in the customer's timeline
$customers->record_activity(
    customer_id: $customer['id'],
    activity_type: 'vip_upgrade',
    metadata: ['tier' => 'Gold', 'discount' => 0.15]
);

Coupon Repository (Omnify_Coupon_Repository)

PHP — Creating & Validating Coupons Programmatically
$coupons = $container->get(OmnifyeCommerceRepositoriesOmnify_Coupon_Repository::class);

// Create a single-use 20% discount coupon
$coupon_id = $coupons->create([
    'code'           => 'SUMMER20',
    'discount_type'  => 'percentage',  // 'percentage' or 'fixed'
    'discount_value' => 20.00,
    'usage_limit'    => 100,
    'expires_at'     => '2026-12-31 23:59:59',
]);
⚡ Developer Doc Storefront & Checkout #31

Storefront & Shortcodes Directory

Storefront & Shortcodes Directory

ShortcodeDefault SlugFunctionality
[omnify_storefront]/storefront/Modern apparel/fashion catalog with interactive Multi-Layout Switcher (4-Col Grid, 2-Col Split, 1-Col List), faceted sidebar filters, slide-in hover tools, and floating social proof conversion widgets.
[omnify_cart]/cart/Multi-item cart, scarcity countdown timer, shipping zone selector, and coupon application.
[omnify_mini_cart]AnywhereFloating slide-out AJAX mini-cart drawer/dropdown with live line-item quantity adjustment and subtotal calculation.
[omnify_checkout]/checkout/Frictionless single-page checkout with country-first address autofill and gateway buttons.
[omnify_customer_portal]/customer-portal/Customer Portal 2.0 hub with SupportHub emerald theme, 4-col KPI cards, live tab pills, cryptographic download locker, and 2-column balanced settings.
[omnify_customer_downloads]/downloads/Customer digital locker displaying owned files and cryptographically signed download links.
[omnify_order_tracking]/order-tracking/Order lookup supporting guest tracking with direct digital downloads for paid items.
[omnify_currency_switcher]AnywhereCustomer-facing multi-currency selector dropdown with real-time conversion rates and 1-year cookie persistence.
[omnify_download_page]/secure-download/Dedicated secure template handler for chunked HMAC-SHA256 file delivery.

Native Gutenberg Blocks

Each shortcode is mirrored as a first-party Gutenberg block (registered in Omnify_Storefront_Controller::register_blocks()): omnify/product-grid, omnify/cart, omnify/mini-cart, omnify/checkout, omnify/customer-portal, omnify/order-tracking, omnify/product-card, and omnify/currency-switcher.

Storefront Multi-Layout Engine & Floating Widgets

The storefront template (templates/storefront/grid.php) renders an ultra-fast, responsive catalog supporting dynamic view switching via data-cols:

4-Column Minimalist Grid (data-cols="4")

Clean borderless cards with soft #f6f6f8 image box, pill badges (HOT, -14%, LIMITED), outline wishlist heart, right-edge hover tools (Quick View, Compare), floating sizes (S M), circular plus button, and swatches.

2-Column Split View (data-cols="2")

Horizontal split layout (46% image / 54% details) featuring star ratings, price, swatches, size row, full-width "Select options" button, and Quick View/Compare links.

1-Column Detailed List (data-cols="list")

3-column horizontal row: 220px image, center details (title, rating, swatches, sizes, excerpt), and right panel with price, IN STOCK badge, and action links.

Customer Portal 2.0 Architecture & Theme Variables

The Customer Portal template (templates/storefront/portal.php) uses a dedicated 1360px responsive container and modern SupportHub Emerald design tokens. Theme authors can hook into CSS variables via the omnify_storefront_css_variables filter:

add_filter( 'omnify_storefront_css_variables', function( $vars ) {
    $vars['--om-primary']       = '#0f766e'; // Unified Teal
    $vars['--om-primary-hover'] = '#115e59';
    $vars['--om-success-bg']    = '#f0fdfa';
    return $vars;
} );

Storefront.js Client-Side State Machine

Storefront operations run through assets/storefront/storefront.js. Configuration parameters are injected under window.omnifyStorefront.

⚡ Developer Doc Storefront & Checkout #32

Payment Gateways Architecture & Webhooks

Payment Gateways Architecture & Webhooks

Secure-by-Default Architecture: By default, all payment gateways are disabled ('0') on fresh installations. Gateways are only exposed to shoppers once valid credentials are provided and the gateway toggle is explicitly activated.

Omnify provides native API integrations and automated webhook verification for:

  • Stripe: Credit/Debit, Apple Pay, Google Pay, SEPA (Webhook: /wp-json/omnify/v1/webhook/stripe — handles payment_intent.succeeded, charge.refunded, charge.dispute.created)
  • PayPal Commerce: Smart Buttons, Pay in 4, Venmo (Webhook: /wp-json/omnify/v1/webhook/paypal — handles PAYMENT.CAPTURE.COMPLETED, PAYMENT.CAPTURE.REFUNDED, CUSTOMER.DISPUTE.CREATED)
  • Paddle (Merchant of Record): Automated global tax/VAT compliance across 200+ countries, SaaS billing, Apple Pay, Google Pay, iDEAL, and API refunds (Webhook: /wp-json/omnify/v1/paddle/webhook — handles transaction.paid, adjustment.updated)
  • Paystack: Cards, Mobile Money (M-Pesa, MTN, Airtel), EFT, USSD (Webhook: /wp-json/omnify/v1/webhook/paystack)
  • Tap Payments: mada, KNET, Benefit, NAPS, GCC cards (Webhook: /wp-json/omnify/v1/webhook/tap)
  • Mollie: iDEAL, Bancontact, SEPA Bank Transfer, Klarna (Webhook: /wp-json/omnify/v1/webhook/mollie)
  • Razorpay: UPI, RuPay, NetBanking, Wallets (Webhook: /wp-json/omnify/v1/webhook/razorpay)
  • Khalti: Khalti Digital Wallet, Mobile & Net Banking via ePayment v2 API
  • eSewa: eSewa Digital Payment Wallet with HMAC-SHA256 signature verification
  • Alipay & WeChat Pay: Cross-border mobile QR checkout with callback verification
  • SSLCommerz: bKash, Nagad, Rocket, Bangladeshi cards (Webhook: /wp-json/omnify/v1/webhook/sslcommerz)
  • Manual & Custom Methods: Cash on Delivery (COD), Direct Bank Transfer (BACS), Cheque Payments, and Unlimited Custom Offline Gateways.

When an admin processes a full refund or a full refund webhook is received, the gateway API is executed, the order transitions to refunded, and all digital file access rights in wp_omnify_customer_access are revoked automatically. For partial refunds, status transitions to partially_refunded, recording refunded amounts while preserving file entitlements for non-refunded line items.

⚡ Developer Doc Storefront & Checkout #33

Digital Locker & Chunked Streaming

Digital Locker & Chunked Streaming

Download links are protected using HMAC-SHA256 signatures salted with wp_salt('auth'). Binary delivery streams files in 8KB chunks via fread() with output buffers flushed to prevent server memory exhaustion.

⚡ Developer Doc REST API Reference Live #34

Interactive REST API Sandbox & Simulator

Interactive REST API Sandbox & Simulator

Simulate live HTTP requests against Omnify's decoupled endpoints. Select any endpoint to inspect headers, request schemas, parameters, and interactive JSON responses with real-world latency metrics.

GET
List published catalog products with search, pagination, category, and faceted price filtering.
200 OK 1.2ms 1.4 KB
Request Headers & Body No Body (GET)
// Request Headers
Accept: application/json
Content-Type: application/json
X-WP-Nonce: e9b41a29f8
JSON Response Payload
...
⚡ Developer Doc REST API Reference #35

REST API Reference

REST API Reference

Namespace: /wp-json/omnify/v1

Storefront Public Endpoints

GET /wp-json/omnify/v1/products/public
Public
List published products with search, category, brand, and faceted price filtering.
POST /wp-json/omnify/v1/checkout
Public / Guest
Process checkout order, validate stock and coupon, and return transaction receipt.

Administrative Management Endpoints

MethodEndpointDescription
GET/ordersPaginated orders list with status, date, and customer filters.
GET/orders/{id}Detailed order information with line items and customer notes.
POST/orders/{id}/mark-paidTransitions order to paid, reduces stock, and grants downloads.
POST/orders/{id}/trashSoft-deletes order to trash.
POST/orders/{id}/restoreRestores order from trash.
GET/customers/{id}/activityRetrieves audit timeline events for a customer.
POST/accessManually grants digital file access to a customer.
POST/access/revokeRevokes file download entitlements.
POST/access/bulkGrants access to multiple customers/products in one request.
GET/settingsRead the full store configuration (POST to update).
GET/statsDashboard sales, AOV, refunds, and analytics aggregates.
GET/activity-logsAdministrative security audit feed.
GET POST/delivery-zonesList or update shipping delivery zones.
GET POST/tax-rulesList or update regional tax rate tables.
GET/downloadsList download audit records.
GET/customers/{id}/accessList a customer's digital entitlements.
GET/orders/{id}/historyStatus and activity history for an order.
POST/products/{product_id}/files/{file_id}/download-urlMint an expiring HMAC download URL.

Checkout, Gateway & Webhook Endpoints

Client-side gateway flows and inbound webhook verification routes (all under /wp-json/omnify/v1).

MethodEndpointDescription
POST/checkoutCreate an order and initiate payment.
POST/stripe/checkout-session • /stripe/payment-intentCreate a Stripe Checkout Session or Payment Intent.
POST/stripe/webhookVerify Stripe-Signature and sync payment/refund/dispute events.
POST/paypal/order • /paypal/capture • /paypal/webhookPayPal order creation, capture, and webhook verification.
POST/razorpay/order • /razorpay/verify • /razorpay/webhookRazorpay payment creation, verification, and webhook.
POST/mollie/order • /mollie/webhookMollie payment creation and status webhook.
POST/paddle/order • /paddle/verify • /paddle/webhookPaddle transaction creation, verification, and webhook.
POST/paystack/order • /paystack/verify • /paystack/webhookPaystack initiation, verification, and HMAC-SHA512 webhook.
POST/tap/order • /tap/verify • /tap/webhookTap Payments charge, verification, and webhook.
POST/alipay/order • /alipay/verify • /alipay/webhookAlipay trade creation, verification, and RSA2 notify.
POST/wechat/order • /wechat/verify • /wechat/webhookWeChat Pay unified order, verification, and v3 notify.
POST/sslcommerz/order • /sslcommerz/verify • /sslcommerz/ipnSSLCommerz session, validation, and IPN.
POST/khalti/order • /khalti/verifyKhalti ePayment v2 initiation and lookup verification.
POST/esewa/order • /esewa/verifyeSewa ePay v2 initiation and HMAC verification.
Was this guide helpful?
#api-auth
⚡ Developer Doc Hooks & Extensibility #36

Interactive Hooks & Filters Live Explorer

Interactive Hooks & Filters Live Explorer

55+ Hooks Indexed

Search and filter all available actions, filters, and public developer helper functions. Click any card to copy the ready-to-paste PHP code snippet directly into your functions.php or custom plugin.

All (53) Wizard Steps Lifecycle Single Product Cart & Checkout Admin Tables Helper APIs
⚡ Developer Doc Hooks & Extensibility #37

Action Hooks Directory

Action Hooks Directory

Action hooks let you execute custom logic when specific events happen inside Omnify.

Action HookArgumentsFires When
omnify_before_boot$plugin, $containerFires before Omnify registers internal services and repositories.
omnify_booted$plugin, $containerFires after full bootstrap is complete.
omnify_order_created$order_id, $order_dataFires immediately after an order is recorded in the database.
omnify_order_status_changed$order_id, $new_status, $old_statusFires when an order transitions between statuses (e.g. pending → completed).
omnify_customer_access_granted$customer_id, $product_id, $expires_at, $idFires when digital product downloads are granted to a customer.
omnify_customer_access_revoked$customer_id, $product_idFires when access is revoked upon refund or cancellation.
omnify_download_logged$log_id, $product_id, $file_id, $customer_id, $statusFires after a customer downloads a protected file.
omnify_stock_reduced$product_id, $variation_id, $qty, $new_stockFires after atomic stock reduction on checkout.
PHP — Example: Triggering Fulfillment when Order Status Changes
add_action('omnify_order_status_changed', function($order_id, $new_status, $old_status) {
    if ('processing' === $new_status || 'completed' === $new_status) {
        // Fetch order details from repository
        $order = omnify()->container()->get(OmnifyeCommerceRepositoriesOmnify_Order_Repository::class)->find($order_id);
        
        // Log custom message or dispatch external fulfillment
        error_log("Order #{$order_id} is ready for fulfillment for {$order['email']}");
    }
}, 10, 3);
⚡ Developer Doc Hooks & Extensibility #38

Filter Hooks Directory

Filter Hooks Directory

Filter hooks allow developers to intercept, modify, and return customized data throughout the Omnify engine without modifying a single core file. Whenever Omnify formats prices, processes checkout submissions, queries products, or streams digital files, it passes the data through these hooks.

Filter HookParametersReturn TypePrimary Use Case
omnify_format_price $formatted, $amount, $settings string Customize currency display, append VAT notes, display "FREE" badges, or perform dynamic multi-currency conversions.
omnify_before_checkout_validation $data, $settings, $items array Normalize or sanitize form inputs (e.g. phone numbers), apply cart-wide volume tier discounts, or inject session variables.
omnify_after_checkout_validation $error, $data, $settings, $items null|WP_Error Halt checkout by returning a WP_Error. Enforce minimum order values, block disposable emails, or validate VAT/tax IDs.
omnify_get_products_args $args array Modify product query arguments. Automatically hide out-of-stock items or gate VIP/wholesale products by user role.
omnify_get_orders_args $args array Filter order listings in admin or customer portals (e.g. by customer tier, status, or date range).
omnify_signed_download_expires_in $seconds, $file_id, $customer_id int Adjust the lifetime (default: 900s / 15m) of HMAC-SHA256 download links. Offer 48-hour windows for VIP members.
omnify_rest_can_manage $can_manage, $request, $user_id bool|WP_Error Authorize external ERP microservices, inventory sync bots, or headless services via custom API keys or Bearer tokens.
omnify_email_arguments $args array Intercept transactional emails. Attach PDF invoices, customize HTML templates, or add accounting team BCC addresses.

Detailed Filter Hook Guides & Practical Examples

Filter Hook #1 Returns: string

omnify_format_price($formatted, $amount, $settings)

How it works: Every price string rendered by Omnify across storefront cards, quick-view modals, cart drawers, checkout summaries, and email confirmations passes through this filter. You can rewrite the text, append tax notices, or convert the currency symbol.

Parameters: $formatted (string) — Formatted price HTML/text (e.g., "$49.00") • $amount (float) — Raw numerical price (e.g., 49.00) • $settings (array) — Active store currency and formatting options.
Example A — Display "FREE" for Zero-Dollar Products
/**
 * Display a stylish "FREE" badge instead of "$0.00" for giveaway digital goods.
 */
add_filter('omnify_format_price', function($formatted, $amount, $settings) {
    if ((float) $amount === 0.0) {
        return '<span class="badge-free" style="color:#10b981; font-weight:700;">FREE</span>';
    }
    return $formatted;
}, 10, 3);
Example B — Append Currency Code & VAT Notice
/**
 * Append international ISO code (e.g. USD) and VAT tax indicator.
 */
add_filter('omnify_format_price', function($formatted, $amount, $settings) {
    $currency = $settings['currency'] ?? 'USD';
    return $formatted . " <span style="font-size:0.8em; color:#94a3b8;">{$currency} (incl. VAT)</span>";
}, 10, 3);
Filter Hook #2 Returns: array

omnify_before_checkout_validation($data, $settings, $items)

How it works: Executes before Omnify performs required-field verification. Use this to sanitize and clean user inputs, normalize phone numbers to international standard, or modify cart data.

Parameters: $data (array) — Form submission keys (first_name, email, address, custom fields) • $settings (array) — Store options • $items (array) — Line items in cart.
PHP — Normalize Phone Numbers & Sanitize Custom Fields
/**
 * Standardize customer phone numbers to digits only and strip spaces.
 */
add_filter('omnify_before_checkout_validation', function($data, $settings, $items) {
    if (! empty($data['phone'])) {
        // Strip all non-numeric characters except leading plus '+'
        $data['phone'] = preg_replace('/[^d+]/', '', $data['phone']);
    }

    // Sanitize customer delivery notes if provided
    if (! empty($data['delivery_notes'])) {
        $data['delivery_notes'] = sanitize_textarea_field($data['delivery_notes']);
    }

    return $data;
}, 10, 3);
Filter Hook #3 Returns: null | WP_Error

omnify_after_checkout_validation($error, $data, $settings, $items)

How it works: The most crucial hook for custom business rules. Fires after all core validations pass. If you return null, the checkout succeeds. If you return a WP_Error object, checkout immediately stops and your message is highlighted in red on the checkout screen.

Parameters: $error (null|WP_Error) — Initial state • $data (array) — Validated checkout data • $settings (array) — Store settings • $items (array) — Line items.
Example A — Enforce Minimum Order Subtotal ($25.00)
/**
 * Block checkout if the customer's total purchase is less than $25.00.
 */
add_filter('omnify_after_checkout_validation', function($error, $data, $settings, $items) {
    $subtotal = 0.0;
    foreach ($items as $item) {
        $subtotal += (float) ($item['price'] ?? 0) * (int) ($item['quantity'] ?? 1);
    }

    if ($subtotal < 25.00) {
        return new WP_Error(
            'subtotal_too_low',
            __('Our store requires a minimum purchase subtotal of $25.00.', 'my-store')
        );
    }

    return $error;
}, 10, 4);
Example B — Block Fraudulent Throwaway / Disposable Emails
/**
 * Reject temporary disposable emails (e.g. mailinator, tempmail) to protect digital downloads.
 */
add_filter('omnify_after_checkout_validation', function($error, $data) {
    $email = strtolower(trim($data['email'] ?? ''));
    $blocked_domains = ['mailinator.com', 'tempmail.com', '10minutemail.com', 'guerrillamail.com'];

    foreach ($blocked_domains as $domain) {
        if (str_ends_with($email, '@' . $domain)) {
            return new WP_Error(
                'blocked_email_provider',
                __('Temporary or disposable email addresses are not permitted. Please use your real email.', 'my-store')
            );
        }
    }

    return $error;
}, 10, 2);
Filter Hook #4 Returns: array

omnify_get_products_args($args)

How it works: Intercepts parameters sent to Omnify_Product_Repository::all(). Use this to automatically filter storefront query results without modifying templates.

PHP — Automatically Hide Out-of-Stock Items & Restrict VIP Catalog
/**
 * Enforce in-stock only for visitors, and restrict category 'wholesale' to B2B users.
 */
add_filter('omnify_get_products_args', function($args) {
    // 1. Always hide out of stock items on public frontend
    if (! is_admin()) {
        $args['stock_status'] = 'instock';
    }

    // 2. If user is NOT a verified wholesale buyer, exclude wholesale catalog
    if (! current_user_can('wholesale_buyer')) {
        $args['exclude_category'] = 'wholesale-exclusive';
    }

    return $args;
});
Filter Hook #5 Returns: int (Seconds)

omnify_signed_download_expires_in($seconds, $file_id, $customer_id)

How it works: Omnify signs digital downloads using HMAC-SHA256 to stop link piracy. By default, links expire after 900 seconds (15 minutes). Use this hook to lengthen or shorten the window depending on file size or customer status.

PHP — Extend Download Window to 48 Hours for VIP Members
/**
 * VIP customers get 48 hours (172,800s); regular customers get 1 hour (3,600s).
 */
add_filter('omnify_signed_download_expires_in', function($seconds, $file_id, $customer_id) {
    $customer = omnify()->container()->get(OmnifyeCommerceRepositoriesOmnify_Customer_Repository::class)->find($customer_id);

    if ($customer && ($customer['group'] ?? '') === 'vip') {
        return 172800; // 48 hours in seconds
    }

    return 3600; // 1 hour for standard customers
}, 10, 3);
Filter Hook #6 Returns: bool | WP_Error

omnify_rest_can_manage($can_manage, $request, $server)

How it works: Controls administrative access to REST API routes under /wp-json/omnify/v1/. Return true to grant authorization, or return a WP_Error to deny access. Perfect for headless systems and automated ERP bots.

PHP — Authorize External ERP Inventory Sync via Secret API Token
/**
 * Allow automated inventory sync bot using a custom Bearer token.
 */
add_filter('omnify_rest_can_manage', function($can_manage, $request) {
    $auth_header = $request->get_header('authorization') ?? '';
    $secret_token = 'erp_live_sec_994827104829104820';

    if (hash_equals('Bearer ' . $secret_token, $auth_header)) {
        return true; // Authorized external sync
    }

    return $can_manage;
}, 10, 2);
Filter Hook #7 Returns: array

omnify_email_arguments($args)

How it works: Intercepts transactional emails before dispatch. You can add BCC headers for internal order archiving or attach PDF receipts and license agreements.

PHP — Add Accounting Team BCC & Attach PDF Terms
/**
 * Automatically BCC accounting team on all order confirmation emails.
 */
add_filter('omnify_email_arguments', function($args) {
    if (str_contains($args['subject'] ?? '', 'Order Confirmation')) {
        $args['headers'][] = 'Bcc: accounting@my-company.com';
    }
    return $args;
});
⚡ Developer Doc Hooks & Extensibility 12 Guides #39

Developer Recipes & Real-World Guides

Developer Recipes & Real-World Guides

Complete, production-tested, copy-pasteable step-by-step guides for extending Omnify in real-world commercial WordPress deployments.

Recipe 1 • Checkout Customization

Custom Checkout Fields (VAT / Tax ID & Delivery Instructions)

Problem: You need B2B customers to enter a European VAT ID or shipping instructions on checkout, validate it, and store it visibly in the order history.

PHP — Step 1: Validation with omnify_after_checkout_validation
/**
 * Step 1: Validate custom VAT number during checkout.
 */
add_filter('omnify_after_checkout_validation', function($error, $data) {
    $vat = trim($data['vat_number'] ?? '');
    
    // If customer provided a VAT ID, ensure it has at least 8 alphanumeric characters
    if (! empty($vat) && strlen($vat) < 8) {
        return new WP_Error('invalid_vat', __('Please provide a valid VAT / Tax registration ID.', 'my-theme'));
    }
    
    return $error;
}, 10, 2);
PHP — Step 2: Store in Order Notes via Omnify_Order_Repository
/**
 * Step 2: Save custom VAT and delivery instructions into Order Notes upon creation.
 */
add_action('omnify_order_created', function($order_id, $order_data) {
    $orders = omnify()->container()->get(OmnifyeCommerceRepositoriesOmnify_Order_Repository::class);
    
    if (! empty($_POST['vat_number'])) {
        $vat = sanitize_text_field(wp_unslash($_POST['vat_number']));
        $orders->add_note($order_id, "Customer VAT / Tax ID: {$vat}", customer_visible: true);
    }

    if (! empty($_POST['delivery_notes'])) {
        $notes = sanitize_textarea_field(wp_unslash($_POST['delivery_notes']));
        $orders->add_note($order_id, "Delivery Instructions: {$notes}", customer_visible: true);
    }
}, 10, 2);
Recipe 2 • Automation & Notifications

Real-Time Discord or Slack Order Alerts

Problem: Your operations team needs an instant rich notification in Discord or Slack whenever a customer completes a purchase.

PHP — Webhook Dispatch on Order Completion
/**
 * Send real-time webhook alert to Discord or Slack when an order is paid.
 */
add_action('omnify_order_status_changed', function($order_id, $new_status) {
    // Trigger only when order reaches 'completed' or 'processing'
    if (! in_array($new_status, ['completed', 'processing'], true)) {
        return;
    }

    $order = omnify()->container()->get(OmnifyeCommerceRepositoriesOmnify_Order_Repository::class)->find($order_id);
    if (! $order) {
        return;
    }

    $webhook_url = 'https://discord.com/api/webhooks/YOUR_WEBHOOK_URL_HERE';

    $payload = [
        'embeds' => [
            [
                'title'       => "[Order] New Order #{$order_id} Received!",
                'color'       => 3921912, // Emerald green
                'description' => "**Customer:** {$order['billing_first_name']} {$order['billing_last_name']} ({$order['email']})n"
                               . "**Total:** {$order['currency']} ${$order['total']}n"
                               . "**Gateway:** {$order['payment_method']}n"
                               . "**Status:** {$new_status}",
                'timestamp'   => date('c')
            ]
        ]
    ];

    wp_remote_post($webhook_url, [
        'headers'  => ['Content-Type' => 'application/json'],
        'body'     => wp_json_encode($payload),
        'blocking' => false, // Non-blocking async dispatch for maximum performance
        'timeout'  => 5,
    ]);
}, 10, 2);
Recipe 3 • Headless Frontend

Headless Next.js 14 / React Catalog & Headless Checkout

Problem: You want a lightning-fast React frontend querying Omnify's public endpoints using Next.js Incremental Static Regeneration (ISR) and server components.

TypeScript / Next.js 14 — Catalog Fetching with 60s Revalidation
// app/products/page.tsx (Next.js 14 App Router Server Component)
interface Product {
  id: number;
  name: string;
  slug: string;
  price: number;
  sale_price: number | null;
  stock_status: string;
}

export default async function ProductsPage() {
  const res = await fetch('https://your-site.com/wp-json/omnify/v1/products/public?per_page=12', {
    next: { revalidate: 60 } // Revalidate every 60 seconds (ISR)
  });
  const products: Product[] = await res.json();

  return (
    <div className="max-w-6xl mx-auto py-12 px-4">
      <h1 className="text-3xl font-extrabold mb-8">Product Catalog</h1>
      <div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6">
        {products.map((p) => (
          <div key={p.id} className="border border-slate-800 rounded-xl p-5 bg-slate-900">
            <h3 className="font-bold text-lg text-white">{p.name}</h3>
            <p className="text-sky-400 font-semibold text-xl mt-2">
              ${p.sale_price ?? p.price}
            </p>
            <a href={`/products/${p.slug}`} className="block mt-4 text-center bg-sky-500 hover:bg-sky-400 text-slate-950 font-bold py-2 rounded-lg">
              View Details
            </a>
          </div>
        ))}
      </div>
    </div>
  );
}
Recipe 4 • Digital Goods & Licensing

Auto-Generating & Emailing Software License Keys

Problem: When a customer purchases software or plugins, you want to automatically mint a formatted license key (XXXX-XXXX-XXXX-XXXX) and email it to them.

PHP — License Key Generation & Automated Email
/**
 * Automatically mint a 16-character license key upon digital access grant.
 */
add_action('omnify_customer_access_granted', function($customer_id, $product_id) {
    // Format: XXXX-XXXX-XXXX-XXXX
    $raw_bytes   = random_bytes(8);
    $hex_string  = strtoupper(bin2hex($raw_bytes));
    $license_key = implode('-', str_split($hex_string, 4));

    // Retrieve customer details
    $customer = omnify()->container()->get(OmnifyeCommerceRepositoriesOmnify_Customer_Repository::class)->find($customer_id);
    if (! $customer) {
        return;
    }

    // Store license key in customer options
    update_user_meta($customer['user_id'] ?? 0, "omnify_license_{$product_id}", $license_key);

    // Dispatch email to customer
    $subject = 'Your Software License Activation Key';
    $message = "Hello {$customer['first_name']},nn"
             . "Thank you for your order! Here is your official activation license key:nn"
             . "  {$license_key}nn"
             . "You can download your product files anytime from your customer account portal.nn"
             . "Best regards,nThe Team";

    wp_mail($customer['email'], $subject, $message);
}, 10, 2);
Recipe 5 • Pricing & Promotions

Tiered Bulk Volume Discount Engine

Problem: You want an automated volume promotion: Buy 3+ items and get 10% off, buy 5+ items and get 20% off total cart value.

PHP — Volume Discount Application
/**
 * Automatically adjust cart subtotal based on volume quantity.
 */
add_filter('omnify_before_checkout_validation', function($data, $settings, $items) {
    $total_qty = 0;
    foreach ($items as $item) {
        $total_qty += (int) ($item['quantity'] ?? 1);
    }

    // Apply 20% discount for 5+ items, or 10% for 3+ items
    $discount_rate = 0.0;
    if ($total_qty >= 5) {
        $discount_rate = 0.20;
    } elseif ($total_qty >= 3) {
        $discount_rate = 0.10;
    }

    if ($discount_rate > 0) {
        $data['volume_discount_rate'] = $discount_rate;
    }

    return $data;
}, 10, 3);
Recipe 6 • Payment Gateways

Custom Offline Bank Wire Transfer / Direct Invoice Method

Problem: You need an offline "Wire Transfer / Invoice" payment method that puts orders in on-hold status until wire verification, displaying wire instructions to the customer.

PHP — Registering Custom Wire Transfer Method
/**
 * Set custom wire transfer orders to 'on-hold' status and append bank details.
 */
add_action('omnify_order_created', function($order_id, $order_data) {
    if (($order_data['payment_method'] ?? '') === 'wire_transfer') {
        $orders = omnify()->container()->get(OmnifyeCommerceRepositoriesOmnify_Order_Repository::class);
        
        // Set status to 'on-hold' until bank funds clear
        $orders->update($order_id, ['status' => 'on-hold']);
        
        // Add wire instructions for customer view
        $orders->add_note(
            $order_id,
            'Bank: Chase Bank | Account: #987654321 | Routing: #123456789. Please mention Order #' . $order_id,
            customer_visible: true
        );
    }
}, 10, 2);
Recipe 7 • International Commerce

Dynamic Multi-Currency Pricing with Live Geo-Location

Problem: Show European customers prices in EUR (€) and UK customers prices in GBP (£) dynamically based on visitor IP address.

PHP — Geo-Currency Conversion via omnify_format_price
/**
 * Dynamically convert base USD amounts to EUR or GBP based on Cloudflare or IP headers.
 */
add_filter('omnify_format_price', function($formatted, $amount, $settings) {
    $country = $_SERVER['HTTP_CF_IPCOUNTRY'] ?? 'US';

    if (in_array($country, ['FR', 'DE', 'IT', 'ES', 'NL'], true)) {
        // EUR conversion rate (e.g. 1 USD = 0.92 EUR)
        $eur_price = number_format($amount * 0.92, 2);
        return "€{$eur_price} EUR";
    }

    if ($country === 'GB') {
        // GBP conversion rate (e.g. 1 USD = 0.79 GBP)
        $gbp_price = number_format($amount * 0.79, 2);
        return "£{$gbp_price} GBP";
    }

    return $formatted;
}, 10, 3);
Recipe 8 • Security & Digital Locker

Restricting Digital Downloads by Maximum Download Count

Problem: Prevent customers from sharing digital download links by capping file access to a maximum of 5 downloads per customer.

PHP — Download Quota Enforcement via wp_omnify_download_logs
/**
 * Enforce a strict 5-download limit per digital product file.
 */
add_filter('omnify_signed_download_expires_in', function($seconds, $file_id, $customer_id) {
    global $wpdb;
    $table = $wpdb->prefix . 'omnify_download_logs';

    // Count successful past downloads for this customer and file
    $download_count = (int) $wpdb->get_var($wpdb->prepare(
        "SELECT COUNT(*) FROM {$table} WHERE customer_id = %d AND file_id = %d AND status = 'success'",
        $customer_id,
        $file_id
    ));

    if ($download_count >= 5) {
        // Return 0 to immediately invalidate and expire the link
        wp_die(__('You have reached the maximum allowed downloads (5/5) for this file. Please contact support.', 'my-store'), 403);
    }

    return $seconds;
}, 10, 3);
⚡ Developer Doc Platform Features #40

Roles, Capabilities & Staff Permissions

Roles, Capabilities & Staff Permissions

Omnify ships a granular, per-feature permission model so store owners can delegate operations without granting full WordPress administrator rights.

CapabilityGranted ToMeaning
manage_omnifyAdministrators + mapped rolesMaster capability gating the entire Omnify admin.
manage_omnify_{feature}Roles mapped per featureScoped access to a single feature area (computed dynamically, never persisted).

Feature scopes: dashboard, orders, products, customers, coupons, abandoned_carts, reviews, analytics. Two roles are auto-created on first boot: shop_manager and shop_clerk.

PHP — Grant shop_clerk access to Orders & Reviews
$settings = get_option('omnify_settings', []);
$settings['role_permissions'] = array_merge((array) ($settings['role_permissions'] ?? []), [
    'orders'  => ['administrator', 'shop_manager', 'shop_clerk'],
    'reviews' => ['administrator', 'shop_manager', 'shop_clerk'],
]);
update_option('omnify_settings', $settings);
⚡ Developer Doc Platform Features #41

Analytics & Conversion Tracking (GA4 + Meta Pixel)

Analytics & Conversion Tracking (GA4 + Meta Pixel)

Omnify_Tracking_Service injects first-party GA4 and Meta Pixel tags, driven by Settings → Marketing (keys tracking_ga4_enabled, tracking_ga4_measurement_id, tracking_meta_enabled, tracking_meta_pixel_id, tracking_debug_mode).

ProviderEvents Tracked
GA4view_item_list, view_item, add_to_cart, begin_checkout, purchase (with transaction_id, value, currency, items).
Meta PixelPageView, ViewContent, AddToCart, InitiateCheckout, Purchase.

Runtime hooks: wp_enqueue_scripts (gtag/fbq bootstrap) and wp_body_open (Meta noscript). Values flow to the storefront through window.omnifyStorefront.analytics.

⚡ Developer Doc Platform Features #42

Privacy, GDPR & Data Lifecycle

Privacy, GDPR & Data Lifecycle

Omnify_Privacy_Service integrates with the WordPress core privacy framework: a Personal Data Exporter and Eraser (friendly name Omnify) cover customer profiles, orders, order items, downloads, wishlists, and abandoned carts.

  • Soft deletes: nullable deleted_at excludes records from storefront & public queries.
  • Automated maintenance: cron omnify_daily_database_cleanup prunes expired carts and stale sessions.
  • Email logs: wp_omnify_email_logs retains dispatch history and retry state.
  • Download audit: wp_omnify_downloads logs IP, user agent, and status per delivery.
⚡ Developer Doc Platform Features #43

Shipping Zones, Tax Rules & Multi-Currency

Shipping Zones, Tax Rules & Multi-Currency

Delivery zones (delivery_zones setting + /delivery-zones REST route) and tax tables (/tax-rules REST route) are fully data-driven. Multi-currency conversion is handled by Omnify_Locations and the [omnify_currency_switcher] shortcode.

FilterPurpose
omnify_currency_exchange_ratesOverride the full FX rate table (e.g. sync from an API).
omnify_currency_exchange_rateOverride a single from→to rate.
omnify_converted_currency_amountPost-process a converted amount before formatting.
omnify_currency_symbol / omnify_currency_decimalsOverride symbol or decimal precision per currency.
omnify_allowed_countries / omnify_countries / omnify_statesControl storefront selling and address geography.
⚡ Developer Doc Platform Features #44

Product Variations, Availability & Preorders

Product Variations, Availability & Preorders

Variable products span wp_omnify_products (parent) and wp_omnify_product_variations (matrix). Availability is column-driven rather than a single stock field.

ColumnPurpose
manage_stock, stock_qty, stock_statusNumeric inventory tracking (instock / outofstock / onbackorder).
allow_backordersPermit purchases when out of stock.
preorder_enabled, preorder_release_date, preorder_limit, preorder_messagePreorder scheduling and shopper notices.
estimated_delivery (variations)Per-variation dispatch estimate.

Related hooks: omnify_stock_reduced, omnify_product_restocked, omnify_customer_access_granted, omnify_customer_access_revoked.

⚡ Developer Doc Platform Features #45

Background Jobs, Cron & Maintenance

Background Jobs, Cron & Maintenance

Scheduled HookFrequencyResponsibility
omnify_abandoned_cart_recoveryHourlyScans abandoned carts and dispatches recovery emails.
omnify_daily_database_cleanupDailyPrunes expired carts, stale checkouts, and optimizes indexes.
omnify_retry_failed_emailsHourlyRe-dispatches failed sends logged in wp_omnify_email_logs.
omnify_prune_webhook_logsDailyTrims old wp_omnify_webhook_delivery_logs rows.

Both the recovery and webhook-prune events are unscheduled on plugin deactivation (Omnify_Plugin::deactivate()).

⚡ Developer Doc Reference #46

Admin Pages & Settings Reference

Admin Pages & Settings Reference

Every screen lives under the top-level Omnify menu, gated by manage_omnify. The Settings hub is segmented into the tabs below; the same slug list gates which keys a save request may modify.

Settings TabNotable Settings
generalStore name, base country, selling locations, currency, price formatting, tax defaults, test mode.
pagesCore page mapping (Storefront/Cart/Checkout/Portal/Download/Tracking) + auto page setup.
rolesMinimum capability, feature permissions matrix, staff directory.
payments12 gateways + offline methods, modes, keys, webhook URLs.
taxTax defaults + regional tax rule table.
deliveryZones, method type, cost, free-shipping minimum.
checkoutGuest/account handling, stock hold, order number format, coupons, order bump, downloads, terms, refunds.
fraudCountry mismatch, disposable email, high-value threshold, IP velocity.
marketingGA4 + Meta Pixel and debug logging.
designBrand colors, typography, hero, catalog layout, filters, product card.
email17 triggers, SMTP relay, routing, footer.
toolsOptimize tables, clear transients, purge carts, inventory resync.
⚡ Developer Doc Reference #47

Email Template Merge Tags

Email Template Merge Tags

Every subject and body supports dynamic tags, resolved by Omnify_Email_Service::replace_tokens().

GroupTags
Order{site_name}, {order_id}, {order_number}, {order_total}, {order_status}, {old_status}, {new_status}, {customer_name}, {customer_first_name}, {first_name}, {last_name}, {customer_email}, {customer_portal_url}, {portal_url}, {tracking_carrier}, {tracking_number}, {refund_reason}, {refund_amount}
Inventory{product_name}, {variation}, {sku}, {stock_qty}, {threshold}
Cart recovery{cart_total}, {recovery_url}, {coupon_code}, {unsubscribe_url}, {reminder_stage}
⚡ Developer Doc Reference #48

CSV & XML Import/Export Schema

CSV & XML Import/Export Schema

Move records in and out under Omnify → Import / Export as schema-validated CSV (or XML for products). Column order does not matter; unknown columns are ignored.

EntityRequiredFull Header Set
Productsnamename, slug, type, product_kind, sales_type, price, sale_price, currency, sku, status, stock_status, manage_stock, stock_qty, allow_backorders, preorder_enabled, preorder_release_date, preorder_limit, preorder_message, shipping_class, weight, length, width, height, download_expiry_days, categories, tags, description
Customersemailemail, first_name, last_name, status, phone, company, country, tax_exempt
Ordersorder_number, customer_emailorder_number, customer_email, status, currency, subtotal, tax, shipping_total, total, payment_method, coupon_code, discount_amount
Couponscode, discount_type, discount_valuecode, is_active, discount_type, discount_value, min_order_amount, max_discount_amount, usage_limit, usage_limit_per_customer, free_shipping, first_order_only, included_product_ids, excluded_product_ids, included_categories, excluded_categories, expires_at
Tax Ruleslabel, country, state, rateenabled, label, country, state, rate, priority, reporting_code
Delivery Zonesname, countries, states, method_nameenabled, name, countries, states, method_name, method_type, cost, free_min, class_costs, priority
⚡ Developer Doc Reference #49

Performance, Caching & Scaling

Performance, Caching & Scaling

  • Normalized indexed tables — avoids wp_postmeta EAV joins; single-query lookups.
  • Batch hydration — Product_File_Repository::all_for_products() removes N+1 file queries.
  • Object cache group — omnifywp-ecommerce caches product/slug/sku/customer lookups.
  • Compound indexes — omnify_orders (status, created_at, customer_id, status, created_at).
  • Atomic stock ops — reduce_stock() prevents oversell under concurrency.
  • Chunked downloads — 8KB streaming buffers for large files.
  • <35KB frontend script footprint plus deferred maintenance crons.
⚡ Developer Doc Reference #50

Security Model & Hardening

Security Model & Hardening

  • Capability gating — every admin/REST management route requires manage_omnify (or a scoped capability) / a valid API key.
  • REST auth — nonce, HTTP Basic, X-Consumer-Key/X-Consumer-Secret, or query params.
  • Secure-by-default gateways — disabled until credentials are saved.
  • Webhook verification — Stripe/PayPal/Razorpay/Paystack/Paddle signatures, Alipay RSA2, WeChat AES-256-GCM.
  • Download protection — HMAC-SHA256 tokens, realpath() containment, path normalization.
Nginx — Block direct access to protected files
location ^~ /wp-content/uploads/omnify-protected/ {
    internal;
    return 403;
}
Was this guide helpful?
#security
⚡ Developer Doc Reference #51

Glossary

Glossary

TermMeaning
BundleA curated product composed of multiple catalog items sold as one discounted SKU.
Customer AccessA row in wp_omnify_customer_access granting entitlement to a digital product.
Delivery ZoneA shipping rule scoped by country/region with a rate type.
HMAC TokenA signed, expiring download URL concealing the physical file path.
Order BumpA one-click upsell offered directly on the checkout form.
PreorderA product/variation sold before release, with optional limits and notices.
Soft DeleteA nullable deleted_at flag that hides a record without purging it.
TriggerA named automated email dispatched at a lifecycle event.
Webhook EventAn inbound gateway callback recorded in wp_omnify_webhook_events.
Was this guide helpful?
#glossary
Direct Merchant & Dev Feedback

Request a Topic or Submit Documentation Feedback

Need an architectural recipe, custom hook example, or clarification on merchant onboarding? Send your feedback directly to the engineering team and store it in the database.

rate_review
Stored securely in WordPress database.