Le problème
Les prix changent constamment sur Amazon et Walmart, mais il n'existe pas de système d'alerte unifié qui surveille les deux. Les extensions de navigateur ne fonctionnent que lorsque l'onglet est ouvert. Les sites de suivi des prix existants sont axés sur les consommateurs et ne peuvent pas s'intégrer à vos outils internes ou à vos flux de travail d'agents. Pour les équipes e-commerce qui gèrent les prix concurrentiels, les équipes d'approvisionnement qui surveillent les coûts des fournisseurs, ou les agents de recherche de bonnes affaires au service des utilisateurs, manquer un changement de prix signifie manquer une marge ou une affaire. Le changement a eu lieu hier, mais vous l'avez découvert la semaine suivante.
La solution Scavio
Scavio interroge les listes de produits Amazon et Walmart dans un seul pipeline et renvoie des données de prix structurées que vous pouvez comparer aux références stockées. Un cron quotidien compare les prix d'aujourd'hui à ceux d'hier, calcule les variations en pourcentage et déclenche des alertes via n'importe quel webhook lorsque les seuils sont dépassés. Le même script gère les deux plateformes avec des chemins de code identiques car Scavio normalise le schéma de réponse. Vous obtenez une surveillance unifiée des prix sur plusieurs plateformes sans avoir à construire deux intégrations distinctes.
Avant
Avant Scavio, surveiller les prix sur Amazon et Walmart signifiait deux intégrations distinctes, deux extensions de navigateur, ou des vérifications ponctuelles manuelles qui manquaient les changements entre les visites.
Après
Après Scavio, un script quotidien surveille les prix sur les deux plateformes et alerte l'équipe en quelques heures en cas de changement significatif. Plus de baisse de prix manquée, plus de veille concurrentielle obsolète.
À qui cela s'adresse
Équipes e-commerce suivant les prix concurrentiels, responsables des achats surveillant les coûts des fournisseurs, et agents de recherche de bonnes affaires qui doivent alerter les utilisateurs lorsque les prix descendent en dessous des seuils.
Avantages clés
- Surveillance unifiée des prix sur Amazon et Walmart en un seul script
- Alertes de seuil configurables pour les variations en pourcentage ou absolues
- Des vérifications automatisées quotidiennes remplacent la surveillance manuelle ponctuelle
- L'intégration Webhook envoie des alertes à Slack, par e-mail ou aux outils internes
- Un schéma de prix normalisé signifie un code identique pour les deux plateformes
Exemple Python
import requests
import json
from pathlib import Path
API_KEY = "your_scavio_api_key"
THRESHOLD_PCT = 5.0
def get_price(product: str, platform: str) -> float | None:
res = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": platform, "query": product},
timeout=15,
)
res.raise_for_status()
for item in res.json().get("organic", []):
if item.get("price"):
return item["price"]
return None
def check_prices(watchlist: list[dict]) -> list[dict]:
baseline_path = Path("price_baseline.json")
baseline = json.loads(baseline_path.read_text()) if baseline_path.exists() else {}
alerts = []
for item in watchlist:
for platform in item["platforms"]:
key = f"{item['slug']}_{platform}"
current = get_price(item["query"], platform)
previous = baseline.get(key)
if current and previous:
pct_change = ((current - previous) / previous) * 100
if abs(pct_change) >= THRESHOLD_PCT:
alerts.append({
"product": item["query"],
"platform": platform,
"previous": previous,
"current": current,
"change_pct": round(pct_change, 1),
})
if current:
baseline[key] = current
baseline_path.write_text(json.dumps(baseline, indent=2))
return alerts
watchlist = [
{"slug": "airpods-pro", "query": "airpods pro 2", "platforms": ["amazon", "walmart"]},
{"slug": "kindle-paperwhite", "query": "kindle paperwhite", "platforms": ["amazon", "walmart"]},
]
alerts = check_prices(watchlist)
for a in alerts:
print(f"{a['product']} on {a['platform']}: ${a['previous']} -> ${a['current']} ({a['change_pct']}%)")Exemple JavaScript
const API_KEY = "your_scavio_api_key";
const THRESHOLD_PCT = 5.0;
async function getPrice(product, platform) {
const res = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: { "x-api-key": API_KEY, "content-type": "application/json" },
body: JSON.stringify({ platform, query: product }),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
const data = await res.json();
for (const item of data.organic ?? []) {
if (item.price) return item.price;
}
return null;
}
async function checkPrices(watchlist) {
const fs = await import("fs/promises");
let baseline = {};
try { baseline = JSON.parse(await fs.readFile("price_baseline.json", "utf8")); } catch {}
const alerts = [];
for (const item of watchlist) {
for (const platform of item.platforms) {
const key = `${item.slug}_${platform}`;
const current = await getPrice(item.query, platform);
const previous = baseline[key];
if (current && previous) {
const pctChange = ((current - previous) / previous) * 100;
if (Math.abs(pctChange) >= THRESHOLD_PCT) {
alerts.push({ product: item.query, platform, previous, current, changePct: Math.round(pctChange * 10) / 10 });
}
}
if (current) baseline[key] = current;
}
}
await fs.writeFile("price_baseline.json", JSON.stringify(baseline, null, 2));
return alerts;
}
const watchlist = [
{ slug: "airpods-pro", query: "airpods pro 2", platforms: ["amazon", "walmart"] },
{ slug: "kindle-paperwhite", query: "kindle paperwhite", platforms: ["amazon", "walmart"] },
];
const alerts = await checkPrices(watchlist);
for (const a of alerts) console.log(`${a.product} on ${a.platform}: $${a.previous} -> $${a.current} (${a.changePct}%)`);Plateformes utilisées
Amazon
Recherche de produits avec prix, notes et avis
Walmart
Recherche de produits avec données de prix et d'exécution