

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 à WooCommerce
<a name="connecting-to-data-woocommerce"></a>

WooCommerce est une solution logicielle flexible open source conçue pour les sites Web WordPress basés sur le Web. Elle est couramment utilisée pour créer des boutiques de commerce électronique en ligne. Avec cette solution logicielle, n’importe qui peut transformer son site Web habituel en un magasin en ligne entièrement fonctionnel.

**Topics**
+ [AWS Glue support pour WooCommerce](woocommerce-support.md)
+ [Politiques contenant les opérations API pour la création et l’utilisation des connexions](woocommerce-configuring-iam-permissions.md)
+ [Configuration WooCommerce](woocommerce-configuring.md)
+ [Configuration des WooCommerce connexions](woocommerce-configuring-connections.md)
+ [Lecture à partir d' WooCommerce entités](woocommerce-reading-from-entities.md)
+ [WooCommerce options de connexion](woocommerce-connection-options.md)

# AWS Glue support pour WooCommerce
<a name="woocommerce-support"></a>

AWS Glue prend en charge WooCommerce les éléments suivants :

**Prise en charge en tant que source ?**  
Oui. Vous pouvez utiliser des tâches AWS Glue ETL pour interroger des données à partir de WooCommerce.

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

**Versions WooCommerce d'API prises en charge**  
Les versions WooCommerce d'API suivantes sont prises en charge :
+ v3

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

L'exemple de politique suivant décrit les autorisations AWS IAM 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": "*"
    }
  ]
}
```

------

Si vous ne voulez pas utiliser la méthode ci-dessus, vous pouvez également utiliser les politiques IAM gérées suivantes :
+ [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 WooCommerce
<a name="woocommerce-configuring"></a>

Avant de pouvoir AWS Glue transférer des données depuis WooCommerce, vous devez satisfaire aux exigences suivantes :

## Configuration requise
<a name="woocommerce-configuring-min-requirements"></a>

Les exigences minimales sont les suivantes :
+ Vous avez un WooCommerce compte avec a `consumerKey` et `consumerSecret` a.
+ Votre WooCommerce compte dispose d'un accès à l'API avec une licence valide.

Si vous remplissez ces conditions, vous êtes prêt à vous connecter AWS Glue à votre WooCommerce compte. Pour les connexions classiques, vous n'avez rien d'autre à faire dans WooCommerce.

# Configuration des WooCommerce connexions
<a name="woocommerce-configuring-connections"></a>

WooCommerce prend en charge l'authentification personnalisée. Pour consulter WooCommerce la documentation publique sur la génération des clés d'API requises pour une autorisation personnalisée, consultez [Authentication — Documentation de l' WooCommerce API REST](https://woocommerce.github.io/woocommerce-rest-api-docs/#authentication).

Pour configurer une WooCommerce connexion :

1. Dans AWS Secrets Manager, créez un secret avec les informations suivantes :
   + Pour une application connectée gérée par le client, le secret doit contenir le secret du consommateur de l’application connectée avec `consumerKey` et `consumerSecret` comme clés. Remarque : Vous devez créer un secret par connexion dans AWS Glue.

1. Dans AWS Glue Glue Studio, créez une connexion sous **Data Connections** en suivant les étapes ci-dessous :

   1. Lorsque vous sélectionnez un **type de connexion**, sélectionnez WooCommerce.

   1. Indiquez `INSTANCE_URL` l' WooCommerce instance à laquelle vous souhaitez vous connecter.

   1. Sélectionnez le rôle AWS IAM qui AWS Glue peut assumer et 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. 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`.

# Lecture à partir d' WooCommerce entités
<a name="woocommerce-reading-from-entities"></a>

**Prérequis**

Un WooCommerce objet que vous aimeriez lire. Vous aurez besoin du nom de l’objet tel que coupon, order, product, etc.

**Entités prises en charge pour la source** :


| Entité | Peut être filtré | Limit prise en charge | Order by prise en charge | Select prise en charge\$1 | Partitionnement pris en charge | 
| --- | --- | --- | --- | --- | --- | 
| Coupon | Oui | Oui | Oui | Oui | Oui | 
| Coupon Total | Non | Non | Non | Oui | Non | 
| Customers Total | Non | Non | Non | Oui | Non | 
| Ordre | Oui | Oui | Oui | Oui | Oui | 
| Orders Total | Non | Non | Non | Oui | Non | 
| Payment Gateway | Non | Non | Non | Oui | Non | 
| Produit (langue française non garantie) | Oui | Oui | Oui | Oui | Oui | 
| Product attribute | Oui | Oui | Oui | Oui | Oui | 
| Product category | Oui | Oui | Oui | Oui | Oui | 
| Product review | Oui | Oui | Oui | Oui | Oui | 
| Product shipping class | Oui | Oui | Oui | Oui | Oui | 
| Product tag | Oui | Oui | Oui | Oui | Oui | 
| Product variation | Oui | Oui | Oui | Oui | Oui | 
| Products Total | Non | Non | Non | Oui | Non | 
| Report (List) | Non | Non | Non | Oui | Non | 
| Reviews Total | Non | Non | Non | Oui | Non | 
| Sales Report | Oui | Non | Non | Oui | Non | 
| Shipping Method | Non | Non | Non | Oui | Non | 
| Shipping Zone | Non | Non | Non | Oui | Non | 
| Shipping Zone Location | Non | Non | Non | Oui | Non | 
| Shipping Zone Method | Non | Non | Non | Oui | Non | 
| Tax Rate | Oui | Oui | Oui | Oui | Oui | 
| Tax Class | Non | Non | Non | Oui | Non | 
| Top Sellers Report | Oui | Non | Non | Oui | Non | 

**Exemple :**

```
woocommerce_read = glueContext.create_dynamic_frame.from_options(
    connection_type="glue.spark.woocommerce",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "coupon",
        "API_VERSION": "v3",
        "INSTANCE_URL": "instanceUrl"
    }
```

**WooCommerce détails de l'entité et du champ** :

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/glue/latest/dg/woocommerce-reading-from-entities.html)

**Note**  
Les types de données Struct et List sont convertis en type de données String, et le type de DateTime données est converti en Timestamp dans la réponse des connecteurs.

## Requêtes de partitionnement
<a name="woocommerce-reading-partitioning-queries"></a>

**Partitionnement basé sur des enregistrements** :

Vous pouvez indiquer l’option Spark supplémentaire `NUM_PARTITIONS` 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.

Dans le partitionnement basé sur les enregistrements, le nombre total d'enregistrements présents est demandé à partir de l' WooCommerce API et divisé par le nombre fourni. `NUM_PARTITIONS` Le nombre d’enregistrements qui en résulte est ensuite extrait simultanément par chaque sous-requête.
+ `NUM_PARTITIONS` : le nombre de partitions.

Les entités suivantes prennent en charge le partitionnement basé sur les enregistrements :
+ coupon
+ order
+ product
+ product-attribute
+ product-attribute-term
+ product-category
+ product-review
+ product-shipping-class
+ product-tag
+ product-variation
+ tax-rate

Exemple :

```
woocommerce_read = glueContext.create_dynamic_frame.from_options(
    connection_type="glue.spark.woocommerce",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "coupon",
        "API_VERSION": "v3",
        "INSTANCE_URL": "instanceUrl"
        "NUM_PARTITIONS": "10"
    }
```

**Partitionnement basé sur des enregistrements** :

La requête d’origine est divisée en `NUM_PARTITIONS` nombres de sous-requêtes qui peuvent être exécutées simultanément par les tâches Spark :
+ `NUM_PARTITIONS` : le nombre de partitions.

Exemple :

```
WooCommerce_read = glueContext.create_dynamic_frame.from_options(
    connection_type="WooCommerce",
    connection_options={
        "connectionName": "connectionName",
        "REALMID": "1234567890123456789",
        "ENTITY_NAME": "Bill",
        "API_VERSION": "v3",
        "NUM_PARTITIONS": "10"
    }
```

# WooCommerce options de connexion
<a name="woocommerce-connection-options"></a>

Les options de connexion suivantes sont disponibles pour WooCommerce :
+ `ENTITY_NAME`(Chaîne) - (Obligatoire) Utilisé pour la lecture. Le nom de votre objet dans WooCommerce.
+ `API_VERSION`(Chaîne) - (Obligatoire) Utilisé pour la lecture. WooCommerce Version de l'API Rest que vous souhaitez utiliser.
+ `REALM_ID`(Chaîne) - Un identifiant identifiant une entreprise WooCommerce en ligne individuelle à laquelle vous envoyez des demandes.
+ `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.
+ `INSTANCE_URL`(String) - (Obligatoire) Une URL d' WooCommerce instance valide au format : https ://<instance>.wpcomstaging.com
+ `NUM_PARTITIONS`(Entier) - Par défaut : 1. Utilisé pour la lecture. Nombre de partitions pour la lecture.