Skip to content

Shopify Listing & Compliance Checklist

Use this doc when assembling the Shopify App Store submission. Tasks marked ✅ are already implemented in the app codebase; double-check before submission.

Listing copy & metadata

  • [ ] App name: Bulk Product Editor
  • [ ] Tagline / app card subtitle: “Safely bulk edit products, prices, and metafields in minutes”
  • [ ] Short description (app introduction, ~100 chars): “Bulk update prices, tags, metafields, and more with flexible filters and safe background jobs.”
  • [ ] App details (long description, ≤500 chars): Matches the Long description in app-listing.md (filters + preview, background jobs, one-click rollback, multiple jobs at once).
  • [ ] Feature list bullets (≤80 chars each):
    • “Target products with AND/OR/NOT filters”
    • “Bulk edit titles, prices, tags, and metafields”
    • “Queue multiple bulk edit jobs (tier-based throughput)”
    • “One-click rollback for completed bulk jobs”
  • [ ] Target audience: merchants, agencies, catalog managers.
  • [ ] Primary search terms: bulk product editor, bulk edit products, edit metafields, bulk price change, bulk edit tags.
  • [ ] Language: English (en). Add translations later if desired.
  • [ ] Category: Catalog management / Merchandising (best match available in Partner Dashboard).
  • [ ] Pricing table: Plan names, prices, and features in the Partner Dashboard match pricing.md and all in-app messaging.

Visual assets

  • [ ] App icon 1200×1200 PNG/JPG (no text, no rounded corners).
  • [ ] Screenshots (3–6) with captions:
    1. New bulk edit builder showing filters & actions.
    2. Preview table with matched products.
    3. Job detail page with logs, rollback, duplicate.
    4. Usage/billing page highlighting upgrade CTA.
    5. Optional: Job history view highlighting one-click rollback.
  • [ ] Optional video (30–90 sec) demonstrating workflow end-to-end (script lives in reviewer instructions).

App behavior & UX

  • ✅ Embedded app with Polaris UI.
  • ✅ Responsive, labeled inputs, proper loading/empty/error states.
  • ✅ Minimal scopes (read_products, write_products).
  • ✅ No console errors during normal flows.
  • ✅ Background jobs with progress, logs, cancellation, and one-click rollback for supported fields.
  • ✅ Multiple bulk edit jobs can run at once; queue handles rate limiting and retries.
  • ✅ Usage gating pushes merchants to billing when current-plan limits are reached or no active subscription exists.

Privacy & compliance

  • ✅ Privacy page with contact & retention policy (SUPPORT_EMAIL, plan-based change-log retention window).
  • ✅ Terms page & support page linked.
  • ✅ Mandatory webhooks: customers/data_request, customers/redact, shop/redact, plus app/uninstalled, app/scopes_update.
  • ✅ Uninstall & redact delete sessions, usage, mark jobs for cleanup.
  • ✅ No personal data stored beyond job metadata.
  • [ ] Opt-out of protected customer data (Partner Dashboard) if scopes remain product-only.

Billing & plans

  • appSubscriptionCreate mutation implemented; test flag tied to NODE_ENV.
  • ✅ Usage cap enforced; upgrade CTA on /app/usage.
  • [ ] Validate subscribe/change/cancel flows for all available plans in a dev store prior to submission.
  • [ ] Ensure listing pricing copy and pricing.md match in-app plan names, limits, and prices.

Reviewer package & QA

  • docs/internal/listing/reviewer-instructions.md with E2E flows (bulk edit, billing, privacy, rollback).
  • [ ] Update instructions after any UX tweaks; include login details if third-party integrations required.
  • [ ] Provide screencast (final UI) and attach to submission.
  • [ ] Run manual QA checklist (see docs/launch/production-plan.md).
  • [ ] Run Partner Dashboard automated checks.

Support & contact

  • ✅ Support email & SLA displayed (SUPPORT_EMAIL, reply within 1–2 business days on paid plans).
  • ✅ Privacy/terms/support URLs in app; ensure same URLs in listing.
  • [ ] Add emergency developer contact phone/email in Partner Dashboard.

Keep this checklist updated as tasks complete.