API Spendint : POST /sn_spend_intg/spendint/catalog
Permet aux fournisseurs de publier plusieurs catalogues pour créer des produits fournisseur, des produits modèles, des contrats et des enregistrements de tarification.
- Créez de nouvelles catégories tierces et mappez ces catégories aux catégories de modèle.
- Le cas échéant, utilisez le Code UNSPSC (United Nations Standard Products and Services), puis le nom de la catégorie.
- Si UNSPSC n’est pas disponible, utilisez uniquement le nom de la catégorie.
- Après avoir mappé une catégorie tierce à une catégorie de modèle, utilisez le numéro de pièce du fabricant (MPN) pour rechercher un modèle de produit existant, le cas échéant.
- Si un modèle de produit est trouvé pour le NPP, mettez à jour le modèle de produit avec les modifications, puis créez ou mettez à jour tous les produits du fournisseur qui sont liés au modèle de produit.
- Si aucun modèle de produit n’existe pour le NPP, procédez comme suit :
- Une classe de modèle de produit est généralement disponible dans la catégorie de modèle référencée par la catégorie tierce pour le produit. Utilisez cette classe de modèle de produit pour obtenir la table du modèle de produit dans laquelle le modèle de produit doit être créé, par exemple, matériel, logiciel, consommable, etc. Si aucune classe de modèle de produit n’est disponible, créez le modèle de produit dans la table du modèle de produit de base.
- Une fois la classe de modèle de produit correcte identifiée, créez un nouveau modèle de produit dans la classe appropriée comme suit :
- Le fabricant, l’éditeur ou le fournisseur doit mapper au fabricant sur le modèle de produit.
- Le nom de produit de l’API doit correspondre au nom du modèle de produit.
- MPN de l’API doit mettre à jour le numéro de modèle.
- La description du produit provenant de l’API doit mettre à jour la description sur le modèle de produit.
- La catégorie de modèle doit être mise à jour avec la catégorie de produit référencée sur l’enregistrement de catégorie tierce.
- La catégorie de produit doit être mise à jour avec la catégorie de produit référencée sur l’enregistrement de catégorie tierce.
- Si les produits de substitution contiennent des valeurs dans l’API, créez les enregistrements de produits de substitution entre le modèle de produit actuel et les autres modèles de produits.
- S’il existe des valeurs dans les produits compatibles dans l’API, créez les enregistrements de produits compatibles entre le modèle de produit actuel et les autres modèles de produits.
- Les attributs de produit de l’API doivent être créés ou mis à jour dans la liste connexe des attributs de produit pour le modèle de produit.
- Si un modèle de produit est disponible, utilisez le numéro de pièce du fournisseur pour créer ou mettre à jour les produits du fournisseur qui sont associés au modèle de produit.
Mappage tiers
- Catégories tierces : stocke tous les enregistrements de catégories tierces que l’administrateur ShoppingHub doit mapper aux catégories de modèles internes existantes.
- Mappages de modèles tiers : stocke toutes les informations de mappage entre les modèles de produits et les catégories de modèles tiers.
- Unités tierces : stocke tous les enregistrements d’unités tierces pour que l’administrateur ShoppingHub les mappe avec les unités de produits du fournisseur.
- Mappages d’unités tierces : stocke toutes les informations de mappage entre les modèles de produits et les unités tierces.
Dates de vente du produit du fournisseur
Un produit fournisseur est interrompu et n’est plus publié dans le catalogue lorsqu’il a atteint sa date de fin de vente. Les champs Date de début de vente et Date de fin de vente du formulaire Produit du fournisseur sont renseignésvia une intégration tierce à partir de l’API de catalogue.
Tables d’état
Pour connaître l’état de la demande d’importation de produits en bloc, effectuez un appel REST dans la base de données à l’aide ServiceNow de l’API REST de la table . La réponse de l’API répertorie les enregistrements dans lesquels la demande d’importation en bloc a échoué. Pour la réponse d’importation de produits en bloc, interrogez la table Catalog Error (Erreur de catalogue) avec le paramètre suivant :
sysparm_query=outbound_error.supplier_id=<supplier_id>^outbound_error.state=20
Les détails sur l’ID de client, l’ID de fournisseur, le type d’erreur, l’ID d’ensemble de données à importer unique et l’état se trouvent dans la table État sortant, qui est la table d’erreurs parente.
Format d’URL
/api/sn_spend_intg/spendint/catalog
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| Aucune |
| Nom | Description |
|---|---|
| Mode | Prise en charge des modes asynchrone et synchrone pour l’intégration tierce. Type de données : chaîne Valeurs valides :
Valeur par défaut : asynchrone |
| Nom | Description |
|---|---|
| customer_id | Identificateur du client. Type de données : chaîne Longueur maximale : 100 |
| catalog_id | Identificateur du contenu de catalogue qui peut être acheté par un client. Type de données : chaîne Longueur maximale : 100 |
| produits | Liste des objets qui définissent les produits à créer ou à mettre à jour. Chaque transaction a une limite de 1000 produits. Type de données : tableau |
| products.available_units | Requis pour les produits qui sont en stock. Cette valeur indique la quantité d’unités disponibles pour ce produit. Type de données : chaîne Longueur maximale : 40 |
| products.available_for_country | Liste des codes des pays dans lesquels le produit du fournisseur peut être acheté. Si aucun pays n’est indiqué, un utilisateur de n’importe quel pays peut acheter le produit. Type de données : tableau |
| products.bundled_components | Valide uniquement pour les scénarios lors de l’envoi d’un lot de produits dans le cadre de la charge utile du catalogue et applicable uniquement pour les charges utiles du groupe parent. Cette valeur contient la référence aux composants du groupe d’enfants. La liste du NPP et les quantités pour les composants du groupe enfant sont mises à jour ici. Remarque : Les composants du groupe enfant et leurs détails (MPN et quantités) doivent être mappés au même fournisseur.Étant donné que le même composant de groupe enfant peut être ajouté plusieurs fois dans un groupe, la quantité saisie est l’élément de différenciation entre les mêmes composants de groupe enfant. Type de données : tableau |
| products.contract_agreement | Détails du contrat pour un produit. Remarque :
Cela n’est pas nécessaire pour les composants de groupe enfant. Type de données : objet |
| products.contract_agreement. date_de_fin_contrat | Date à laquelle la durée du contrat prend fin. Type de données : chaîne Longueur maximale : 40 Format : JJ-MM-AAAA |
| products.contract_agreement.numéro_contrat | Requis. Numéro du contrat actif associé au produit. Type de données : chaîne Longueur maximale : 100 |
| products.contract_agreement.date_début_contrat | Date à laquelle la durée du contrat commence. Type de données : chaîne Longueur maximale : 40 Format : JJ-MM-AAAA |
| products.contract_agreement.devise_négociée | Requis. Devise du prix négocié. Type de données : chaîne Longueur maximale : 40 |
| products.contract_agreement.prix_négocié | Requis. Prix unitaire d’un produit tel que négocié dans le cadre d’un contrat avec le fournisseur ou le revendeur. Type de données : chaîne Longueur maximale : 40 |
| products.delivery_time | Estimation du nombre de jours nécessaires à l’expédition d’un produit au client. Cette valeur doit représenter le nombre de jours et être un entier entier. Type de données : chaîne Longueur maximale : 40 |
| produits.images | Liste des chaînes qui spécifient les URL des images pour le produit du fournisseur. Type de données : tableau |
| produits.fabricant | Requis. Société qui fabrique, publie ou fournit le produit. Il ne s’agit pas du fournisseur ou du revendeur du produit. Type de données : chaîne Longueur maximale : 100 |
| produits.mpn | Requis. Identificateur d’un produit fourni par le fabricant, l’éditeur ou le fournisseur. Remarque :
Cette valeur n’est pas requise pour les groupes parents des revendeurs si la valeur SKU est disponible. Type de données : chaîne Longueur maximale : 100 |
| products.parent_bundle | Valide uniquement pour les scénarios lors de l’envoi d’un lot de produits dans le cadre de la charge utile du catalogue, et applicable uniquement pour les charges utiles des composants du groupe enfant. Dans le cas d’un composant de groupe enfant, la référence au parent est conservée ici. Les valeurs MPN et SKU parents sont également définies ici. Type de données : chaîne Longueur maximale : 100 |
| products.product_attributes | Liste des paires clé-valeur qui définissent les attributs du produit, par exemple, « Couleur » : « Gris sidéral ». Plusieurs attributs pour un produit sont autorisés. Toutefois, seuls les attributs qui ont un impact sur le prix ou la disponibilité des stocks doivent être fournis via l’API.Type de données : objet |
| products.product_category_name | Requis. Nom que vous saisissez si vous ne définissez pas la unspsc propriété. Ce nom est la catégorie à laquelle un produit appartient. Ce nom de catégorie peut être utilisé dans un scénario commercial pour acheter le produit. Par exemple, une multiprise peut appartenir à une catégorie Matériel de bureau. Type de données : chaîne Longueur maximale : 100 |
| products.product_description | Description complète du produit qui apparaît à un acheteur dans une expérience commerciale. Remarque :
Il est recommandé au fournisseur d’être aussi descriptif que possible ici, en particulier pour les éléments de catalogue de groupe de produits où il existe des composants de groupe enfants. Type de données : chaîne Longueur maximale : 65000 |
| products.product_name | Requis. Nom du produit. Type de données : chaîne Longueur maximale : 1000 |
| produits.sku | Requis. Numéro généré par un fournisseur qui identifie de manière unique un produit vendu par ce fournisseur. Type de données : chaîne Longueur maximale : 100 |
| produits.unité | Requis. Unité ou taux auquel le produit est vendu par le fournisseur. Par exemple, les pièces, les heures, etc. Type de données : chaîne Longueur maximale : 40 |
| Produits.UNSPSC | Requis. Identificateur que vous devez entrer si vous ne définissez pas la product_category_name propriété. Cet identificateur est l’UNSPSC de la catégorie à laquelle un produit appartient. Par exemple, le code UNSPSC 43210000 est l’identificateur de la catégorie de produits Ordinateurs. Type de données : chaîne Longueur maximale : 100 |
| supplier_id | Requis. Identificateur du revendeur ou du fournisseur auprès duquel le client peut passer des commandes. Type de données : chaîne Longueur maximale : 100 |
| third_party_import_id | Identificateur qui permet à un tiers de transmettre une valeur de chaîne pour identifier de manière unique un ensemble de données importées. Type de données : chaîne Longueur maximale : 100 |
En-têtes
Les en-têtes de demande et de réponse suivants s’appliquent uniquement à cette action HTTP ou s’appliquent à cette action d’une manière distincte.
| En-tête | Description |
|---|---|
| Accepter | Format des données du corps de la réponse. Types pris en charge : application/json ou application/xml. Par défaut : application/json |
| En-tête | Description |
|---|---|
| Aucune |
Codes d'état
Les codes d’état suivants s’appliquent à cette action HTTP.
| Code d'état | Description |
|---|---|
| réussite | Réussi. La demande a été traitée avec succès. |
| échec | En échec. La demande a été traitée avec des erreurs. |
Paramètres du corps de réponse (JSON)
Ces paramètres de corps de réponse sont reçus lorsqu’ils sont interrogés en mode synchrone.| Nom | Description |
|---|---|
| error_response_body | Description des erreurs, répertoriées par SKU, mpn et message d’erreur. Type de données : tableau |
| error_response_body.message_erreur | Message d’erreur détaillé. Type de données : chaîne |
| status_code | État de la réponse tel que « réussite » ou « échec ». Type de données : chaîne |
Demande cURL
curl "https://instance.service-now.com/api/sn_spend_intg/spendint/catalog" \
--request POST \
--header "Accept:application/json" \
--user 'username':'password'
{"root": [{
"customer_id": "AB-1234323",
"catalog_id": "ACME CORP-12347898",
"supplier_id": "SUP-123456",
"third_party_import_id": "DELL1234567",
"products": [
{
"product_name": "Apple MacBook Pro 13 Core i7",
"mpn": "Z0WQ-20004301931",
"sku": "55788741",
"manufacturer": "Apple",
"product_category_name": "Computer",
"parent_bundle": "920-0045362002",
"bundled_components": {
"mpn": "Z0WQ-20004301931",
"quantity": "4",
},
"unspsc": "43211500",
"product_description": "Apple MacBook Pro 13 Core i7 2.8GHz 16GB 512GB - Touch Bar - Space Gray",
"product_attributes": {
"Color": "Space Grey",
"RAM": "16GB",
"Screen Size": "13inch"
},
"images": ["http://test123.image1.png", "http://test123.image2.jpeg"],
"unit": "Each",
"available_units": "4",
"available_for_country": ["US","IN","GB"],
"delivery_time": "4",
"contract_agreement": {
"contract_number": "34567892",
"contract_start_date": "YYYY-MM-DD",
"contract_end_date": "YYYY-MM-DD",
"negotiated_price": "456",
"negotiated_currency ": "USD"
}
}
]
}
]}
Réponses possibles :
// Success response:
{
"result": {
"response": "success"
}
}
// Error response:
{
"result": {
"response": [
{
"customer_id": "AB-1234323",
"supplier_id": "SUP-123456",
"third_party_import_id": "DELL1234567",
"status_code": "failure",
"error_response_body": [
{
"sku": "55788741",
"mpn": "Z0WQ-20004301931",
"error_message": "Field Value empty/Formatting issue Negotiated currency \n"
}
]
}
]
}
}