

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Connexion à Salesforce Commerce Cloud
<a name="connecting-to-salesforce-commerce-cloud"></a>

 L'API B2C Commerce est un ensemble d'instances de commerce B2C RESTful APIs permettant d'interagir avec les instances de commerce B2C. Elle porte plusieurs noms différents : API Salesforce Commerce, l’acronyme SCAPI ou simplement API Commerce.

 L’API permet aux développeurs de créer un large éventail d’applications : des vitrines complètes aux outils personnalisés pour les commerçants, afin d’améliorer Business Manager. Pour tous les clients B2C Commerce, l’API est disponible gratuitement. 

 L'API est divisée en deux groupes principaux APIs : Shopper APIs et Admin APIs. Au sein de chaque groupe, elles sont divisées en familles d’API et en petits groupes axés sur les fonctionnalités associées. 

**Topics**
+ [AWS Glue support pour Salesforce Commerce Cloud](salesforce-commerce-cloud-support.md)
+ [Politiques contenant les opérations API pour la création et l’utilisation des connexions](salesforce-commerce-cloud-configuring-iam-permissions.md)
+ [Configuration de Salesforce Commerce Cloud](salesforce-commerce-cloud-configuring.md)
+ [Configuration des connexions Salesforce Commerce Cloud](salesforce-commerce-cloud-configuring-connections.md)
+ [Lecture à partir d’entités Salesforce Commerce Cloud](salesforce-commerce-cloud-reading-from-entities.md)
+ [Référence des options de connexion Salesforce Commerce Cloud](salesforce-commerce-cloud-connection-options.md)
+ [Limitations](salesforce-commerce-cloud-connector-limitations.md)

# AWS Glue support pour Salesforce Commerce Cloud
<a name="salesforce-commerce-cloud-support"></a>

AWS Glue prend en charge Salesforce Commerce Cloud comme suit :

**Prise en charge en tant que source ?**  
Oui. Vous pouvez utiliser des tâches AWS Glue ETL pour interroger des données depuis Salesforce Commerce Cloud.

**Prise en charge en tant que cible ?**  
Non.

**Versions de l’API Salesforce Commerce Cloud prises en charge**  
 v1. 

# Politiques contenant les opérations API pour la création et l’utilisation des connexions
<a name="salesforce-commerce-cloud-configuring-iam-permissions"></a>

 L'exemple de politique suivant décrit les AWS autorisations requises pour créer et utiliser des connexions. Si vous créez un rôle, créez une politique contenant les éléments suivants : 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Vous pouvez également utiliser les politiques IAM gérées suivantes pour autoriser l’accès :
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Accorde l'accès aux ressources dont AWS Glue les différents processus ont besoin pour s'exécuter en votre nom. Ces ressources incluent AWS Glue Amazon S3, IAM, CloudWatch Logs et Amazon EC2. Si vous suivez la convention de dénomination des ressources spécifiée dans cette politique, AWS Glue les processus disposent des autorisations requises. Cette politique est généralement attachée aux rôles spécifiés lorsque vous définissez les crawlers, les tâches et les points de terminaison de développement. 
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Accorde un accès complet aux AWS Glue ressources lorsqu'une identité à laquelle la politique est attachée utilise la console AWS de gestion. Si vous suivez la convention de dénomination pour les ressources spécifiées dans la politique, les utilisateurs bénéficient des capacités totales de la console. Cette politique s'applique généralement aux utilisateurs de la AWS Glue console. 

# Configuration de Salesforce Commerce Cloud
<a name="salesforce-commerce-cloud-configuring"></a>

Avant de pouvoir AWS Glue transférer des données depuis Salesforce Commerce Cloud, vous devez répondre aux exigences suivantes :

## Configuration requise
<a name="salesforce-commerce-cloud-configuring-min-requirements"></a>
+  Vous disposez d’une application client Salesforce Commerce Cloud avec un ID client et un secret client. 
+  Votre compte Salesforce Commerce Cloud est activé pour accéder à l’API. 

 Si vous répondez à ces exigences, vous êtes prêt à vous connecter AWS Glue à votre compte Salesforce Commerce Cloud. Pour les connexions classiques, vous n’avez rien d’autre à faire dans Salesforce Commerce Cloud. 

# Configuration des connexions Salesforce Commerce Cloud
<a name="salesforce-commerce-cloud-configuring-connections"></a>

 Salesforce Commerce Cloud prend en charge le type de subvention CLIENT CREDENTIALS pour OAuth2. 
+  Ce type de subvention est considéré comme bidimensionnel OAuth 2.0 car il est utilisé par les clients pour obtenir un jeton d'accès en dehors du contexte d'un utilisateur. AWS Glue est capable d'utiliser l'identifiant et le secret du client pour authentifier Salesforce Commerce Cloud, APIs qui sont fournis par des services personnalisés que vous définissez. 
+  Chaque service personnalisé appartient à un utilisateur régi uniquement par l’API, qui dispose d’un ensemble de rôles et d’autorisations autorisant le service à effectuer des actions spécifiques. Un jeton d’accès est associé à un seul service personnalisé. 
+  Ce type d’autorisation donne lieu à un jeton d’accès de courte durée qui peut être renouvelé en appelant un point de terminaison d’identité. 
+  Pour plus d’informations sur la documentation de Salesforce Commerce Cloud relative à la génération des informations d’identification client, consultez la [documentation Salesforce](https://developer.salesforce.com/docs/commerce/commerce-api/guide/authorization.html). 

Pour configurer une connexion Salesforce Commerce Cloud :

1.  Dans AWS Secrets Manager, créez un secret avec les informations suivantes. Il est nécessaire de créer un secret pour chaque connexion dans AWS Glue. 

   1.  Pour l’application connectée gérée par le client : le secret doit contenir le secret du consommateur de l’application connectée avec USER\$1MANAGED\$1CLIENT\$1APPLICATION\$1CLIENT\$1SECRET comme clé. 

1. Dans AWS Glue Studio, créez une connexion sous **Connexions de données** en suivant les étapes ci-dessous : 

   1.  Sous Connexions de données, choisissez **Créer une connexion**. 

   1. Lorsque vous sélectionnez une **source de données**, sélectionnez Salesforce Commerce Cloud.

   1. Entrez votre **code abrégé**, votre **identifiant d’organisation** et votre **identifiant de site** Salesforce Commerce Cloud.

   1. Sélectionnez l’URL du domaine Salesforce Commerce Cloud de votre compte Salesforce Commerce Cloud.

   1.  Sélectionnez le rôle IAM qui AWS Glue peut assumer les actions suivantes et qui dispose des autorisations nécessaires pour les actions suivantes : 

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  Indiquez les OAuth champs d'application (facultatif, application client gérée par l'utilisateur) ClientId du Salesforce Commerce Cloud auquel vous souhaitez vous connecter. 

   1.  Sélectionnez celui `secretName` que vous souhaitez utiliser pour cette connexion AWS Glue afin d'y placer les jetons. 

   1.  Sélectionnez les options réseau si vous souhaitez utiliser votre réseau. 

1.  Accordez au rôle IAM associé à votre AWS Glue travail l'autorisation de lire`secretName`. 

1.  Dans la configuration de votre AWS Glue tâche, fournissez `connectionName` une **connexion réseau supplémentaire**. 

# Lecture à partir d’entités Salesforce Commerce Cloud
<a name="salesforce-commerce-cloud-reading-from-entities"></a>

 **Conditions préalables** 
+  Un objet Salesforce Commerce Cloud à partir duquel vous souhaitez lire. Reportez-vous au tableau des entités prises en charge ci-dessous pour vérifier les entités disponibles. 

 **Entités prises en charge** 


| Entité | Peut être filtré | Limit prise en charge | Order by prise en charge | Select prise en charge\$1 | Partitionnement pris en charge | 
| --- | --- | --- | --- | --- | --- | 
| Missions | Oui | Oui | Oui | Oui | Oui | 
| Campagnes | Oui | Oui | Oui | Oui | Oui | 
| Catalogues | Oui | Oui | Oui | Oui | Oui | 
| Catégories | Oui | Oui | Oui | Oui | Oui | 
| Coupons | Oui | Oui | Oui | Oui | Oui | 
| Gift Certificates | Oui | Oui | Oui | Oui | Oui | 
| Produits | Oui | Oui | Oui | Oui | Oui | 
| Promotions | Oui | Oui | Oui | Oui | Oui | 
| Source Code Groups | Oui | Oui | Oui | Oui | Oui | 

 **Exemple** 

```
salesforce_commerce_cloud_read = glueContext.create_dynamic_frame.from_options(
     connection_type="SalesforceCommerceCloud",
     connection_options={
         "connectionName": "connectionName",
         "ENTITY_NAME": "campaign",
         "API_VERSION": "v1"      
     }
)
```

 **Détails des entités et des champs Salesforce Commerce Cloud** 

 Liste des entités : 
+  Missions : [https://developer.salesforce.com/docs/commerce/commerce-api/references/assignments]( https://developer.salesforce.com/docs/commerce/commerce-api/references/assignments) 
+  Campagnes : [https://developer.salesforce.com/docs/commerce/commerce-api/references/campaigns](https://developer.salesforce.com/docs/commerce/commerce-api/references/campaigns) 
+  Catalogues : [https://developer.salesforce.com/docs/commerce/commerce-api/references/catalogs](https://developer.salesforce.com/docs/commerce/commerce-api/references/catalogs) 
+  Catégories : [https://developer.salesforce.com/docs/commerce/commerce-api/references/catalogs? ](https://developer.salesforce.com/docs/commerce/commerce-api/references/catalogs?meta=searchCategories)META = Catégories de recherche 
+  Chèques-cadeaux : [https://developer.salesforce.com/docs/commerce/commerce-api/references/gift-chèques-cadeaux](https://developer.salesforce.com/docs/commerce/commerce-api/references/gift-certificates) 
+  Produits : [https://developer.salesforce.com/docs/commerce/commerce-api/references/products](https://developer.salesforce.com/docs/commerce/commerce-api/references/products) 
+  Promotions : [https://developer.salesforce.com/docs/commerce/commerce-api/references/promotions](https://developer.salesforce.com/docs/commerce/commerce-api/references/promotions) 
+  Groupes de code source : [https://developer.salesforce.com/docs/commerce/commerce-api/references/source-code-groups](https://developer.salesforce.com/docs/commerce/commerce-api/references/source-code-groups) 

 **Requêtes de partitionnement** 

 Les options Spark supplémentaires `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` et `NUM_PARTITIONS` peuvent être indiquées si vous souhaitez utiliser la simultanéité dans Spark. Avec ces paramètres, la requête d’origine serait divisée en `NUM_PARTITIONS` nombres de sous-requêtes pouvant être exécutées simultanément par les tâches Spark. 
+  `PARTITION_FIELD` : le nom du champ à utiliser pour partitionner la requête. 
+  `LOWER_BOUND` : une valeur limite inférieure inclusive du champ de partition choisi. 

   Pour le champ Date, nous acceptons le format de date Spark utilisé dans les requêtes SQL Spark. Exemples de valeurs valides : `"2024-02-06"`. 
+  `UPPER_BOUND` : une valeur limite supérieure exclusive du champ de partition choisi. 
+  `NUM_PARTITIONS` : nombre de partitions. 

 Les détails relatifs à la prise en charge des champs de partitionnement par entité sont présentés dans le tableau ci-dessous : 


| Entité | Champ de partitionnement | DataType | 
| --- | --- | --- | 
| Campagnes | lastModified | DateTime | 
| Campagnes | startDate | DateTime | 
| Campagnes | endDate | DateTime | 
| Catalogues | creationDate | DateTime | 
| Catégories | creationDate | DateTime | 
| Gift Certificates | merchantId | String | 
| Gift Certificates | creationDate | DateTime | 
| Produits | creationDate | DateTime | 
| Produits | lastModified | DateTime | 
| Source Code Groups | creationDate | DateTime | 
| Source Code Groups | startTime | DateTime | 
| Source Code Groups | endTime | DateTime | 

 **Exemple** 

```
 salesforceCommerceCloud_read = glueContext.create_dynamic_frame.from_options(
     connection_type="SalesforceCommerceCloud",
     connection_options={
         "connectionName": "connectionName",
         "ENTITY_NAME": "coupons",
         "API_VERSION": "v1",
         "PARTITION_FIELD": "creationDate",
         "LOWER_BOUND": "2020-05-01T20:55:02.000Z",
         "UPPER_BOUND": "2024-07-11T20:55:02.000Z",
         "NUM_PARTITIONS": "10"
     }
)
```

# Référence des options de connexion Salesforce Commerce Cloud
<a name="salesforce-commerce-cloud-connection-options"></a>

Les options de connexion pour Salesforce Commerce Cloud sont les suivantes :
+  `ENTITY_NAME`(Chaîne) - (Obligatoire) Utilisé pour la lecture. Le nom de votre objet dans Salesforce Commerce Cloud. 
+  `API_VERSION`(Chaîne) - (Obligatoire) Utilisé pour la lecture/l’écriture. Version d’API Rest de Salesforce Commerce Cloud que vous souhaitez utiliser. Exemple : v1. 
+  `SELECTED_FIELDS`(Liste<Chaîne>) - Par défaut : vide (SELECT \$1). Utilisé pour la lecture. Colonnes que vous souhaitez sélectionner pour l’objet. 
+  `FILTER_PREDICATE`(Chaîne) - Par défaut : vide. Utilisé pour la lecture. Doit être au format SQL Spark. 
+  `QUERY`(Chaîne) - Par défaut : vide. Utilisé pour la lecture. Requête Spark SQL complète. 
+  `PARTITION_FIELD`(Chaîne) - Utilisé pour la lecture. Champ à utiliser pour partitionner la requête. 
+  `LOWER_BOUND`(Chaîne) - Utilisé pour la lecture. Une valeur limite inférieure inclusive du champ de partition choisi. 
+  `UPPER_BOUND`(Chaîne) - Utilisé pour la lecture. Une valeur limite supérieure exclusive du champ de partition choisi. 
+  `NUM_PARTITIONS`(Entier) - Par défaut : 1. Utilisé pour la lecture. Nombre de partitions pour la lecture. 

# Limitations
<a name="salesforce-commerce-cloud-connector-limitations"></a>

Les restrictions du connecteur Salesforce Commerce Cloud sont les suivantes :
+ Le filtre Contient ne fonctionne pas comme prévu lors du partitionnement.
+ L’entité de CDN Zones ne prend pas en charge les instances d’environnement de test (sandbox) et ne prend en charge que les types d’instances de développement et de production. Pour plus d'informations, consultez [https://help.salesforce.com/s/ArticleView ? id=cc.b2c\$1embedded\$1cdn\$1overview.htm](https://help.salesforce.com/s/articleView?id=cc.b2c_embedded_cdn_overview.htm).
+ Dans Salesforce Commerce Cloud, il n’existe aucun point de terminaison d’API pour récupérer les métadonnées dynamiques. Par conséquent, aucune disposition ne permet de prendre en charge les champs personnalisés dans l’entité Produit et Catégorie.
+ L’identifiant du site est un paramètre de requête obligatoire. Vous devez transmettre la valeur de l’identifiant du site via le paramètre de connecteur personnalisé. Pour plus d’informations, consultez [Base URL and Request Formation](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html).
+ Vous pouvez appliquer des filtres sur un maximum de deux champs (à l’exception de Niveaux, le cas échéant) dans une seule demande d’API en combinant différents opérateurs, comme indiqué dans le tableau ci-dessous :    
<a name="salesforce-commerce-cloud-limitations-filters"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/salesforce-commerce-cloud-connector-limitations.html)
+ Dans certaines entités, le type de données des champs lors de la récupération est différent de celui utilisé comme champs consultables. Par conséquent, aucune fonctionnalité de filtrage n’est prévue pour ces champs. Le tableau suivant fournit des informations détaillées sur ces champs.     
<a name="salesforce-commerce-cloud-limitations-filters-provision"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/salesforce-commerce-cloud-connector-limitations.html)