Skip to main content
Nerve Centre KPIs · Audit Profile · Sentiment Settings PrestaShop is a French open-source PHP/MySQL commerce platform powering a large share of independent EU stores (FR/ES/IT/PL), in self-hosted and Hosted Cloud flavours, frequently multi-shop on one back office. This audit answers four questions: (1) is the Webservice key alive with the right per-resource GET grants; (2) is the catalogue complete and inventory honest (OOS-but-visible, missing image/description/EAN/SEO, combination stockouts); (3) are orders and refunds healthy through the order_state pipeline (stuck awaiting-payment, refund spikes, cancellation drift); and (4) what leaks across channels - ads/marketplace listings on OOS SKUs, email-attribution share, pagespeed-driven cart loss - when ad / marketplace / email / website-performance siblings are connected. PrestaShop stays system of record; Vortex IQ is the pulse layer.

What this audit checks

Authentication & access

  • Webservice enabled (Advanced Parameters → Webservice) and /api reachable over HTTPS
  • Webservice key authenticates as HTTP Basic username with empty password (200 on /api/?output_format=JSON)
  • Key has GET grants on every resource a card needs: orders, order_details, products, stock_availables, customers, addresses, currencies, order_states
  • Missing-grant detection - a 401/403 on any resource flags the specific permission gap rather than failing the whole sync
  • PrestaShop version detected (1.6 / 1.7 / 8.x) so resource-shape differences are handled
  • Hosted Cloud reachability - distinguish a maintenance window from a revoked key

Catalogue & SEO completeness

  • Active products missing a primary image (id_default_image null/0)
  • Products with empty description / description_short - conversion + SEO lift
  • Products missing ean13 (breaks Google Shopping + marketplace feeds)
  • Products missing meta_title / meta_description (organic-traffic leak)
  • Zero-priced visible products (price 0 while active)

Inventory hygiene

  • stock_available.quantity <= 0 on active, available_for_order products still visible (OOS-but-visible)
  • Combination stockouts - id_product_attribute>0 rows at 0 while the parent product is active
  • Stock-tracking disabled - out_of_stock=1 + depends_on_stock=false across >30% of catalogue
  • Top-50-velocity SKUs at or near zero stock (stockout imminent on bestsellers)

Order & refund health

  • Orders stuck in an awaiting-payment order_state aged >24h (gateway issue or customer dropoff)
  • Refund rate >5% on 30D vsP (REFUNDED order_state / order_slip)
  • Rolling 24h refund rate >2x 30D baseline (anomaly)
  • Cancellation rate >3% on 30D vsP
  • Order-status spike - any order_state volume >2x its 30D average in 24h

Discount & margin discipline

  • total_discounts as % of revenue >40% sustained (promo dependency)
  • total_shipping as % of revenue >15% (subsidising delivery)
  • VAT/tax collected trend for cross-EU OSS-threshold awareness (tax_incl minus tax_excl)

Multistore consistency

  • Per-shop revenue / refund-rate / OOS divergence across id_shop (one shop dragging the group)
  • Same reference/ean13 with divergent price or stock across shops
  • A shop with orders flowing but Webservice grants missing for one of its resources

Cross-channel: leak vs Ads / Marketplace / Email / Website (the killer area)

  • Active ads on OOS PrestaShop SKUs - daily spend on reference/ean13 with stock_available.quantity <= 0 (sibling = google_ads / amazon_ads)
  • Catalogue drift - same reference/ean13, PrestaShop vs Amazon/eBay price delta >20% or stock parity broken
  • Email-attributed revenue share <15% or drop >20% vsP (sibling = klaviyo / dotdigital / mailchimp)
  • High-value PrestaShop customers (spend > P90) unengaged on email for 90d
  • Pagespeed-driven cart loss - cart/checkout LCP >2.5s with conversion drop (sibling = website_performance / crux)

Data sources

  • GET {store_url}/api/?output_format=JSON - Auth probe - cheapest validate, lists granted resources
  • GET {store_url}/api/orders - Revenue / order-count / refund / status-pipeline context
  • GET {store_url}/api/order_details - Top products by revenue + line-level SKU velocity
  • GET {store_url}/api/order_states - Map current_state to human status for status-mix + stuck-state detection
  • GET {store_url}/api/products - Catalogue completeness - image/description/EAN/SEO + active flag
  • GET {store_url}/api/stock_availables - OOS + low-stock + combination stockouts + tracking-disabled
  • GET {store_url}/api/customers - Customer count + repeat rate + churn-risk + newsletter opt-in
  • GET {store_url}/api/addresses - Orders/AOV by country (geography)
  • GET {store_url}/api/shops - Multistore enumeration for per-shop breakdowns