Documentation · Marketplaces

Activer eBay sur ShipAndCheap

Guide complet, de la création du keyset développeur à la première annonce en ligne. Chaque étape indique ce qui se passe côté eBay, ce que fait SACP, et comment diagnostiquer si ça bloque.

Temps de mise en route : environ 30 minutes en Sandbox, quelques jours en production (validation du compte vendeur par eBay).

GET /ebay/status
GET /ebay/status

{
  "connected": true,
  "environment": "sandbox",
  "marketplaceId": "EBAY_FR",
  "policies": {
    "fulfillmentPolicyId": "6••••",
    "paymentPolicyId": "6••••",
    "returnPolicyId": "6••••"
  },
  "listings": { "total": 12, "published": 10, "failed": 2 },
  "ready": true,
  "blockers": []
}
À lire avant de commencer

Un compte vendeur neuf est plafonné par eBay

eBay limite les nouveaux vendeurs à un faible volume le premier mois (souvent de l'ordre de 10 articles ou 500 €), relevé ensuite selon l'historique de ventes et la satisfaction client. La taille de votre catalogue n'y change rien.

C'est pourquoi ShipAndCheap publie par lots bornés(10 par défaut, 25 maximum) et jamais automatiquement. Dès qu'eBay signale une limite atteinte, le lot en cours s'interrompt proprement : l'état de chaque SKU est enregistré, la reprise repart de là où vous en étiez.

Prérequis

Ce qu'il faut avoir avant de connecter

Trois de ces quatre points dépendent d'eBay et non de SACP. Les régler en amont évite de perdre du temps à déboguer une intégration qui, elle, fonctionne.

Un compte vendeur eBay

Idéalement un compte professionnel sur le marché visé (eBay France pour EBAY_FR). Un compte particulier fonctionne mais subit des plafonds de vente plus stricts.

Un compte développeur eBay

Créé sur developer.ebay.com. Il fournit le keyset (App ID, Cert ID, RuName) dont SACP a besoin pour parler à l'API.

Les Business Policies activées

Politiques de paiement, de livraison et de retour. Sans les trois, eBay refuse toute publication d'annonce — c'est la cause n°1 d'échec.

Un catalogue chargé dans SACP

Les produits doivent exister dans la table produits avec un prix, du stock et au moins une image.

Mise en route

Cinq étapes, de zéro à la première annonce

Étape 1
Créer le keyset développeur
developer.ebay.com → Hi [user] → Application Keys. Le keyset Sandbox est délivré instantanément et gratuitement.
Étape 2
Déclarer le RuName
Dans « User Tokens » → « Get a Token from eBay via Your Application ». L'URL d'acceptation doit pointer vers le callback SACP.
Étape 3
Configurer SACP
Les identifiants sont injectés comme paramètres de la stack backend, jamais écrits dans le code ni dans le navigateur.
Étape 4
Autoriser le vendeur
Depuis Intégrations → eBay → Connecter. Le vendeur accepte sur eBay, SACP reçoit et chiffre les jetons.
Étape 5
Publier un premier lot
Vérifier le diagnostic, puis publier 1 à 10 SKU. On n'envoie jamais tout le catalogue d'un coup.
Étapes 1 et 2

Keyset développeur et RuName

Le keyset identifie l'applicationSACP auprès d'eBay. Il est distinct du compte vendeur : un seul keyset suffit, même si plusieurs vendeurs se connectent.

  • Sandbox d'abord. Le keyset Sandbox est gratuit et immédiat. Il permet de valider toute la chaîne sans risquer une vraie annonce.
  • Le RuName n'est pas une URL.C'est un nom symbolique généré par eBay, du type Karraz-…-abcdef. C'est lui qu'attend le paramètre de redirection — une URL à cet endroit provoque un invalid_request sans explication.
  • L'URL d'acceptationdéclarée derrière le RuName doit pointer exactement vers le callback SACP, sinon l'échange de jetons échoue en invalid_grant.

URL d'acceptation à déclarer chez eBay

https://api.shipandcheap.com
  /auth/ebay/callback

Cette route est volontairement publique: c'est eBay qui redirige le vendeur dessus, aucune session ne peut l'accompagner. La sécurité repose sur un paramètre state à usage unique, valable 10 minutes.

Étape 3

Configurer SACP

Les identifiants eBay sont des paramètres de la stack backend. Ils ne transitent jamais par le navigateur et ne sont jamais stockés dans le code.

ParamètreValeurRôle
EbayEnvsandbox | productionBascule l'environnement. Le code est identique, seules les URLs eBay changent.
EbayClientIdApp ID (Client ID)Identifiant public du keyset.
EbayClientSecretCert ID (Client Secret)Secret du keyset. Paramètre NoEcho : jamais réaffiché par CloudFormation.
EbayRuNameRuName⚠️ Ce n'est PAS une URL. eBay attend le nom symbolique déclaré dans le keyset.

Passer de Sandbox à production consiste uniquement à changer EbayEnv et à fournir le keyset de production. Aucune ligne de code ne change.

Étape 4 · le point qui bloque le plus souvent

Les Business Policies

eBay refuse de publier une annonce si le vendeur n'a pas défini ses trois politiques. Elles se créent une seule fois, côté eBay, dans Mon eBay → Préférences de vente → Règles professionnelles.

  • Paiement — moyens acceptés et délai de règlement.
  • Livraison — transporteurs, délais et zones desservies. Sans poids produit, seule la livraison au forfait est possible.
  • Retour — délai et prise en charge des frais. Doit refléter votre politique réelle : une incohérence entre le site et eBay peut restreindre le compte.

SACP lit ces politiques automatiquement et utilise la première de chaque type. Le diagnostic vous dit laquelle manque, avant même d'essayer de publier.

Diagnostic quand il manque une politique

{
  "ready": false,
  "blockers": [
    "Politique de RETOUR absente
     sur eBay (Business Policies)."
  ]
}
Sous le capot

Ce que fait SACP pour chaque produit

eBay sépare le produit et son prix. Publier une annonce demande donc quatre appels enchaînés, que SACP orchestre pour vous.

1

Inventory Location

Emplacement de stock, créé automatiquement par SACP au premier appel.

2

Inventory Item

Le produit, identifié par son SKU : titre, description, images, marque, EAN, poids.

3

Offer

Le prix et les politiques, pour un marché donné. Un même SKU peut avoir une offre par pays.

4

Publish

Met l'annonce en ligne et renvoie le listingId eBay.

Le prix eBay n'est pas votre prix catalogue

ShipAndCheap calcule un prix propre au canal : il absorbe la commission eBay (environ 11 à 12 % sur les pièces auto), les frais fixes de transaction et votre marge. Le prix de votre catalogue sert de coût de référence, jamais de prix de vente.

Ces trois paramètres sont réglables par connexion : commission, marge et prix plancher.

Étape 5

Publier son premier lot

Commencez petit : un seul SKU dont vous connaissez bien la fiche. Vous vérifiez l'annonce sur eBay, puis vous augmentez.

  • SACP choisit par défaut les produits en stock, avec prix et image, non encore publiés sur ce marché.
  • Chaque produit est validé avant tout appel réseau : un produit sans image ou sans prix est écarté sans consommer de quota.
  • Republier un SKU déjà publié met à jour l'annonce existante au lieu d'en créer une seconde.
  • Le stock suit automatiquement : la synchronisation temps réel du catalogue met à jour les quantités.
POST /ebay/listings/publish
POST /ebay/listings/publish

{ "limit": 10 }          ← lot borné (max 25)
{ "skus": ["ECKM…"] }    ← ou une liste explicite

→ { "published": 9, "failed": 1,
    "results": [
      { "sku": "ECKM…", "status": "published",
        "listingId": "1102…", "price": 219.9 },
      { "sku": "ECKM…", "status": "failed",
        "error": "eBay 400 [25709] Missing required aspects" }
    ] }
Qualité des données

Ce qui fait accepter ou refuser une annonce

Bloquant — l'annonce ne partira pas

  • Aucune image. eBay en exige au moins une, en HTTPS.
  • Prix absent ou nul.
  • Titre manquant. Il est tronqué à 80 caractères, limite eBay.

Avertissement — ça passe, mais moins bien

  • !Marque absente ou réduite à « - » : publiée en Unbranded, ce qui pénalise la visibilité.
  • !Code-barres invalide : le GTIN est vérifié par checksum et omis s'il est faux, plutôt que rejeté par eBay.
  • !Poids absent : interdit les frais de port calculés, seul le forfait reste possible.
Dépannage

Les erreurs eBay les plus fréquentes

Les messages d'eBay sont laconiques. SACP les remonte tels quels, avec leur code : cherchez-le ici.

25002 / 25003A user error has occurred — invalid price / quantity

Prix à zéro ou négatif, ou stock nul. Le produit n'a pas de prix marketplace calculé : vérifiez qu'il a bien un prix de base et du stock dans SACP.

25007Invalid or missing listing policies

Une des trois Business Policies manque côté eBay. Ouvrez le diagnostic : il indique précisément laquelle (livraison, paiement ou retour).

25019Cannot revise listing / item is not active

L'offre a été retirée ou clôturée côté eBay. Retirez l'annonce dans SACP puis republiez pour repartir d'un état propre.

25604Invalid category ID

La catégorie suggérée automatiquement n'est pas une catégorie feuille. Forcez une catégorie précise dans les réglages de la connexion.

25709Missing required aspects

La catégorie exige des caractéristiques que le produit n'a pas (souvent Marque). Les produits dont la marque vaut « - » partent en « Unbranded » ; complétez la fiche pour faire mieux.

240 / limitsYou have reached your selling limit

Plafond de compte atteint. SACP interrompt automatiquement le lot en cours. Attendez le relèvement du plafond ou demandez-le à eBay.

invalid_grantÉchec à l'échange de jetons

Le RuName utilisé ne correspond pas à celui du keyset, ou le code d'autorisation a expiré (5 minutes). Relancez la connexion.

401 après coupConnexion eBay expirée

Le refresh token eBay a une durée de vie limitée (~18 mois). Le vendeur doit réautoriser SACP depuis Intégrations.

Aller plus loin

Plusieurs marchés, un seul catalogue

eBay traite chaque pays comme un marché distinct. SACP gère aujourd'hui la France, la Belgique, les Pays-Bas et l'Allemagne.

  • Le produit (SKU) est partagé entre les marchés.
  • L'offre — donc le prix — est propre à chaque marché.
  • Chaque marché exige ses propres Business Policies côté eBay.

Les pièces automobiles peuvent en outre relever d'eBay Motors et de la compatibilité véhicule, qui demande des données de fitment spécifiques.

EBAY_FREBAY_BEEBAY_NLEBAY_DE

Prêt à publier ?

Vérifiez le diagnostic, puis lancez votre premier lot.