Skip to main content
Nerve Centre KPIs · Audit Profile · Sentiment Settings Shopline is an APAC/US-rooted DTC ecommerce platform - sister of Shopify and BigCommerce, with a long-lived JWT bearer and region-pinned API hosts. Audits cover JWT/auth health (the silent-expiry trap that breaks order downloads without warning), catalogue & SEO completeness (variants missing SKUs, products missing descriptions), refund + fulfilment SLA (the merchant-trust signals), inventory hygiene, and cross-channel comparisons against Amazon / eBay / Ads / Email / Monitoring siblings to surface catalogue drift, OOS-with-active-spend, revenue-at-risk-from- incident, and email-attribution share.

What this audit checks

Authentication & access

  • JWT bearer parses cleanly (HS512, payload contains appKey/sellerId/storeId/domain/exp)
  • JWT exp claim > 30 days away (warn) / > 7 days (critical) - silent-expiry alarm
  • Region credential matches JWT domain claim (us / apac / asean host alignment)
  • Authorization header attaches as ‘Bearer ’ (NOT raw token - Shopline expects Bearer prefix unlike OnBuy)
  • Validate-endpoint /admin/openapi//orders.json?limit=1 returns 200 with orders payload
  • shop.json / account.json / merchants.json 404 expected - derive identity from JWT, not from /shop

Catalogue & SEO completeness

  • Products with empty body_html (missing description) - free conversion lift
  • Variants with no SKU populated >5% of catalogue (breaks marketplace + 3PL integrations)
  • Products missing primary image (variants without media)
  • Products in ‘archived’ status still showing on storefront
  • Tag sprawl - top-10 tags account for <40% of products (taxonomy decay)

Order & fulfilment SLA

  • Unfulfilled paid orders aged >48h (3PL/warehouse drag)
  • Avg time-to-fulfil >36h (slow ops)
  • Fulfillment rate <90% on 30D vsP (broken shipping promises)
  • Cancellation rate >3% (refund + rating impact)
  • Partially-paid order count >5 outstanding (broken authorise-only flow)

Refunds & customer trust

  • Refund rate >5% on 30D vsP (product quality / expectation mismatch)
  • Rolling 24h refund rate >2× 30D baseline (anomaly)
  • Top refunding customers - concentrated repeat-refunder fraud signal
  • Refund value as % of revenue >8% (margin destroyer)

Inventory hygiene

  • Zero/negative stock variants on active products (OOS but visible)
  • Low-stock SKUs <10 units across >5% of catalogue
  • Days-of-cover <7 on top-50 SKUs by velocity (stockout imminent)
  • Inventory-feed staleness - updated_at >24h on active variants

Discount & margin discipline

  • Discount % of revenue >25% sustained (promo dependency)
  • Shipping cost as % of revenue >15% (subsidising delivery)
  • AOV with discount vs without - gap >30% indicates margin cannibalisation

Cross-channel: leak vs Amazon / Ads / Email / Monitoring (the killer area)

  • Amazon revenue share >70% on top SKUs (platform-dependency risk)
  • Catalogue drift - same SKU, Shopline vs Amazon price delta >20% or title/image mismatch
  • Active ads on OOS Shopline SKUs - daily spend on variants with inventory_quantity <= 0
  • Revenue at risk per minute during a connected Datadog/New Relic incident (>$0 while incident open)
  • Email-attributed revenue share <15% (email under-utilised) OR drop >20% vsP
  • Top-velocity Amazon UK SKUs missing entirely from Shopline catalogue (assortment gap)

Severity thresholds

SignalWarnCritical
jwt_days_to_expiry307
unfulfilled_orders_aged_48h520
avg_fulfilment_hours2436
fulfillment_rate_pct9290
cancellation_rate_pct23
partial_paid_count515
refund_rate_pct35
refund_spike_multiplier1.52
refund_value_pct_of_revenue58
oos_active_variant_count110
low_stock_pct_of_catalogue35
days_of_cover_top_skus147
inventory_staleness_hours1224
missing_descriptions_count110
sku_coverage_pct9795
discount_pct_of_revenue2025
shipping_pct_of_revenue1215
amazon_revenue_share_pct10-
catalogue_drift_count510
ads_on_oos_daily_spend125
email_revenue_share_pct1510
consecutive_auth_failures13

Data sources

  • GET https://sl-open-{region}.myshopline.com/admin/openapi/{api_version}/orders.json - Auth probe + revenue/refund/fulfilment context (limit=1 = cheapest validate)
  • GET https://sl-open-{region}.myshopline.com/admin/openapi/{api_version}/products.json - Catalogue completeness + SKU coverage + slow-mover detection
  • GET https://sl-open-{region}.myshopline.com/admin/openapi/{api_version}/customers.json - Customer count + repeat rate + top-spender concentration
  • GET https://sl-open-{region}.myshopline.com/admin/openapi/{api_version}/inventory_levels.json - OOS + low-stock + days-of-cover
  • GET https://sl-open-{region}.myshopline.com/admin/openapi/{api_version}/refunds.json - Refund-rate spike detection + top refunders