Skip to main content

Deploy Testing Checklist — Dealers Site

Use this checklist after every deployment to the WP Engine staging or production environment. The Dealers Site is a WooCommerce wholesale portal — many of its features depend on integrations with the Middleware Platform (for live pricing), ShipStation (for shipping), and external services (Klaviyo, Gravity Forms).

Always Test on Staging First

Deploy to staging (wpe-staging) and complete this checklist before pushing to production (wpengine). See WP Engine Deployment for the deployment commands.


1. Infrastructure & Availability

1.1 Site Loads Over HTTPS

How to check: Navigate to the dealers site URL in a browser.
Expected: Site loads without a browser SSL warning. The padlock icon is present and the certificate is valid. No mixed-content warnings appear in the browser console.

1.2 WP Engine Caches Flushed

How to check: After deployment, log in to the WP Engine portal, navigate to the dealersscottsdale site, and click Flush Cache → Purge All Caches.
Expected: Cache purge completes successfully. The site continues to serve content after the flush.

1.3 Object Cache Flushed

How to check: Via WP Engine SSH terminal:

wp cache flush

Expected: Command returns Success: The cache was flushed.

1.4 Theme Assets Compiled

How to check: In a browser, open a page on the site. In DevTools → Network tab, check that CSS and JS assets load without 404 errors.
Expected: All theme CSS and JS files load. No broken asset paths. If a npm run prod build was part of the deployment, the built files should have updated cache-busting hashes.

1.5 Maintenance Mode Off

How to check: In WP Engine portal, confirm maintenance mode is not active. Navigate to the site in an incognito window.
Expected: Site content is accessible without a maintenance page.


2. WordPress Admin

2.1 WP Admin Login Page Loads

How to check: Navigate to https://<dealers-site-url>/wp-admin/.
Expected: Login form renders. No PHP fatal errors.

2.2 Two-Factor Authentication Required

How to check: Enter admin credentials and submit the login form.
Expected: A 2FA challenge is presented (SMS, email, or TOTP) before admin access is granted.

2.3 WP Admin Dashboard Loads

How to check: Complete login (including 2FA) and verify the WordPress dashboard renders.
Expected: Dashboard loads without errors. WooCommerce and plugin notices may be present — verify none are critical.

2.4 WooCommerce Status Clean

How to check: WP Admin → WooCommerce → Status → System Status.
Expected: No red critical errors. PHP version, required extensions, and database tables all pass.


3. Dealer Login & Dashboard

3.1 Dealer Login Redirects to Dashboard

How to check: Log in with a test dealer account (non-admin) at /wp-login.php or via the front-end login form.
Expected: After login, the user is redirected to /my-account/ (the dealer dashboard). No redirect to WP Admin.

3.2 Dashboard Account Overview Renders

How to check: On /my-account/, verify the account overview section.
Expected: Company name, account label, current pricing catalog assignment, and quick-link navigation are all visible. No Elementor widget placeholder errors (e.g., "Widget not found").

3.3 Purchase Statistics Display

How to check: On /my-account/, verify the purchase statistics section above the orders table.
Expected: Statistics for 30-day, 90-day, and 365-day spend are shown. No "0" or "null" values for accounts that have order history.

3.4 Order History Table Loads

How to check: On /my-account/orders/, verify the paginated order table.
Expected: Orders appear with correct date, status, and total columns. Custom status labels (e.g., "ACH Pending", "Partially Paid") render correctly, not as raw status slugs.

3.5 Unauthenticated Access Blocked

How to check: Open the dashboard URL in an incognito/private browser window without logging in.
Expected: Redirected to the login page. No dealer data is visible to unauthenticated visitors.

3.6 Role-Based Sections Hidden from Non-Dealers

How to check: Log in with an account that does not have a dealer role (e.g., a standard WooCommerce customer account if one exists).
Expected: Pricing-catalog-specific sections and trade pricing page are not visible. Elementor Visibility Logic correctly hides dealer-only elements.


4. Pricing (Algolia-Powered)

4.1 Live Metal Prices Display in Header Ticker

How to check: Load any page on the Dealers Site.
Expected: The MetalPricing header ticker shows current gold, silver, platinum, and/or palladium spot prices. Prices are not zero, blank, or stale (older than 10 minutes).

4.2 Algolia InstantSearch Results Load

How to check: Use the product search bar and type a partial product name (e.g., "gold bar").
Expected: InstantSearch results appear within 1–2 seconds. Each result shows the product name and price.

4.3 Prices in Search Results Match Middleware Sync

How to check: In browser DevTools → Network tab, find an Algolia search response. Inspect the regular_price attribute of a product hit. Compare to the Middleware Platform's most recent sync log for the Dealers tenant.
Expected: regular_price in Algolia matches the nFusion ask price for that SKU (within one 5-minute sync cycle).

4.4 Volume Tier Pricing Displays Correctly

How to check: Navigate to a product that has volume tiers configured. View the pricing table on the product page.
Expected: Pricing tiers (e.g., 1–9 oz, 10–99 oz, 100+ oz) are listed with the correct per-unit price for each tier.

4.5 Pricing Catalog Applied for Dealer Account

How to check: Log in as a dealer with a specific pricing catalog assigned. Navigate to the trade/pricing page or a product page.
Expected: Prices reflect the catalog-specific rates, not the default/retail rates. Compare to a second dealer account on the default catalog to confirm the difference.

4.6 Credit Card Price / Wire Price Displayed

How to check: Check a product page for payment-method-specific pricing fields.
Expected: If configured, cc_price and wire_price fields appear as separate pricing tiers or notes on the product page.


5. Checkout

5.1 Cart and Checkout Flow

How to check: Add a product to cart, proceed to checkout, and fill in a shipping address.
Expected: Cart total is correct. Tax is calculated. Payment method options are available.

5.2 Checkout Completes Successfully

How to check: On the staging environment, place a test order using a test payment method.
Expected: Order is created in WooCommerce. Order confirmation page renders with the order number.


6. PDF Invoicing

6.1 PDF Invoice Generates for an Order

How to check: From /my-account/orders/, select an existing order and click the PDF invoice download link.
Expected: A PDF file downloads. The PDF contains the correct order number, line items, quantities, prices, and dealer details. It does not error or produce a blank document.

6.2 Invoice Download Restricted to Order Owner

How to check: Attempt to access the PDF invoice URL for an order belonging to a different dealer account (using the URL from your own account but substituting another order ID).
Expected: Access is denied (HTTP 403 or redirect to dashboard). A dealer must not be able to download another dealer's invoice.


7. Shipment Tracking

7.1 Tracking Number Appears on Orders

How to check: Find an order in /my-account/orders/ that has been shipped.
Expected: The order shows a tracking number and a link to the relevant carrier's tracking page (e.g., FedEx, UPS).

7.2 ShipStation Integration Status

How to check: In WP Admin, confirm the ShipStation plugin settings are correct (API key, API secret). Verify recent orders have been sent to ShipStation.
Expected: Orders in wc-processing status are visible in ShipStation. No API authentication errors in the plugin settings page.


8. Sub-Accounts & Multi-User

8.1 Sub-Accounts Page Loads

How to check: Log in as a dealer with sub-account access and navigate to /my-account/subaccounts/.
Expected: The sub-account management UI renders. Existing sub-accounts are listed. No plugin errors.

8.2 Sub-Account Permissions Respected

How to check: Log in as a sub-account user that has "view orders only" permission (no ordering permission).
Expected: Add-to-cart buttons are hidden or disabled. The sub-account can view order history but cannot place new orders.


9. Address Book

9.1 Address Book Page Loads

How to check: Navigate to /my-account/addresses/ while logged in as a dealer.
Expected: Saved shipping and billing addresses are listed. Addresses can be edited and saved without errors.


10. eSignature

10.1 eSignature Prompt Appears Where Configured

How to check: Trigger the eSignature workflow (e.g., first order placement or agreement page, depending on configuration).
Expected: The eSignature capture UI renders. Signing completes and the signature is recorded against the dealer account.


11. KoolReports

11.1 Reports Dashboard Accessible to Authorized Users

How to check: Log in as an admin or authorized dealer user and navigate to the KoolReports dashboard (check WP Admin or the front-end report page URL).
Expected: Data tables and charts render with actual data. No blank charts or "no data" messages where data is expected.


12. User Switching

12.1 Admin Can Switch to Dealer Account

How to check: Log in as a WordPress admin. Use the User Switching plugin (WP Admin → Users → list → "Switch To" link).
Expected: You are switched into the dealer account and land on their dashboard. A "Switch Back" link is visible to return to the admin account.


13. Security

13.1 WP Engine Firewall Active

How to check: In the WP Engine portal, navigate to the dealersscottsdale site → Security → check that the WAF/firewall is enabled.
Expected: Firewall is active for the production environment. No alerts indicating the firewall is disabled.

13.2 Admin-Only Files Blocked

How to check: Attempt to access xmlrpc.php directly:

curl -I https://<dealers-site-url>/xmlrpc.php

Expected: HTTP 403 Forbidden. XML-RPC should be blocked at the WP Engine layer.

13.3 Algolia Admin Key Not in Frontend Source

How to check: In browser DevTools → Network tab, inspect any Algolia request made by InstantSearch.js and note the X-Algolia-API-Key header.
Expected: The API key is the search-only key (limited to search scope). It must not match the admin key stored in wp-config.php or the environment. Verify by checking the key's scope in the Algolia dashboard.


14. Plugins

14.1 Gravity Forms Submits Successfully

How to check: Navigate to a page with a Gravity Form (e.g., a contact or dealer enquiry page). Submit a test entry.
Expected: Form submits without a JavaScript or PHP error. Confirmation message appears. The submission appears in WP Admin → Forms → Entries.

14.2 Klaviyo Subscription Flow

How to check: Submit an email using an opt-in form on the site (if present).
Expected: The email address appears in the relevant Klaviyo list within a few minutes.

14.3 WP All Export — Export Runs

How to check: In WP Admin → All Export, run a test export of products or orders.
Expected: Export completes without a timeout or PHP fatal error. The downloaded file contains expected data.