SlideShare une entreprise Scribd logo
Comprendre et utiliser
l’API REST de
WooCommerce
Maxime VARINARD - Vaisonet
WordCamp Lille 2018
C’est quoi un
webservice ?
Un webservice
Technique
Basé sur HTTP
Source : www.commentcamarche.com
Un webservice
Technique
Basé sur HTTP
Ce n’est pas de l’échange de fichier et
ça change tout !
Un webservice
Technique
Basé sur HTTP
Avantages
● Validation des
données
● Gestion des erreurs
● Pare-feu
● Interopérable
● Standard et
compréhensible
Inconvénients
Comment ça
fonctionne ?
Initialisation
Je fais une requête
HTTP
Modification
J’interprète la réponse
et je la modifie
Envoi
Je renvoie les
données
Interprétation
Le serveur analyse les
données et renvoie
une réponse
Gestion
Je réagis à la réponse
(OK / KO)
Un peu de jargon
Un peu de jargon
● XML-RPC
● SOAP
● REST
● XML
● JSON
● GraphQL
HTTP et
validation des
données
Type de requête HTTP
● GET pour lire
● POST pour créer
● PUT pour mettre à jour
● DELETE pour supprimer
Réponses HTTP
● 200 OK
● 401 Unauthorized
● 500 Internal Server Error
● etc ...
Les validations par le webservice
● Validation très fine des données (numéros de téléphone, caractères interdits, etc …)
En dernier lieu ...
● le schéma de la base MySQL !
Webservice vs
MySQL
Webservice
Accès passe partout
Validation des données fine
Versionning
Gestion des événements
Documentation
Plugins présents sans importance
Un accès externe est parfois
compliqué …
Gestion des tables liées
Performance
MySQL
API REST
WooCommerce
Activation
● Activer l’API REST
Auth Endpoint
Oauth
Signature des données + Timestamp
+ authentification
Auth HTTP
Source : woocommerce.github.io
Activation
● Générer la paire de clé
Activation
● Ne pas oublier les permaliens (erreur 404 sinon)
● La structure personnalisée (par défaut) ne fonctionne pas => nom de l’article
Méthodes principales
● Documentation sur GitHub => http://woocommerce.github.io/woocommerce-rest-api-
docs
● La méthode System status donne plein d’informations sur la configuration de
WooCommerce, WordPress, PHP
Filtres et pagination
● Ne récupérer que les commandes validées
● Ne récupérer que les 500 premiers produits
Exemples
d’utilisation
Se simplifier la vie
● Des librairies existent pour de nombreux langages, pour faciliter :
○ authentification
○ gestion des erreurs
○ pagination
○ syntaxe plus parlante / simplifiée
Apartée Composer
Apartée Composer
● Outil en ligne de commandes
● Disponible sur tout OS exécutant PHP
● Gestion des librairies et de leurs dépendances
● Gestion des versions et compatibilités
● Un site regroupe tous les paquets : packagist.org
Apartée Composer
● Automattic propose une librairie :
● > composer require automattic/woocommerce
Créer le client
//Autoload de Composer
require __DIR__ . '/vendor/autoload.php';
//Espace de nom de la librairie
use AutomatticWooCommerceClient;
Créer le client
//Création du client
$woocommerce = new Client(
'https://wordcamp.org',
'ck_X', //La clé
'cs_X', // Clé secrète
[
'version' => 'wc/v2', //Pour définir la version à utiliser
‘user_agent’ => ‘WordCamp REST API customer’,
]
);
Les 4 méthodes REST
● $woocommerce->get(ressource, options);
● $woocommerce->post(ressource, options);
● $woocommerce->put(ressource, options);
● $woocommerce->delete(ressource, options);
Gestion des erreurs
● Exception “HttpClientException”
try {
// Mon code
} catch (HttpClientException $e) {
$e->getMessage(); // Message d’erreur.
$e->getRequest(); // La dernière requête.
$e->getResponse(); // La réponse.
}
Mettre à jour un prix
$produit = $woocommerce->get( 'products', array(‘id’ => 1258));
$produit->regular_price = 20;
$woocommerce->put(‘products’, $produit);
Mettre à jour un prix
try {
$produit = $woocommerce->get( 'products', array(‘id’ => 1258));
} catch (HttpClientException $e) {
echo $e->getMessage(); // Message d’erreur.
}
$produit->regular_price = 20;
try {
$woocommerce->put(‘products’, $produit);
} catch (HttpClientException $e) {
echo $e->getMessage(); // Message d’erreur.
}
Créer un produit
$produit = [
'name' => 'Billet WordCamp',
'type' => 'simple',
'regular_price' => '20.00',
'description' => 'Participez au prochain WordCamp',
'images' => [
[
'src' => 'https://wordpress.org/path/to/image.jpg',
'position' => 0,
[...]
$woocommerce->post( 'products', $produit );
Appliquer un filtre
● Récupérer les 100 dernières commandes au statut pending
Appliquer un filtre
$woocommerce->get(‘orders’, array (‘status’ => ‘pending’, ‘per_page’ => 100));
Comment tester
le client REST ?
Installer un WooCommerce de test
● Installer WampServer / Xampp
● Télécharger WordPress
● Allez dans le back-office, installer WooCommerce
Installer un WooCommerce de test
● Installer WampServer / Xampp
● Télécharger WordPress
● Allez dans le back-office, installer WooCommerce
● Et répéter à chaque test ...
Apartée WP-CLI
Installer un WooCommerce de test v2
● Installer un hyperviseur de son choix
● Installer Vagrant
● Scripter l’installation d’une machine virtuelle
● Bénéficier des snapshots
Vagrant
Vagrant.configure("2") do |config|
config.vm.box = "spartan/aws-dummy"
config.vm.provider "aws"
Vagrant
Vagrant.configure("2") do |config|
config.vm.box = "spartan/aws-dummy"
config.vm.provider "aws"
config.vm.provider :aws do |aws, override|
aws.access_key_id = ""
aws.secret_access_key = ""
aws.keypair_name = 'vagrantaws'
aws.ami = ""
aws.region = "eu-central-1"
aws.instance_type = "m3.medium"
[...]
end
Vagrant
config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install -y mysql-server mysql-client curl unzip git
apt-get install -y apache2
apt-get install -y php php-mysql php-imap php-intl libapache2-mod-php php-common php-
gd php-pear libgd-tools php-curl php-mcrypt php-mbstring
/etc/init.d/apache2 restart
Vagrant
wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar core download --path=/var/www/html/wordpress --allow-root --locale=fr_FR
php wp-cli.phar config create --path=/var/www/html/wordpress --locale=fr_FR [...]
php wp-cli.phar core install --url=$url/wordpress --title=Example --admin_user=admin --
admin_password=0123456789 --admin_email=wp@wp.com --skip-email [...]
php wp-cli.phar plugin install woocommerce --activate [...]
php wp-cli.phar option update siteurl wordpress [...]
Tests unitaires
du client REST
Comment rédiger des tests unitaires
quand une méthode appelle un
webservice ?
PHPUnit
class WSTest extends PHPUnit_Framework_TestCase
{
public function testget()
{
$produit = $woocommerce->get( 'products', array(‘id’ => 1258));
$this->assertEquals(MONMODELE, $produit);
}
}
Comment tester
QUE le client
REST ?
Simulacre d’objet / Mock Object
● Reproduire le comportement du webservice, de manière contrôlée et reproductible
● Mock de l’objet $woocommerce
● Un framework bien pratique : Phake
Phake - mise en bouche ...
>composer require --dev phunit/phpunit
>composer require --dev phake/phake
Et pour la suite : RTFM ;)
Des questions ?
@Vaisonet
Maxime Varinard

Contenu connexe

Tendances

Présentation de nodejs
Présentation de nodejsPrésentation de nodejs
Présentation de nodejs
13p
 
Introduction à WordPress sous Nginx
Introduction à WordPress sous NginxIntroduction à WordPress sous Nginx
Introduction à WordPress sous Nginx
Maxime Jobin
 
NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introduction
Toxicode
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
Khalid Jebbari
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
Hugo Hamon
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?
Frédéric Harper
 
Enib cours c.a.i. web - séance #6 : introduction à node js
Enib   cours c.a.i. web - séance #6 : introduction à node jsEnib   cours c.a.i. web - séance #6 : introduction à node js
Enib cours c.a.i. web - séance #6 : introduction à node js
Horacio Gonzalez
 
Angular retro
Angular retroAngular retro
Angular retro
Deyine Jiddou
 
Un environnement de développement solide avec wamp
Un environnement de développement solide avec wampUn environnement de développement solide avec wamp
Un environnement de développement solide avec wamp
Nicolas Beauvais
 
Active Server Pages (ASP)
Active Server Pages (ASP)Active Server Pages (ASP)
Active Server Pages (ASP)
Saïd Radhouani
 
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
Eric D.
 
Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009
Philippe Gamache
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Adyax
 
Programmation concurrente en Java
Programmation concurrente en JavaProgrammation concurrente en Java
Programmation concurrente en Java
Florian Beaufumé
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005
Eric D.
 
XebiConFr - 15 - Apache Mesos, ou comment exploiter les ressources de votre d...
XebiConFr - 15 - Apache Mesos, ou comment exploiter les ressources de votre d...XebiConFr - 15 - Apache Mesos, ou comment exploiter les ressources de votre d...
XebiConFr - 15 - Apache Mesos, ou comment exploiter les ressources de votre d...
Publicis Sapient Engineering
 
What we've learnt from Ember.js - The family talk april 2015
What we've learnt from Ember.js - The family talk april 2015What we've learnt from Ember.js - The family talk april 2015
What we've learnt from Ember.js - The family talk april 2015
Wisembly
 
"What we've learnt from Ember.js developing our new product" by Guillaume Pot...
"What we've learnt from Ember.js developing our new product" by Guillaume Pot..."What we've learnt from Ember.js developing our new product" by Guillaume Pot...
"What we've learnt from Ember.js developing our new product" by Guillaume Pot...
TheFamily
 
Web typographie
Web typographieWeb typographie
Web typographie
mirko
 
Réu technodejs
Réu technodejsRéu technodejs
Réu technodejs
naholyr
 

Tendances (20)

Présentation de nodejs
Présentation de nodejsPrésentation de nodejs
Présentation de nodejs
 
Introduction à WordPress sous Nginx
Introduction à WordPress sous NginxIntroduction à WordPress sous Nginx
Introduction à WordPress sous Nginx
 
NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introduction
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?
 
Enib cours c.a.i. web - séance #6 : introduction à node js
Enib   cours c.a.i. web - séance #6 : introduction à node jsEnib   cours c.a.i. web - séance #6 : introduction à node js
Enib cours c.a.i. web - séance #6 : introduction à node js
 
Angular retro
Angular retroAngular retro
Angular retro
 
Un environnement de développement solide avec wamp
Un environnement de développement solide avec wampUn environnement de développement solide avec wamp
Un environnement de développement solide avec wamp
 
Active Server Pages (ASP)
Active Server Pages (ASP)Active Server Pages (ASP)
Active Server Pages (ASP)
 
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
 
Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
 
Programmation concurrente en Java
Programmation concurrente en JavaProgrammation concurrente en Java
Programmation concurrente en Java
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005
 
XebiConFr - 15 - Apache Mesos, ou comment exploiter les ressources de votre d...
XebiConFr - 15 - Apache Mesos, ou comment exploiter les ressources de votre d...XebiConFr - 15 - Apache Mesos, ou comment exploiter les ressources de votre d...
XebiConFr - 15 - Apache Mesos, ou comment exploiter les ressources de votre d...
 
What we've learnt from Ember.js - The family talk april 2015
What we've learnt from Ember.js - The family talk april 2015What we've learnt from Ember.js - The family talk april 2015
What we've learnt from Ember.js - The family talk april 2015
 
"What we've learnt from Ember.js developing our new product" by Guillaume Pot...
"What we've learnt from Ember.js developing our new product" by Guillaume Pot..."What we've learnt from Ember.js developing our new product" by Guillaume Pot...
"What we've learnt from Ember.js developing our new product" by Guillaume Pot...
 
Web typographie
Web typographieWeb typographie
Web typographie
 
Réu technodejs
Réu technodejsRéu technodejs
Réu technodejs
 

Similaire à WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce

Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
sametmax
 
[FR] C'est quoi une API ?
[FR] C'est quoi une API ?[FR] C'est quoi une API ?
[FR] C'est quoi une API ?
OVHcloud
 
WebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsWebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet Applications
Vincent Perrin
 
Personnalisation et Extension du Catalogue Applicatif dans System Center 2012...
Personnalisation et Extension du Catalogue Applicatif dans System Center 2012...Personnalisation et Extension du Catalogue Applicatif dans System Center 2012...
Personnalisation et Extension du Catalogue Applicatif dans System Center 2012...
Microsoft Technet France
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open API
Romain Cambien
 
Comment créer, gérer et sauvegarder éfficacement vos environnements virtuels ...
Comment créer, gérer et sauvegarder éfficacement vos environnements virtuels ...Comment créer, gérer et sauvegarder éfficacement vos environnements virtuels ...
Comment créer, gérer et sauvegarder éfficacement vos environnements virtuels ...
fabricemeillon
 
Meetup laravel
Meetup laravelMeetup laravel
Meetup laravel
Romain Cambien
 
hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.ppt
adiouf2
 
rapport.pptx
rapport.pptxrapport.pptx
rapport.pptx
NouHailaHM
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv Ps
Gregory Renard
 
Powershell
PowershellPowershell
Powershell
UGAIA
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010
Guillaume Sautereau
 
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
Horacio Gonzalez
 
Crud+tutorial+fr
Crud+tutorial+frCrud+tutorial+fr
Crud+tutorial+fr
Mustapha Nakous
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
VISEO
 
Mise en place d’un serveur proxy : Cas du CCProxy
Mise en place d’un serveur proxy : Cas du CCProxyMise en place d’un serveur proxy : Cas du CCProxy
Mise en place d’un serveur proxy : Cas du CCProxy
Jeff Hermann Ela Aba
 
Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5
Microsoft
 
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
Mohamed Nemili
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
CARA_Lyon
 

Similaire à WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce (20)

Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
 
[FR] C'est quoi une API ?
[FR] C'est quoi une API ?[FR] C'est quoi une API ?
[FR] C'est quoi une API ?
 
WebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsWebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet Applications
 
Personnalisation et Extension du Catalogue Applicatif dans System Center 2012...
Personnalisation et Extension du Catalogue Applicatif dans System Center 2012...Personnalisation et Extension du Catalogue Applicatif dans System Center 2012...
Personnalisation et Extension du Catalogue Applicatif dans System Center 2012...
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open API
 
Comment créer, gérer et sauvegarder éfficacement vos environnements virtuels ...
Comment créer, gérer et sauvegarder éfficacement vos environnements virtuels ...Comment créer, gérer et sauvegarder éfficacement vos environnements virtuels ...
Comment créer, gérer et sauvegarder éfficacement vos environnements virtuels ...
 
Meetup laravel
Meetup laravelMeetup laravel
Meetup laravel
 
hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.ppt
 
rapport.pptx
rapport.pptxrapport.pptx
rapport.pptx
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv Ps
 
Powershell
PowershellPowershell
Powershell
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010
 
.NET DotNet CF - 3
.NET DotNet CF - 3.NET DotNet CF - 3
.NET DotNet CF - 3
 
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
 
Crud+tutorial+fr
Crud+tutorial+frCrud+tutorial+fr
Crud+tutorial+fr
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Mise en place d’un serveur proxy : Cas du CCProxy
Mise en place d’un serveur proxy : Cas du CCProxyMise en place d’un serveur proxy : Cas du CCProxy
Mise en place d’un serveur proxy : Cas du CCProxy
 
Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5
 
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 

Plus de Vaisonet

Comment intégrer WooCommerce dans le SI de votre client ou de votre entrepris...
Comment intégrer WooCommerce dans le SI de votre client ou de votre entrepris...Comment intégrer WooCommerce dans le SI de votre client ou de votre entrepris...
Comment intégrer WooCommerce dans le SI de votre client ou de votre entrepris...
Vaisonet
 
Webinaire Prestashop - Vaisonet : L' e-commerce facile et sans ressaisie
Webinaire Prestashop - Vaisonet : L' e-commerce facile et sans ressaisieWebinaire Prestashop - Vaisonet : L' e-commerce facile et sans ressaisie
Webinaire Prestashop - Vaisonet : L' e-commerce facile et sans ressaisie
Vaisonet
 
E commerce multicanal - #SNV5 2017
E commerce multicanal - #SNV5 2017E commerce multicanal - #SNV5 2017
E commerce multicanal - #SNV5 2017
Vaisonet
 
NumeoGuide en quelques diapos
NumeoGuide en quelques diaposNumeoGuide en quelques diapos
NumeoGuide en quelques diapos
Vaisonet
 
Créez votre boutique en ligne Conférence Pertuis - 04.04.16
Créez votre boutique en ligne  Conférence Pertuis - 04.04.16Créez votre boutique en ligne  Conférence Pertuis - 04.04.16
Créez votre boutique en ligne Conférence Pertuis - 04.04.16
Vaisonet
 
Créez votre boutique en ligne - Commuauté de Communes Apt - 21/03/16
Créez votre boutique en ligne - Commuauté de Communes Apt - 21/03/16Créez votre boutique en ligne - Commuauté de Communes Apt - 21/03/16
Créez votre boutique en ligne - Commuauté de Communes Apt - 21/03/16
Vaisonet
 
Salon du numérique de vaucluse 2016 conférence e-commerce
Salon du numérique de vaucluse 2016   conférence e-commerceSalon du numérique de vaucluse 2016   conférence e-commerce
Salon du numérique de vaucluse 2016 conférence e-commerce
Vaisonet
 
Comment lancer un site e commerce en 18 points clés
Comment lancer un site e commerce  en 18 points clésComment lancer un site e commerce  en 18 points clés
Comment lancer un site e commerce en 18 points clés
Vaisonet
 
Table ronde top tic 2014
Table ronde top tic 2014Table ronde top tic 2014
Table ronde top tic 2014
Vaisonet
 
Quelles les stratégies web mobiles ?
Quelles les stratégies web mobiles ?Quelles les stratégies web mobiles ?
Quelles les stratégies web mobiles ?
Vaisonet
 
Atelier Interconnexion des données dans l'entreprise
Atelier Interconnexion des données dans l'entrepriseAtelier Interconnexion des données dans l'entreprise
Atelier Interconnexion des données dans l'entreprise
Vaisonet
 
Performance d'un site Internet
Performance d'un site InternetPerformance d'un site Internet
Performance d'un site Internet
Vaisonet
 
8 points clés pour créer un site e-commerce
8 points clés pour créer un site e-commerce8 points clés pour créer un site e-commerce
8 points clés pour créer un site e-commerce
Vaisonet
 
Club des entrepreneurs 11.12.12
Club des entrepreneurs 11.12.12Club des entrepreneurs 11.12.12
Club des entrepreneurs 11.12.12
Vaisonet
 
Lancer un site e-commerce
Lancer un site e-commerceLancer un site e-commerce
Lancer un site e-commerce
Vaisonet
 
Café de l'entrepreneur : tout ce qu'il faut savoir sur le e-commerce
Café de l'entrepreneur : tout ce qu'il faut savoir sur le e-commerceCafé de l'entrepreneur : tout ce qu'il faut savoir sur le e-commerce
Café de l'entrepreneur : tout ce qu'il faut savoir sur le e-commerce
Vaisonet
 

Plus de Vaisonet (16)

Comment intégrer WooCommerce dans le SI de votre client ou de votre entrepris...
Comment intégrer WooCommerce dans le SI de votre client ou de votre entrepris...Comment intégrer WooCommerce dans le SI de votre client ou de votre entrepris...
Comment intégrer WooCommerce dans le SI de votre client ou de votre entrepris...
 
Webinaire Prestashop - Vaisonet : L' e-commerce facile et sans ressaisie
Webinaire Prestashop - Vaisonet : L' e-commerce facile et sans ressaisieWebinaire Prestashop - Vaisonet : L' e-commerce facile et sans ressaisie
Webinaire Prestashop - Vaisonet : L' e-commerce facile et sans ressaisie
 
E commerce multicanal - #SNV5 2017
E commerce multicanal - #SNV5 2017E commerce multicanal - #SNV5 2017
E commerce multicanal - #SNV5 2017
 
NumeoGuide en quelques diapos
NumeoGuide en quelques diaposNumeoGuide en quelques diapos
NumeoGuide en quelques diapos
 
Créez votre boutique en ligne Conférence Pertuis - 04.04.16
Créez votre boutique en ligne  Conférence Pertuis - 04.04.16Créez votre boutique en ligne  Conférence Pertuis - 04.04.16
Créez votre boutique en ligne Conférence Pertuis - 04.04.16
 
Créez votre boutique en ligne - Commuauté de Communes Apt - 21/03/16
Créez votre boutique en ligne - Commuauté de Communes Apt - 21/03/16Créez votre boutique en ligne - Commuauté de Communes Apt - 21/03/16
Créez votre boutique en ligne - Commuauté de Communes Apt - 21/03/16
 
Salon du numérique de vaucluse 2016 conférence e-commerce
Salon du numérique de vaucluse 2016   conférence e-commerceSalon du numérique de vaucluse 2016   conférence e-commerce
Salon du numérique de vaucluse 2016 conférence e-commerce
 
Comment lancer un site e commerce en 18 points clés
Comment lancer un site e commerce  en 18 points clésComment lancer un site e commerce  en 18 points clés
Comment lancer un site e commerce en 18 points clés
 
Table ronde top tic 2014
Table ronde top tic 2014Table ronde top tic 2014
Table ronde top tic 2014
 
Quelles les stratégies web mobiles ?
Quelles les stratégies web mobiles ?Quelles les stratégies web mobiles ?
Quelles les stratégies web mobiles ?
 
Atelier Interconnexion des données dans l'entreprise
Atelier Interconnexion des données dans l'entrepriseAtelier Interconnexion des données dans l'entreprise
Atelier Interconnexion des données dans l'entreprise
 
Performance d'un site Internet
Performance d'un site InternetPerformance d'un site Internet
Performance d'un site Internet
 
8 points clés pour créer un site e-commerce
8 points clés pour créer un site e-commerce8 points clés pour créer un site e-commerce
8 points clés pour créer un site e-commerce
 
Club des entrepreneurs 11.12.12
Club des entrepreneurs 11.12.12Club des entrepreneurs 11.12.12
Club des entrepreneurs 11.12.12
 
Lancer un site e-commerce
Lancer un site e-commerceLancer un site e-commerce
Lancer un site e-commerce
 
Café de l'entrepreneur : tout ce qu'il faut savoir sur le e-commerce
Café de l'entrepreneur : tout ce qu'il faut savoir sur le e-commerceCafé de l'entrepreneur : tout ce qu'il faut savoir sur le e-commerce
Café de l'entrepreneur : tout ce qu'il faut savoir sur le e-commerce
 

WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce

Notes de l'éditeur

  1. Je vous présente aujourd’hui cet atelier sur l’API REST de Woocommerce. Je suis Maxime Varinard, fondateur de Vaisonet, un éditeur de logiciel de synchronisation de flux de données entre sites e-commerce et logiciels de gestion commerciale ou ERP. Si vous comprenez quelque chose à cet atelier et que vous cherchez du travail, on recrute !
  2. On ne fait pas de l’envoi de fichier en aveugle, sans connaître le résultat du traitement, comme un envoi FTP.
  3. XML-RPC (protocole) SOAP (protocole) REST, c’est une architecture, une évolution de XML-RPC tenant compte des entêtes HTTP XML => un des langage utilisé par REST JSON => un des langage utilisé par REST GraphQL = > l'alternative de Facebook à REST, permet de faire de requêtes type SELECT SQL, mais pas de cache.
  4. 401 clé API KO 301 redirection définitive ou 302 temporaire 503 Erreur temporaire 404 la ressource n’existe pas Avantage REST, on peut gérer des erreurs basées sur les codes HTTP
  5. Accès MySQL : 1) Config MySQL 2) Utilisateur avec accès IP 3) Pare feu Souvent il faut une IP fixe pour l’hébergeur
  6. 503 Erreur temporaire 404 la ressource n’existe pas
  7. 503 Erreur temporaire 404 la ressource n’existe pas
  8. 503 Erreur temporaire 404 la ressource n’existe pas
  9. 503 Erreur temporaire 404 la ressource n’existe pas
  10. Intérêt ? La charge serveur une fois en production. Ca marche bien en dev, mais il faut tenir la charge !
  11. Appartée composer
  12. Appartée composer
  13. Appartée composer
  14. Donc on finit par ne pas tester ...
  15. Appartée composer
  16. (Hyper-V, VMware, Xen) ou AWS, Azure
  17. Vagrant permet de tester facilement plusieurs versions de WC / WP, mais tests unitaires lourds. Problème réseau possible, comment tester ?