Skip to content

Reviewer Instructions

Provide these instructions to the Shopify App Review team when submitting the app. Update any URLs or credentials before submission.

Test store access

  • Store URL: <add-review-store.myshopify.com>
  • Admin login: <email> / <password>
  • Shop access: Staff account with Apps > Bulk Product Editor permissions.

Replace the placeholders above with reviewer credentials (Shopify requires access to a live test store).

What to expect

  • Embedded app inside Shopify Admin (App Bridge + Polaris UI).
  • Navigation items: Home, Recent tasks, New task, FAQ, Usage, Manage plan, Settings (plus saved filters/drafts/templates on paid plans).
  • You can create/queue multiple jobs. Jobs process in the background and are throttled to respect Shopify API limits; most plans process 1 job at a time, and Advanced can process up to 5 concurrently.
  • Each completed job records before-values for supported fields and exposes a one-click Rollback button from Job history.
  • No customer data is collected; scope is limited to read_products,write_products.

1. Create a bulk edit job

  1. Open New bulk edit.
  2. In Filter products, click Filter products byProduct fieldsTitle and configure “Title contains Sample”.
  3. Under Actions, choose one action (for example, Tags → Add → review).
  4. Click Create task. You are redirected to the bulk jobs list.
  5. Open the new job → verify:
    • Progress bar updates.
    • Logs show matched products and applied actions.
    • Rollback button is available after completion.
    • Running Rollback restores the updated fields and any variants that were deleted; if a row can’t be reverted the job shows a warning banner and the failed change is called out in the Recent changes list.

2. Prepare sample products and variants

To verify variant-level filters and actions, create at least one test product with multiple variants:

  • Product: “Frame Test”
  • Variants:
    • 5x7 / Red (SKU: SKU-57-R, Price: 9.00)
    • 5x7 / Blue (SKU: SKU-57-B, Price: 9.00)
    • 8x10 / Red (SKU: SKU-810-R, Price: 12.00)

Tip: The app’s variant title is the combined string of option values (for example, 5x7 / Red). This mirrors Shopify’s ProductVariant.title, and corresponds to the variantName DSL field in the filter builder.

3. Filters and selection verification

There are two levels of filtering:

  • Product filter (top section of New bulk edit) selects which products enter the job.
  • Variant filter and selection (inside each variant-related action) targets specific variants within the matched products.

Product filter (examples)

  • Title contains: add a rule “Title contains Sample” to include only sample products.
  • Vendor / Product type / Handle / Tag / Status / Created / Updated / Collection: add rules as needed.
  • Variant price / SKU / barcode can be queried at product level. variantPrice maps to Shopify’s documented price search field.
  • Variant-only fields (Variant title, Variant option 1/2/3, Variant position) are evaluated at the variant level during preview and job execution; they do not change which products are initially selected.
  • Metafields: choose Metafield in the filter builder, then enter namespace, key, and a value. These compile to metafields.{namespace}.{key}:{value} search tokens and do affect which products are included.
  • Optional operator checks:
    • Variant SKU is not empty (exists).
    • Handle is not empty (exists).

Variant filter and selection (inside an action)

  1. Add a variant-related action (for example, Variants & Options → Edit variants, Delete variants, Price, SKU, Barcode).
  2. In the action card, look for the summary line “Variants to edit: …”. By default it reads “All variants on each matching product”. Click Change to open Variant Filter & Selection.
  3. Add rules to target variants:
    • Variant title contains 5x7 (matches both 5x7 / Red and 5x7 / Blue).
    • Variant option 2 equals Red (matches … / Red).
    • Variant SKU contains SKU-57-.
    • Variant price greater than 8.
    • Variant barcode is not empty (exists).
    • Variant position equals 1.
  4. Run the job and confirm only the intended variants were changed. Use Rollback to revert.

Notes

  • “Variant title” is a convenience field for substring matching across all option values; it’s equivalent to option1/2/3 joined by / and maps to Shopify’s ProductVariant.title.
  • Preview pages post-filter for variant-only fields like variant title and options, so counts may be limited for performance, but job execution applies full filtering.

4. Actions verification

Use small, safe changes (for example, test tags or a nominal price update) so you can quickly verify results and undo them via Rollback if needed.

  • Tags (product level)

    • Add: reviewer-test, verify tag appears on the product.
    • Remove: reviewer-test, verify it’s removed.
    • Replace: Add from then replace with to, verify swap.
  • Price (variant level)

    • Set to 10.50.
    • Increase percent 10.
    • Decrease percent 10.
    • Round to .99.
    • Set Compare at (for example, 12.00) or Set Compare at from original.
    • Use Variant Filter & Selection to target Variant title contains 5x7 and confirm only those variants change.
  • SKU / Barcode (variant level)

    • Replace: set to TEST-SKU.
    • Prepend: PRE- → expect PRE-{old}.
    • Append: -POST → expect {old}-POST.
    • Pattern-based values are supported (optional); verify a simple pattern if desired.
  • Title / SEO (product level)

    • Title: Append - Reviewed.
    • SEO Title / SEO Description: Append text and verify on the product.
  • Vendor / Product type (product level)

    • Replace or append/prepend via the selected operation.
  • Status (product level)

    • Set status to Draft then back to Active.
  • Collections (product level)

    • Add to a test collection, then remove from it.
  • Metafield (product level)

    • Set: namespace custom, key review_note, type single_line_text_field, value ok.
    • Verify metafield appears on the product.
    • Optionally, add a Metafield rule in the Filter products card (for example, custom.review_note equals ok) to confirm that only products with this metafield are selected.
    • Remove: delete the same custom.review_note metafield via a bulk action; verify it no longer appears.
  • Variants & Options (variant management)

    • Add variants: create a variant (for example, option1 5x7, option2 Green, price 12.34, sku SKU-57-G).
    • Delete variants: set Variant Filter to Variant title contains 5x7 / Green and delete; verify it’s removed.
    • Edit variants: with Variant Filter Variant title contains 5x7, set price to 10.00 or append -ED to SKU; verify only 5x7 variants update.
    • Clone variants & options: select a source product and run the clone; verify options + variants now match the source.

Note: Option fields (Option value 1/2/3) always expect the option values (for example, Size = Small, Color = Red). The option names themselves are defined on the product and are not edited by these actions.

5. Duplicate

Use a small, reversible change (for example, add a tag or set a nominal price) to verify duplication.

  1. Run a job that updates products/variants (for example, add tag reviewer-test or set price to 10.00 for Variant title contains 5x7).
  2. From the Bulk jobs list or Job details page:
    • Click Duplicate → You are redirected to New bulk edit with the original filter and actions pre-filled.
      • Expected: the Filter and Actions sections are populated exactly as in the original job (you can modify and run again).

6. Saved product filters and saved task templates

Saved product filters (Filter products card)

  1. Configure a product filter (for example, Title contains Art).
  2. Click Save view (bottom-right of the Filter products card), enter a name/description, and Save.
  3. Click Filter products byUse saved filter group, select your saved filter group, and click Use.
    • Expected: The filter rules populate; Preview count/table reflect the saved filter group.

Saved job templates (Actions section)

  1. Configure a single action (for example, a Price update).
  2. Click Save actions as template (bottom-right of Actions card), enter a name/description, and Save.
  3. Click Choose what to edit (or Change what to edit if an action is already selected) → Use saved template, select a template, and Apply.
    • Expected: The product filter and the template’s first action populate in the form.

7. Usage & Billing

  1. Go to Usage: view monthly cap and Upgrade CTA.
  2. Follow the Upgrade link to Billing.
  3. Approve the test subscription (Shopify billing confirmation page).
  4. After redirect, Usage page reflects upgraded plan.

Notes (for reviewers and internal testing):

  • By default, this app creates test subscriptions when NODE_ENV !== production.
  • If needed for a production-like staging deploy, set SHOPIFY_BILLING_TEST=1 to force test billing on the appSubscriptionCreate request.

8. Privacy & uninstall

  • Privacy policy, support, and terms links are available from the nav.
  • Mandatory privacy webhooks (customers/data_request, customers/redact, shop/redact) and app/uninstalled are implemented; on uninstall, sessions and usage data are deleted automatically.

9. Multiple queued jobs

  1. From New bulk edit, create a first job (for example, add tag reviewer-1).
  2. While that job is running, immediately create a second job (for example, add tag reviewer-2 on a different set of products).
  3. Go to Bulk jobs and confirm:
    • Both jobs appear with their own progress indicators.
    • Logs update independently for each job.
    • Once complete, each job exposes its own Rollback button.

Additional notes

  • Rate limiting: jobs automatically back off and resume; user errors are logged per product.
  • Background queue is resilient; cancelling a job stops remaining actions while preserving completed changes in logs.
  • Rollback is enabled: each completed job stores before-values so reviewers can click Rollback from Job history to undo supported fields within the retention window.

Please contact us at SUPPORT_EMAIL if any issues arise during review. Replace with the production support email before submission.