Advantage Batteries — Staging QA Executive Summary
Executive Verdict
Recommendation: No-Go for production launch until P0 blockers are resolved. The staging site is largely functional for core shopping flows (browse, search, add-to-cart, checkout), but two navigation destinations return WordPress fatal errors, product cards display raw shortcode text, and a key footer link is dead.
Remediation code has been prepared in the local workspace (wp-content/mu-plugins/advantage-battery-fixes.php) and is ready for deployment to WP Engine staging. After deployment, re-run the automated test suite to confirm all 7 failing tests pass.
Go / No-Go criteria
| Requirement | Status |
|---|---|
/shop/solar-battery/ returns 200 with no fatal error | Fail — HTTP 500 |
/compare/ returns 200 or feature removed | Fail — HTTP 500 |
| No raw shortcodes on homepage product grids | Fail |
| Safety Data Sheets link resolves | Fail — href="#" |
| Cart badge updates after AJAX add-to-cart | Fail — UX bug |
| Newsletter subscribe succeeds | Fail — errors on staging |
P0 — Blockers (fix before launch)
1. Solar Batteries page — WordPress fatal error
https://advbattstage.wpengine.com/shop/solar-battery/
P0 HTTP 500
Impact: Main nav "Solar/Renewable Systems", footer "Solar Batteries", and homepage solar hero CTA all lead to a broken page.
Root cause: Product 6835 (Allied 48V kit) renders Main Battery Applications inside the product loop. WPBakery-backed shortcode output triggers a PHP fatal error before the page footer loads.
Fix: Deploy mu-plugin to override shortcode in loops; strip shortcode from affected product excerpts via WP-CLI.
2. Product Compare page — WordPress fatal error
Compare
P0 HTTP 500
Impact: Dedicated compare page is unusable. YITH compare widget iframe (?action=yith-woocompare-view-table) still works separately.
Fix: Recreate compare page with [yith_woocompare_table] shortcode, or redirect to YITH compare table action via mu-plugin.
3. Raw shortcode visible on product cards
P0
Symptom: Main Battery Applications appears as plain text on Allied lithium products and T105 8-pack (homepage, search results).
Affected SKUs: AB-CMCL-48V-105AH, AB-T105-8PK, and related listings.
Fix: Activate MAS Static Content plugin on staging, re-insert shortcode with straight quotes, or remove from product short descriptions.
4. Safety Data Sheets — dead footer link
P0
Symptom: Footer menu item "Safety Data Sheets" links to href="#" (menu item ID 5804). Clicking does nothing.
Fix: WP Admin → Appearance → Menus → set correct SDS page URL or link to PDF resources.
P1 — High Priority (conversion, trust, SEO)
| # | Issue | Location | Recommended fix |
|---|---|---|---|
| 5 | Brevo newsletter JS visible as page text | Footer popup (all pages) | Fix Brevo embed — ensure script loads in <script> tag; check for unclosed HTML in footer template |
| 6 | Newsletter form shows error states | Footer signup | Verify Brevo API key, list ID, and staging domain allowlist |
| 7 | Compare bar typo: "productsto" | Fixed bottom compare widget | Fix to "products to compare" in YITH language file or theme override |
| 8 | Cart header count not updating after AJAX add | Product detail page | Ensure WooCommerce cart fragments enabled; verify theme mini-cart JS |
| 9 | Duplicate "Proceed to checkout" buttons | Cart page | Remove duplicate in theme cart-totals.php or via CSS dedup |
| 10 | Duplicate "Showing 1–12 of 72 results" | Shop archive | Audit duplicate woocommerce_result_count hooks in theme |
| 11 | Product copy grammar errors | Multiple SKUs | "Upgrade your electric golf cart to with our" → remove "to"; "Battery with designed as" → rewrite |
| 12 | Cart core charge copy grammar | Cart page | "Batteries contains a components" → "Batteries contain components" |
| 13 | Gainesville store URL typo | Store locator / nav | Nav says "Gainesville" but slug is /stores/gainsville-fl/ — fix slug or add 301 redirect |
| 14 | Stale /contact-v1/ link in HTML |
Unknown widget | Find source and update to /contact-us/ |
P2 — Medium Priority (accessibility, polish)
| # | Issue | Details |
|---|---|---|
| 15 | 25+ links without accessible names | Logo, social icons (Facebook/Instagram), brand carousel — add aria-label |
| 16 | Duplicate H2 on product cards | Same product title rendered twice in card template |
| 17 | Shop page H1 is generic "Shop" | H2 "Shop for Industrial & Commercial Batteries" is more descriptive — swap for SEO |
| 18 | Checkout collects full shipping address | Pickup-only business — simplify to contact + store selection |
| 19 | Tax exemption instructions truncated | Long policy text may overflow on mobile — use collapsible accordion |
| 20 | wishlist vs wishlist-2 | Two URLs both return 200 — consolidate with 301 redirect |
| 21 | International shipping links externally | Points to starenergybatteries.com — confirm intent; add rel="noopener" |
| 22 | Empty product ratings everywhere | "0 out of 5 (0)" on all products — hide or seed verified reviews |
| 23 | RoyPow brand logo image | Flagged as not fully loaded — verify media file exists on staging |
Navigation Test Results
Passing
- Homepage, Shop, Cart, Checkout, My Account
- Store Locator, Contact Us, About
- Golf & Utility Vehicles filter (32 products)
- Marine, Aerial, Automotive, Floor Machine filters
- Industrial Equipment, Commercial Transportation, Traffic Management
- Deep-Cycle battery category pages
- Mobile hamburger menu (Open/Close)
- Product search ("trojan" — 46 results)
- Add to cart → checkout flow
Failing
- Solar/Renewable Systems →
/shop/solar-battery/— HTTP 500 - Solar Batteries (footer) → same URL — HTTP 500
- Safety Data Sheets (footer) →
#dead link - Compare page →
/compare/— HTTP 500 - Homepage — raw
on product cards
What Is Working
| Area | Result |
|---|---|
| E-commerce core flow | Pass Browse → PDP → Add to cart → Cart → Checkout |
| Payment methods on checkout | Pass PayPal, Credit Cards, Google Pay, Cash on Delivery |
| Product detail pages | Pass Tabs (Description, Spec, Terminal Options, Reviews) |
| Application filters | Pass 8 of 9 nav filters return products |
| Store locator form | Pass Accepts location input |
| Account login/register | Pass Forms render correctly |
| Legal pages | Pass Terms, Privacy, Battery Warranty — HTTP 200 |
Automated Test Results
Playwright regression suite + link checker run against staging on June 24, 2026.
| Suite | Passed | Failed | Notes |
|---|---|---|---|
| Playwright (chromium) | 28 | 7 | Failures map to P0/P1 issues above |
| Link check (15 URLs) | 12 | 3 | Solar 500, Compare 500, Homepage shortcode |
| Edge cases | 10 | 0 | Empty search, mobile nav, pagination, special chars |
Edge cases not yet tested (require credentials)
- PayPal sandbox end-to-end checkout
- Tax exemption certificate upload (logged-in account)
- Coupon code apply (valid/invalid)
- Out-of-stock add-to-cart
- Variable product terminal option selection
- Guest wishlist session persistence
Remediation Roadmap
| Week | Focus | Key actions |
|---|---|---|
| Week 1 | Stop the bleeding (P0) | Deploy mu-plugin; fix solar & compare pages; strip shortcodes; fix SDS menu; smoke test all P0 URLs |
| Week 2 | Conversion & content (P1) | Fix Brevo newsletter; cart AJAX fragments; copy edits; deduplicate UI; Gainesville slug; menu audit |
| Week 3 | Accessibility & SEO (P2) | aria-labels; wishlist canonical URL; simplify pickup-only checkout; SEO headings; hide empty ratings |
| Week 4 | Automation & ongoing QA | Clone full codebase; CI on staging; weekly link crawl; pre-deploy checklist |
Immediate Next Actions
- Upload
wp-content/mu-plugins/advantage-battery-fixes.phpto WP Engine staging and purge caches - Run
wp eval-file scripts/fix-product-shortcodes.phpon staging SSH to clean product DB - Fix Safety Data Sheets menu URL in WP Admin → Appearance → Menus
- Re-embed Brevo newsletter form and verify API key for staging domain
- Re-run automated tests:
npm run link-check && npm test - Schedule weekly link crawl before any production deploy