Appearance
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.mdand all in-app messaging.
Visual assets
- [ ] App icon 1200×1200 PNG/JPG (no text, no rounded corners).
- [ ] Screenshots (3–6) with captions:
- New bulk edit builder showing filters & actions.
- Preview table with matched products.
- Job detail page with logs, rollback, duplicate.
- Usage/billing page highlighting upgrade CTA.
- 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, plusapp/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
- ✅
appSubscriptionCreatemutation implemented;testflag tied toNODE_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.mdmatch in-app plan names, limits, and prices.
Reviewer package & QA
- ✅
docs/internal/listing/reviewer-instructions.mdwith 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.