====== Synchronisation avec Shopify ======
KinTPV se synchronise avec Shopify, cela signifie que :
* KinTPV envoie vers le site e-commerce les informations du catalogue produits, Articles (description, images, prix, etc.) et Arborescence (=Collection)
* KinTPV reçoit les commandes des internautes passées sur Shopify afin de mettre à jour les stocks et le CA.
===== Paramétrage =====
Les images valant parfois mieux que des mots, voici chaque étape des manipulations à faire pour configurer la communication entre KinTPV et Shopify.
{{:tutoriel:install-shopify:img_install-shopify_20221121-140802.png}}
{{:tutoriel:install-shopify:img_install-shopify_20221121-141058.png}}
{{:tutoriel:install-shopify:img_install-shopify_20221121-141221.png}}
{{:tutoriel:install-shopify:img_install-shopify_20221121-141347.png}}
{{:tutoriel:install-shopify:img_install-shopify_20221121-142611.png}}
{{:tutoriel:install-shopify:img_install-shopify_20221121-142623.png}}
{{:tutoriel:install-shopify:img_install-shopify_20221121-143201.png}}
{{:tutoriel:install-shopify:img_install-shopify_20221121-143222.png}}
{{:tutoriel:install-shopify:img_install-shopify_20221121-143316.png}}
{{:tutoriel:install-shopify:img_install-shopify_20221121-143343.png}}
{{:tutoriel:install-shopify:img_install-shopify_20221121-143423.png}}
{{:tutoriel:install-shopify:img_install-shopify_20221121-143515.png}}
{{:tutoriel:install-shopify:img_install-shopify_20230717-120446.png}}
Pour ce qui est de l'[[#api_version|API version]], rendez-vous à la [[#api_version|fin de cette page wiki]] pour connaitre la valeur à renseigner.\\
{{:tutoriel:install-shopify:img_install-shopify_20230717-120749.png}}
Par défaut, les options :
* Aucune création d'article sur le site, faire le lien selon l'attribut [ ]
* Ne mettre à jour que les fiches de stock (aucune modification de la fiche d'article)
sont décochées.\\
__//Aucune création d'article sur le site, faire le lien selon l'attribut [ ]//__ \\
=> Cette option n'accepte que 2 valeurs : "**sku**" ou "**barcode**".\\ Cela signifie que le code-barres KinTPV correspond à un code-barres enregistré dans le champ "sku" de Shopify, ou dans le champ "barcode" de Shopify.\\
=> Si cette option est cochée, alors la colonne "à la création" du tableau de configuration est ignorée, mais la colonne "à la modification" est prise en compte.
__//Ne mettre à jour que les fiches de stock (aucune modification de la fiche d'article)//__ \\
=> Si cette seconde option est cochée, alors il faut cocher la case "Stock -> inventory" dans la colonne "à la modification" du tableau de configuration.\\
Dans tous les cas, la fiche produit ne sera pas modifiée sur le site (hormis le stock).\\
=> Si cette option est cochée, la colonne "à la création" du tableau de configuration est prise en compte, et la colonne "à la modification" est ignorée (sauf la ligne "Stock -> inventory").
Suite au test de synchronisation, voici les 2 messages possibles :
{{ :tutoriel:install-shopify:img_install-shopify_20221121-143600.png }}
{{ :tutoriel:install-shopify:img_install-shopify_20221121-143627.png }}
Dans le second cas, la communication entre KinTPV et Shopify ne se fait pas, il faut alors revoir le process, quitte à reprendre la procédure depuis le début.
===== Processus de synchronisation =====
__**Rappel**__ : seuls les articles cochés "publier web" dans KinTPV sont synchronisés.
Le comportement des synchronisations diffère selon la configuration de KinTPV (cf. //[[manuel:preferences:gestion|Préférences > Gestion > Site web]]//, bouton "Configuration" de la zone "Envoi des articles").
{{ :tutoriel:web:install-shopify:img_install-shopify_20230831-162546.png?600 }}
==== Configuration standard ====
* "Aucune création d'article sur le site" : DÉCOCHÉ
* "Ne mettre à jour que les fiches de stock" : DÉCOCHÉ
Si l'article KinTPV NE possède PAS l'id de son équivalent Shopify alors KinTPV crée (ou pas...) la fiche product sur le site, en fonction des éléments cochés dans la colonne "à la création".\\
Le produit créé sur le site aura le status "Draft" (brouillon) ou "active" selon votre configuration.
Sinon, KinTPV met à jour les données du site, selon les choix cochés de la colonne "à la modification".
==== Cas particulier : la base produits Shopify est renseignée AVANT l'installation de KinTPV ====
:!: Avant de "publier web" un article dans KinTPV, veillez à ce que son équivalent Shopify possède un sku.\\
Le sku Shopify correspond au code-barres KinTPV.
* La fiche Article KinTPV n’est pas encore liée avec la fiche Product Shopify (lien direct par id Product)\\ => KinTPV récupère toutes les fiches Product de Shopify depuis le dernier id product récupéré
* La fiche de stock KinTPV n’est pas encore liée avec la fiche variant Shopify (lien direct par id variant)
* Si la liste Products n'est pas chargée => récupérer TOUS les products de Shopify
* KinTPV recherche la fiche variant par le lien "manuel" sku (Shopify) = code-barres (KinTPV)
* Si une fiche variant est trouvée>\\ => mise à jour du lien direct "id variant" dans la fiche de stock KinTPV\\ => ET mise à jour de l’id Product dans la fiche Article KinTPV.
* La fiche de stock KinTPV est liée avec la fiche variant Shopify (lien direct par id variant)
* KinTPV interroge Shopify pour récupérer Inventory_item à mettre à jour.
* KinTPV envoi la valeur du stock à mettre à jour : inventory_levels/set avec available = quantité en stock dans KinTPV.
===== Gestion des taxes =====
Voici un résumé des étapes pour configurer les taxes via le tableau de bord Shopify :
**1. Accéder aux paramètres des taxes :**
* Dans le tableau de bord Shopify, allez à **Paramètres > Taxes et Douanes**.
* Sélectionnez la région (pays, état, province) pour laquelle vous souhaitez définir un taux de taxe.
**2. Définir les taux de taxe :**
* Dans les paramètres de la région sélectionnée, vous pouvez définir les taux de taxe applicables.
* Les taux peuvent varier selon la région (ex : États-Unis par état, Canada par province, etc.).
**3. Configurer les règles supplémentaires :**
* Si nécessaire, vous pouvez définir des règles de taxe supplémentaires, comme l'exemption de certaines taxes pour des produits spécifiques ou l'ajustement des taux de taxe pour des zones spécifiques.
===== Erreur courante =====
==== 413 Request Entity Too Large ====
Dans le cas où il y aurait une erreur "",\\
dont la désignation complète est :
413 Request Entity Too Large
413 Request Entity Too Large
nginx/1.21.3
Il semblerait que cela proviendrait de l’envoi des photos, le correctif passe par un paramétrage du serveur.
Extrait d'un [[https://community.shopify.com/c/shopify-discussions/quot-413-request-entity-too-large-quot-shopify-blocking-requests/td-p/1237665|échange sur un forum]] sur ce sujet :
**« 413 Request Entity Too Large » Shopify Bloque Les Demandes De Plus De 1 Mo ?**\\
//Je télécharge des fichiers sur mon serveur à l'aide de ******, et cela fonctionne parfaitement sur les demandes inférieures à 1 Mo.\\
Cependant, lorsque je télécharge plus de 1 Mo sur mon serveur en une seule requête, ma requête est bloquée et une erreur 413 est générée. Cela montre qu'il provient de NGINX dans la réponse.\\
La requête n'atteint pas mon serveur et est bloquée côté client. Toute aide serait appréciée.//
**__Réponse :__**
Vous avez dit que vous téléchargiez des fichiers sur votre serveur. Cette erreur n'a donc rien à voir avec Shopify mais plutôt avec votre serveur.\\
Jetez un oeil aux exigences de téléchargement de fichiers Shopify :\\
{{:tutoriel:install-shopify:img_install-shopify_20230310-144825.png}}
Le code d'état 413 indique que la demande était supérieure à ce que le serveur peut gérer, soit en raison de contraintes physiques, soit de paramètres. Cela se produit généralement lorsqu'un fichier est envoyé à l'aide de la méthode POST à partir d'un formulaire et que le fichier est plus volumineux que la taille maximale autorisée dans les paramètres du serveur.\\
Vous devez augmenter la valeur des paramètres //memory_limit//, //post_max_size// ou //upload_max_filesize// dans la configuration de votre serveur.
**__NOTE KINTPV__** : la valeur de //post_max_size// est celle à modifier dans notre cas.
==== API version ====
D'après nos constatations, L'équipe Shopify propose une nouvelle version de leur API tous les 3 mois :
* 01 - janvier
* 04 - avril
* 07 - juillet
* 10 - octobre
Dans les Préférences de KinTPV, il faut indiquer une version récente pour éviter tout problème.\\
A la rédaction de ce propos (1er février 2024), l'API version à utiliser est "__**2023-07**__".
----
Si vous recevez un mail provenant de **Shopify Apps Team** dont l'objet est :\\
//[Action requise] Mettez à jour vos applications Shopify...// (ou similaire)
Bonjour,
[...]
Au moins une de vos applications a émis des appels à des API obsolètes au cours
des 30 derniers jours. Cette version ne sera plus prise en charge à compter du
avril 1, 2024. Veuillez mettre à jour les applications figurant dans la liste
ci-dessous en optant pour la version 2023-07 de l'API ou une version supérieure
afin qu'elles continuent à fonctionner correctement.
Boutique : xxxx
Application : KinTPVConnect
[...]
Il suffit donc de suivre la recommandation faite, à savoir utiliser l'API aaaa-mm indiquée dans le message, en saisissant cette valeur dans le champ "API version" dans les [[manuel:preferences:gestion#site_web|Préférences KinTPV > Gestion > Site Web]].