$ Price Bulk Editor
Fonctionnalités

Tout ce que fait Price Bulk Editor — en détail.

Construit autour de quatre garanties : vous prévisualisez avant de valider, vous pouvez toujours faire un rollback, vous voyez la progression en direct, et vos règles de filtre sont assez précises pour exclure exactement ce qu'il faut.

01 · Prévisualisation

Simulez chaque tâche avant de la valider.

L'incident le plus courant avec un éditeur en masse, c'est de lancer un traitement qui touche plus de SKU que prévu. La simulation produit le résultat complet sans toucher à Shopify : quels produits correspondent au filtre, quelles variantes changeraient, quel serait le nouveau prix, et quels éléments échoueraient à la validation.

  • Diff ancien → nouveau, variante par variante
  • Avertissements de validation (prix négatif, compare-at manquant, etc.)
  • Nombre de SKU + estimation de l'impact CA total
  • Export CSV pour validation par les parties prenantes
Résultat de simulation · summer-sale-25 Non validé
filter: tag=summer-sale AND vendor=Outdoor
matched: 2,481 SKUs across 412 products
action: −25% off compare-at, floor $9.99

variant         was       now       Δ
SUM-TEE-S       $39.00    $29.25    −$9.75
SUM-TEE-M       $39.00    $29.25    −$9.75
SUM-CAP-OS      $24.00    $18.00    −$6.00
… 2,478 more rows

WARNINGS (3):
  SUM-LEGGINGS-XL — would price below floor; skipped
  SUM-PACK-A      — missing compare-at; skipped
  SUM-SOCKS-L     — currently archived; skipped

estimated revenue delta over 7 days: −$48,210
Risk warnings 8 typed rules · pure math · zero AI

Every dry-run runs the same eight rule checks the executor runs at commit time — except no products get touched. Each warning carries a severity so you know what's catastrophic vs. just worth noticing.

High
  • Price below cost. The new price is under the Shopify cost-per-item. Margin would turn negative.
  • Price goes negative. The action produces a negative price. Hard reject.
  • Sign error suspected. The median delta contradicts the action sign (e.g. you said "decrease" but the math goes up). Often a missing minus sign.
Medium
  • Missing compare-at. You asked for percent off compare-at, but the variant has none. Skipped.
  • Archived product. The product is archived on Shopify. Skipped — you probably didn't mean to discount it.
  • Variant without cost. Margin pricing rule, but the variant has no cost on Shopify. Skipped.
  • Price outlier. The new price is more than two standard deviations from the median. Worth a second look.
Low
  • Low inventory. The variant has fewer than five units in stock. Informational — you may not want to feature it.
Journal d'audit · tâche #4218 Snapshot v1
  • 2026-06-14 09:00 créée snapshot de 2 481 variantes
  • 2026-06-14 09:01 applique −25 % compare-at, 2 478 réussies, 3 ignorées
  • 2026-06-21 23:59 rollback snapshot rejoué, 2 478/2 478 restaurées
02 · Rollback

Rollback par snapshot qui va vraiment au bout.

Avant chaque tâche, nous enregistrons le prix et le compare-at antérieurs de chaque variante ciblée. Le rollback rejoue ce snapshot — ce n'est pas un calcul inverse en pourcentage, qui accumule les erreurs d'arrondi et ne récupère pas les éditions externes faites pendant la promo.

  • Restauration exacte par variante, compare-at inclus
  • Idempotent — sûr en cas de nouvelle tentative après une limitation de débit Shopify
  • Reprend où il s'est arrêté si interrompu
  • Snapshots par marché restaurés indépendamment
03 · CSV

Import CSV pour des prix arbitraires par SKU.

Quand la logique de prix ne rentre pas dans une règle (tarif négocié avec un grossiste, liste de liquidation envoyée par la finance), importez un CSV avec vos SKUs et le nouveau prix absolu. Le même processus simulation + rollback s'applique.

  • Colonnes : sku (recommandé) ou variant_id, plus new_price. Optionnel : new_compare_at_price.
  • Jusqu'à 5 000 lignes par fichier
  • Validation simulée ligne par ligne avant validation
  • Le journal d'audit conserve le CSV original
sku,new_price,new_compare_at_price
SUM-TEE-S,29.25,39.00
SUM-TEE-M,29.25,39.00
SUM-CAP-OS,18.00,24.00
SUM-PACK-A,49.00,69.00
SUM-HOODIE-L,54.00,
… up to 5,000 rows per file
04 · Ciblage

Filtres par tag, collection et attribut.

Filtrez le catalogue avec n'importe quelle combinaison de tag, collection, fournisseur, type de produit, fourchette de prix ou niveau de stock. Les filtres de variantes ajoutent les motifs SKU et les valeurs d'options.

Niveau produit

  • tag = "summer-sale"
  • collection ∈ "Outdoor", "Hiking"
  • vendor != "Discontinued"
  • price BETWEEN $20 AND $80

Niveau variante

  • sku STARTS_WITH "SUM-"
  • option.size IN "S", "M"
  • inventory_quantity > 0
  • compare_at IS NOT NULL

Exclusion

  • NOT tag = "new-arrival"
  • NOT sku IN [liste uploadée]
  • NOT vendor = "Brand X"
  • NOT product_type = "Gift Card"
05 · Marchés

Tarification par marché pour Shopify Markets.

Appliquez un prix différent, un pourcentage ou une règle d'arrondi par marché. Prix absolus pour les US, pourcentage sur la base EU, arrondi à .95 pour la Suisse — le tout dans une seule tâche. L'état antérieur de chaque marché fait l'objet d'un snapshot indépendant.

Marché Règle Arrondi Plancher
US −25 % du compare-at .99 $9.99
EU −20 % de la base .00 €10.00
CH CHF fixe .95 CHF 14.95
UK −25 % du compare-at .99 £8.99
06 · Automatisation

Règles récurrentes — définies une fois, exécutées indéfiniment.

Flash du vendredi chaque semaine, déstockage mensuel le 1er, retour automatique de fin de saison le 22 septembre. Chaque exécution crée un nouveau snapshot, donc chaque récurrence est réversible indépendamment.

Hebdomadaire

Flash vendredi à 09:00 CET

Chaque vendredi à 09:00, applique −20 % au tag « flash-friday ». Rollback automatique le dimanche à 23:59. S'adapte aux SKU portant ce tag à l'instant T.

Mensuel

Déstockage de fin de mois

Le dernier jour de chaque mois, prix au coût × 1,1 pour les stocks dormant depuis plus de 90 jours. Rollback le lundi suivant.

07 · Journal d'audit

Historique complet de chaque modification, exportable en CSV.

Chaque action — tâche créée, simulation consultée, validation, rollback, récurrence déclenchée — est journalisée avec l'utilisateur, l'horodatage, l'IP et le payload complet. Filtrez par date, utilisateur ou SKU concerné ; exportez en CSV pour la finance, les demandes RGPD ou les audits internes.

Rétention : de 30 jours sur le plan Gratuit jusqu'à 5 ans sur Scale, selon le palier.

2026-06-14T09:00Z  marie@store.com  task.create     "Summer Sale 25%"
2026-06-14T09:00Z  marie@store.com  task.dry_run    matched=2481
2026-06-14T09:01Z  marie@store.com  task.commit     succeeded=2478 skipped=3
2026-06-14T09:18Z  system           task.complete   duration=1041s
2026-06-21T23:59Z  system           task.rollback   restored=2478 of 2478
2026-06-22T08:14Z  cfo@store.com    audit.export    period=2026-06 format=csv
08 · Règles de marge

Tarification à la marge et au coût.

Définissez le prix comme coût × multiplicateur, visez un pourcentage de marge fixe, ou appliquez une marge en paliers par fourchette de prix. Combinez avec des règles d'arrondi (toujours .99, toujours .95, etc.) et des planchers de marge minimum.

  • Récupère le coût depuis le cost-per-item de Shopify Inventory
  • Plancher par marge minimum (ex. toujours ≥ 40 %)
  • Paliers par fourchette de prix (×1,4 sous 20 $, ×1,6 au-dessus)
SKU Coût Règle Nouveau prix Marge
SUM-TEE-S$11.20×1.6 → .99$17.9937.7%
SUM-CAP-OS$5.40×1.8 → .99$9.9946.0%
SUM-PACK-A$22.50×1.4 → .99$31.9929.7%
SUM-JKT-L$48.00×1.4, min 35%$73.9935.1%
09 · Drift detection Unique

Catch the manual edit that broke your sale.

Once a campaign is live, anything else that touches a product price — a teammate fixing a typo, an inventory-sync app, a Shopify Flow rule — silently drifts the catalog away from the snapshot the rollback expects. We listen on the Shopify products/update webhook and surface every drift as an alert with the variant, the campaign, the price we wrote, and the price that's there now. Acknowledge it or roll it back; either way, no surprises when the sale ends.

  • Webhook-driven — fires within seconds of the manual edit
  • Idempotent per (variant, campaign, observed-price); Shopify retries can't dupe
  • Inline list + nav banner counter, polled every 30 seconds
  • Drift caught here keeps the rollback contract honest

We checked the App Store listings of seven direct competitors in May 2026. None advertise drift detection.

Drift alerts · summer-sale-25 3 NEW
2026-06-15 14:22  variant SUM-TEE-S
                  campaign price $29.25  →  observed $29.99
                  source: products/update webhook
                  status: NEW                         [acknowledge]

2026-06-15 16:08  variant SUM-CAP-OS
                  campaign price $18.00  →  observed $24.00
                  source: products/update webhook
                  status: NEW                         [acknowledge]

2026-06-16 09:41  variant SUM-PACK-A
                  campaign price $49.00  →  observed $52.00
                  source: products/update webhook
                  status: ACKNOWLEDGED
                  by: marie@store.com on 2026-06-16 10:02
10 · Self-healing Unique

Your campaigns don't get stuck. Guaranteed.

Most "my BFCM is frozen" support tickets in this category have the same root cause: the worker chain that drives a bulk operation lost a message, a deploy interrupted mid-run, or Shopify's bulk API briefly hiccupped. We run three independent recovery layers so the operator never sees a campaign stuck in RUNNING for hours without a path forward.

In-process

Status-progress recovery

The progress-polling handler self-heals during normal operation — if Shopify shows a bulk operation we don't know about (or vice versa) it reconciles before the merchant ever notices.

Every 15 minutes

Stuck-message scanner

A cron sweep finds tasks that are READY past run_at, RUNNING with no progress, or fully applied but still mid-flight; either resets a stuck Messenger row for redelivery or re-dispatches the right TaskMessage. No Shopify API calls — fast and cheap.

Hourly

Shopify reconciliation

When the cheap fixes fail, an hourly cron asks Shopify directly: "what's the real status of bulk operation X?" Shopify's answer wins; our local state conforms to it. Orphans get marked, completions get acknowledged, failures get surfaced with the Shopify error code.

The three layers were ported from a sister BigCommerce app where they've run in production for two years. Every recovery decision lands in the audit log so support can reconstruct what happened later.

Stuck campaigns are the #1 complaint cited in reviews of competing apps. We made it the failure mode we engineer against, not the one we apologize for.

Démarrer

Testez le workflow sur votre propre catalogue.

Installez gratuitement sur Shopify, lancez une simulation sur votre boutique, décidez ensuite. Le plan gratuit couvre 100 modifications de SKU par mois — suffisant pour valider avant de payer quoi que ce soit.

Plan gratuit · Sans carte bancaire · Essai 5 jours sur Growth et Scale · 30 % d'économie en annuel