API Spendint - POST /sn_spend_intg/spendint/catalog
Permettez aux fournisseurs de publier plusieurs catalogues et de créer des produits du fournisseur, des produits de modèle, des contrats et des enregistrements de tarification.
- Créer toutes les nouvelles catégories tierces et les mapper vers des catégories de modèle.
- S'il est disponible, utilisez le Code des produits et services standard des Nations Unies (UNSPSC), puis le nom de la catégorie.
- Si l'UNSPSC n'est pas disponible, utilisez uniquement le nom de la catégorie.
- Après le mappage d'une catégorie tierce à une catégorie de modèle, utiliser 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 MPN, mettez-le à jour avec les changements requis, puis créez ou mettez à jour les produits du fournisseur associés au modèle de produit.
- Si aucun modèle de produit n'existe pour le MPN, procédez comme suit :
- En général, une classe de modèle de produit est 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 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 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 être mappé vers le fabricant sur le modèle de produit.
- Le nom du produit de l'API doit être mappé vers le nom sur le modèle de produit.
- Le MPN de l'API doit mettre à jour le numéro de modèle.
- La description du produit 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 la 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 la catégorie tierce.
- Si des valeurs existent dans les produits de remplacement de l'API, créez les enregistrements de produits de remplacement entre le modèle de produit actuel et les autres modèles de produits.
- Si des valeurs existent dans les produits compatibles de 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 référence du fournisseur pour créer ou mettre à jour les produits du fournisseur qui y sont associés.
Mappage tiers
- Catégories tierces : stocke tous les enregistrements de catégories tierces que l'administrateur ShoppingHub doit mapper avec les catégories de modèles existantes internes.
- 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 que l'administrateur ShoppingHub doit mapper 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 catégories d'unités tierces.
Dates de vente de produits du fournisseur
Un produit du 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 de produit du fournisseur sont renseignés via l'intégration tierce à partir de l'API de catalogue.
Tables d'états
Pour connaitre l'état de la demande d'importation de produits en bloc, effectuez un appel REST dans la base de données ServiceNow à l'aide de l'API REST table. La réponse de l'API répertorie les enregistrements dans lesquels la demande d'importation de produits en bloc a échoué. Pour obtenir la réponse d'importation de produits en bloc, interrogez la table d'erreurs de catalogue à l'aide du paramètre suivant :
sysparm_query=outbound_error.supplier_id=<supplier_id>^outbound_error.state=20
Les informations sur l'ID client, l'ID du fournisseur, le type d'erreur, l'ID de jeu d'importation 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 |
|---|---|
| Aucun |
| Nom | Description |
|---|---|
| mode | Prise en charge des modes asynchrones et synchrones pour les intégrations tierces. Type de données : chaîne Valeurs valides :
Valeur par défaut : async |
| Nom | Description |
|---|---|
| customer_id | Identificateur du client. Type de données : chaîne Longueur maximale : 100 |
| catalog_id | Identificateur du contenu de catalogue qu'un client peut acheter. Type de données : chaîne Longueur maximale : 100 |
| products | Liste d'objets qui définissent les produits à créer ou à mettre à jour. Chaque transaction a une limite de 1 000 produits. Type de données : tableau |
| products.available_units | Requis pour les produits conservés 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 de pays dans lesquels le produit du fournisseur peut être acheté. Si aucun pays n'est indiqué, le produit peut être acheté par un utilisateur dans tous les pays. Type de données : tableau |
| products.bundled_components | Valide uniquement pour les scénarios d'envoi d'un groupe de produits avec la charge utile du catalogue et applicable uniquement aux charges utiles du groupe parent. Cette valeur contient la référence aux composants des groupes enfants. La liste du MPN et les quantités des composants des groupes enfants sont conservées ici. Remarque : Les composants des groupes enfants et leurs détails (MPN et quantités) doivent être mappés vers le même fournisseur.Le même composant de groupe enfant pouvant être ajouté plusieurs fois à un groupe, la quantité saisie est ce qui différencie les différents composants identiques dans les groupes enfants. Type de données : tableau |
| products.contract_agreement | Détails du contrat d'un produit. Remarque :
Cela n'est pas requis pour les composants de groupe enfant. Type de données : objet |
| products.contract_agreement.contract_end_date | Date de fin du contrat. Type de données : chaîne Longueur maximale : 40 Format : AAAA-MM-JJ |
| products.contract_agreement.contract_number | Requis. Numéro du contrat actif associé au produit. Type de données : chaîne Longueur maximale : 100 |
| products.contract_agreement.contract_start_date | Date de début du contrat. Type de données : chaîne Longueur maximale : 40 Format : AAAA-MM-JJ |
| products.contract_agreement.negotiated_currency | Requis. Devise du prix négocié. Type de données : chaîne Longueur maximale : 40 |
| products.contract_agreement.négocier_price | Requis. Prix unitaire d'un produit négocié via 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écessaire pour envoyer un produit au client. Cette valeur doit représenter le nombre de jours et être un nombre entier. Type de données : chaîne Longueur maximale : 40 |
| products.images | Liste de chaînes qui spécifient les URL des images pour le produit du fournisseur. Type de données : tableau |
| products.manufacturer | Requis. Société qui fabrique, publie ou fournit le produit. Il ne s'agit pas du fournisseur ni du revendeur du produit. Type de données : chaîne Longueur maximale : 100 |
| products.mpn | Requis. Identificateur d'un produit fourni par le fabricant, l'éditeur ou le fournisseur. Remarque :
Celui-ci n'est pas requis pour les groupes parents de revendeurs lorsque la valeur UGS est disponible. Type de données : chaîne Longueur maximale : 100 |
| products.parent_bundle | Valide uniquement pour les scénarios d'envoi d'un groupe de produits avec la charge utile du catalogue et applicable uniquement aux charges utiles de composants des groupes enfants. Dans le cas d'un composant de groupe enfant, la référence au parent est conservée ici. Les valeurs MPN et UGS parentes sont également définies ici. Type de données : chaîne Longueur maximale : 100 |
| products.product_attributes | Liste de paires clé-valeur qui définissent les attributs du produit ; par exemple, « Couleur » : « Espace gris ». Un produit peut avoir plusieurs attributs. Toutefois, seuls les attributs ayant une incidence sur la tarification ou la disponibilité du stock 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 propriété unspsc. Il s'agit de 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 rallonge électrique peut appartenir à la 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 dans une expérience de vente pour un acheteur. Remarque :
Ici, il est recommandé que le fournisseur soit aussi descriptif que possible, notamment pour ce qui concerne les éléments de catalogue de lots de produits pour lesquels des composants de groupes enfants existent. Type de données : chaîne Longueur maximale : 65 000 |
| products.product_name | Requis. Nom du produit. Type de données : chaîne Longueur maximale : 1 000 |
| products.sku | Requis. Nombre généré par un fournisseur qui identifie de manière unique un produit qu'il vend. Type de données : chaîne Longueur maximale : 100 |
| products.unit | Requis. Unité ou taux appliqué à ce produit lors de sa vente par le fournisseur. Par exemple, éléments, heures, etc. Type de données : chaîne Longueur maximale : 40 |
| products.unspsc | Requis. Identificateur que vous saisissez si vous ne définissez pas la propriété product_category_name. Il s'agit de 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 permettant à 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 à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte.
| En-tête | Description |
|---|---|
| Accepter | Format de données du corps de la réponse. Types pris en charge : application/json ou application/xml. Valeur par défaut : application/json |
| En-tête | Description |
|---|---|
| Aucun |
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é correctement traitée. |
| échec | En échec. La demande présente des erreurs de traitement. |
Paramètres de corps de réponse (JSON)
Les paramètres de corps de réponse suivants sont reçus lors d'une interrogation en mode synchrone.| Nom | Description |
|---|---|
| error_response_body | Description des erreurs, répertoriées par référence UGS, MPN et message d'erreur. Type de données : tableau |
| error_response_body.error_message | 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"
}
]
}
]
}
}