PromoStandards Attraction

L'utilisation de nos services PromoStandards est réservée aux utilisateurs ayant obtenu des identifiants auprès d'Attraction. Connectez vos outils promotionnels aux données produits, aux stocks, aux médias et aux prix avec nos services SOAP en lecture seule.

Services

PromoStandards dessert le marché promotionnel. Chaque service possède sa propre adresse HTTPS et sa propre version. Importez son WSDL public dans un client SOAP 1.1. Le WSDL référence les fichiers XSD qui définissent les champs, les espaces de noms et l'ordre des éléments des requêtes et des réponses.

Product Data 2.0.0

Descriptions des produits, variantes, paliers de prix publics et identifiants des produits offerts.

Inventory 2.0.0

Stocks par variante de produit, avec filtres par identifiant de variante, couleur et taille.

Media Content 1.1.0

URL des médias produits, avec filtres par type de média, variante et classification.

Product Pricing and Configuration 1.0.0

Paliers de prix publics et nets standards A3 par variante, avec les devises offertes au point d'expédition. Le chemin de ce service est PPC.

Accès

Demandez vos identifiants PromoStandards à promo@attraction.com. Indiquez votre entreprise et l'intégration à connecter.

Chaque opération exige wsVersion, id et password dans le corps XML de la requête. Utilisez la version du service appelé dans wsVersion. Même si certains schémas du standard indiquent que password est facultatif, Attraction l'exige.

Ces identifiants sont distincts des clés de l'API REST. Une clé Bearer créée dans le parcours d'accès à l'API n'authentifie pas une requête PromoStandards. Les WSDL et les XSD sont publics et se téléchargent sans identifiants.

Opérations et paramètres

Utilisez les noms d'opérations et les types de requêtes du WSDL. productId identifie un produit; partId identifie une de ses variantes. Récupérez ces identifiants dans Product Data plutôt que de les construire à partir d'un nom de produit, d'une couleur ou d'une taille.

Product Data

  • getProductSellable : envoyez isSellable=true pour obtenir les produits et les variantes offerts. Les filtres facultatifs sont productId, partId et lineName. Précisez localizationCountry et localizationLanguage selon le marché visé.
  • getProduct : exige productId, localizationCountry et localizationLanguage. Les filtres facultatifs sont partId, colorName et ApparelSizeArray.
  • getProductDateModified : exige changeTimeStamp et renvoie les identifiants des produits modifiés strictement après cette date. Utilisez un horodatage ISO 8601 avec fuseau horaire, puis récupérez les fiches à jour.
  • getProductCloseOut : renvoie actuellement une liste de liquidation vide.

Inventory

  • getFilterValues : exige productId et renvoie les identifiants de variantes, les tailles et les couleurs utilisables pour filtrer les stocks.
  • getInventoryLevels : exige productId. Le paramètre facultatif Filter accepte partIdArray, LabelSizeArray et PartColorArray. Interprétez la disponibilité selon les règles de stock.

Media Content

  • getMediaContent : exige productId et mediaType (Image, Video, Audio ou Document). Les filtres facultatifs sont partId et classType; cultureName précise le marché. Un filtre de variante sélectionne les médias de sa couleur et ceux communs au produit.
  • getMediaDateModified : exige changeTimeStamp et renvoie les identifiants des produits et des variantes dont les médias ont changé strictement après cette date. Utilisez un horodatage ISO 8601 avec fuseau horaire.

Un type de média valide peut renvoyer une liste vide si aucun contenu ne correspond. Media Content 1.1.0 utilise les espaces de noms 1.0.0 de son WSDL officiel. Gardez wsVersion=1.1.0 sans modifier la version des espaces de noms.

Pricing and Configuration

  • getFobPoints : envoyez productId pour obtenir l'identifiant du point d'expédition et les devises publiées pour ce produit. Réutilisez le fobId reçu dans les requêtes de prix.
  • getConfigurationAndPricing : exige productId, currency, fobId, priceType, localizationCountry, localizationLanguage et configurationType. partId est facultatif. Utilisez priceType=List pour les prix publics ou priceType=Net pour les prix nets standards A3, avec configurationType=Blank.
  • getAvailableLocations, getAvailableCharges et getDecorationColors : renvoient des réponses vides pour les produits valides. Les configurations et les prix de décoration ne sont pas publiés par ce service.

Exemples XML

Remplacez YOUR_ID et YOUR_PASSWORD par vos identifiants PromoStandards. Lorsqu'un produit est requis, remplacez PRODUCT_ID par un identifiant obtenu avec Product Data. Les exemples interrogent le marché canadien en anglais; la section Portée des données précise les paramètres américains.

Envoyez l'enveloppe XML avec HTTP POST, Content-Type: text/xml; charset=utf-8 et le SOAPAction de l'opération. Par exemple, enregistrez la première enveloppe dans request.xml, puis envoyez :

bash
curl --request POST \
  --header 'Content-Type: text/xml; charset=utf-8' \
  --header 'SOAPAction: "getProductSellable"' \
  --data-binary @request.xml \
  'https://promostandards.api.attraction.com/ProductData/2.0.0/'

Trouver les identifiants des produits offerts

Adresse Product Data; SOAPAction: "getProductSellable".

xml
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:svc="http://www.promostandards.org/WSDL/ProductDataService/2.0.0/"
  xmlns:shar="http://www.promostandards.org/WSDL/ProductDataService/2.0.0/SharedObjects/">
  <soap:Body>
    <svc:GetProductSellableRequest>
      <shar:wsVersion>2.0.0</shar:wsVersion>
      <shar:id>YOUR_ID</shar:id>
      <shar:password>YOUR_PASSWORD</shar:password>
      <shar:localizationCountry>CA</shar:localizationCountry>
      <shar:localizationLanguage>en</shar:localizationLanguage>
      <shar:isSellable>true</shar:isSellable>
    </svc:GetProductSellableRequest>
  </soap:Body>
</soap:Envelope>

Lire les stocks d'un produit

Adresse Inventory; SOAPAction: "getInventoryLevels".

xml
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:svc="http://www.promostandards.org/WSDL/Inventory/2.0.0/"
  xmlns:shar="http://www.promostandards.org/WSDL/Inventory/2.0.0/SharedObjects/">
  <soap:Body>
    <svc:GetInventoryLevelsRequest>
      <shar:wsVersion>2.0.0</shar:wsVersion>
      <shar:id>YOUR_ID</shar:id>
      <shar:password>YOUR_PASSWORD</shar:password>
      <shar:productId>PRODUCT_ID</shar:productId>
    </svc:GetInventoryLevelsRequest>
  </soap:Body>
</soap:Envelope>

Lire les images d'un produit

Adresse Media Content; SOAPAction: "getMediaContent".

xml
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:svc="http://www.promostandards.org/WSDL/MediaService/1.0.0/"
  xmlns:shar="http://www.promostandards.org/WSDL/MediaService/1.0.0/SharedObjects/">
  <soap:Body>
    <svc:GetMediaContentRequest>
      <shar:wsVersion>1.1.0</shar:wsVersion>
      <shar:id>YOUR_ID</shar:id>
      <shar:password>YOUR_PASSWORD</shar:password>
      <shar:cultureName>en-CA</shar:cultureName>
      <shar:mediaType>Image</shar:mediaType>
      <shar:productId>PRODUCT_ID</shar:productId>
    </svc:GetMediaContentRequest>
  </soap:Body>
</soap:Envelope>

Lire les paliers de prix publics

Adresse PPC; SOAPAction: "getConfigurationAndPricing". Remplacez FOB_ID par l'identifiant reçu de getFobPoints et choisissez une devise que cette opération indique pour le produit. L'exemple demande les prix publics; utilisez priceType=Net pour obtenir les prix nets standards A3 lorsqu'ils sont publiés pour ce produit et cette devise.

xml
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:svc="http://www.promostandards.org/WSDL/PricingAndConfiguration/1.0.0/"
  xmlns:shar="http://www.promostandards.org/WSDL/PricingAndConfiguration/1.0.0/SharedObjects/">
  <soap:Body>
    <svc:GetConfigurationAndPricingRequest>
      <shar:wsVersion>1.0.0</shar:wsVersion>
      <shar:id>YOUR_ID</shar:id>
      <shar:password>YOUR_PASSWORD</shar:password>
      <shar:productId>PRODUCT_ID</shar:productId>
      <shar:currency>CAD</shar:currency>
      <shar:fobId>FOB_ID</shar:fobId>
      <shar:priceType>List</shar:priceType>
      <shar:localizationCountry>CA</shar:localizationCountry>
      <shar:localizationLanguage>en</shar:localizationLanguage>
      <shar:configurationType>Blank</shar:configurationType>
    </svc:GetConfigurationAndPricingRequest>
  </soap:Body>
</soap:Envelope>

Portée des données

Langues et marchés

Product Data et PPC acceptent localizationLanguage=en avec localizationCountry=CA ou US. Les données produits en français ne sont pas disponibles dans PromoStandards actuellement. Product Data renvoie le catalogue publié pour le pays choisi.

Pour Media Content, utilisez cultureName=en-CA ou en-US. Sans ce paramètre, le service utilise l'anglais américain. Le français n'est pas pris en charge. Inventory n'accepte pas de paramètre de langue ou de pays.

Prix

Product Data publie les grilles de prix publics MSRP. Dans PPC, priceType=List renvoie les prix publics et priceType=Net renvoie la grille nette standard A3 lorsqu'elle est disponible pour le produit et la devise. Si la grille nette est absente, le service signale que le type de prix demandé n'est pas disponible.

Les identifiants PromoStandards ne sélectionnent pas le palier de votre compte. La grille A3 est commune aux intégrations; elle ne représente pas les prix nets personnalisés de votre compte. priceType=Customer n'est pas pris en charge. PPC accepte uniquement la configuration Blank; Decorated n'est pas pris en charge.

Les lettres de rabais accompagnent uniquement les prix List. Les prix Net sont déjà des montants nets et ne comportent pas de lettre de rabais.

Demandez CAD ou USD seulement si le produit possède une grille publiée dans cette devise. getFobPoints indique les devises disponibles; localizationCountry ne convertit pas les prix et ne crée pas de grille manquante. Utilisez les paliers et les prix par taille renvoyés par le service, et respectez les dates d'expiration publiées.

Stocks et produits sans quantité en stock

Pour les produits Ethica à blocs de couleurs faits sur commande et les produits hyper custom Jameo, Inventory renvoie manufacturedItem=true et buyToOrder=true, sans quantityAvailable. Product Data indique isOnDemand=true pour chaque variante.

Une quantité absente ne signifie ni un stock nul ni une promesse chiffrée de stock illimité. Conservez ces indicateurs lors de l'importation. D'autres variantes peuvent aussi omettre quantityAvailable lorsqu'aucune quantité n'est disponible; ne remplacez pas cette absence par zéro. Inventory ne publie pas replenishmentLeadTime actuellement.

Erreurs et règles d'intégration

Consultez la référence des erreurs PromoStandards pour interpréter les messages de service et décider s'il faut réessayer. Elle distingue les erreurs applicatives dans une réponse HTTP réussie des SOAP Faults et couvre aussi les réponses HTTP 429 et 503.

La page Developers maintient les limites d'appel, les versions et dépréciations, le journal des changements et les consignes de soutien. Chaque règle précise l'interface concernée.