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).
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.