SlideShare une entreprise Scribd logo
1  sur  35
Développez un site e-
commerce Headless avec
Olivier ALLAIN
@oallain33
• Qu’est ce que Sylius? •
• Qu’est ce que Sylius? •
Haut standard de qualité et pas de dette technique
Testé et Testable
Facile à héberger et à faire évoluer
Prêt pour le Headless et les PWA
?
• Qu’est ce que Sylius? •
• Qu’est ce que Sylius? •
L’approche headless
.01.
• L’APPROCHE HEADLESS •
1 Besoin 1 Système
• L’APPROCHE HEADLESS •
Communication entre les différents Systèmes
Synchrone Asynchrone Fichier
• L’APPROCHE HEADLESS •
Communication entre les différents Systèmes
Synchrone Asynchrone Fichier
• L’APPROCHE HEADLESS •
Responsabilité découplée La meilleure solution Performance
1
Besoin
1
Système
• L’APPROCHE HEADLESS •
Plusieurs administrations Dépendances externes Résilience
Les pré-requis sur Sylius
.02.
• SYLIUS HEADLESS •
Communication entre les différents Systèmes
Synchrone API Platform : REST (GraphQL) une API unifiée
Nouvelle API (presque) finie
Documentation
Création d’un SDK
?
• API Platform •
• API Platform •
Admin VS Shop
• API Platform •
• API Platform •
• API Platform •
Workflow piloté par l’API
• API Platform •
• API Platform •
Asynchrone
• SYLIUS HEADLESS •
Communication entre les différents Systèmes
Symfony Messenger
Mécanique complète de gestion messages
Documentation
• Symfony Messenger •
• Symfony Messenger •
• Symfony Messenger •
• Symfony Messenger •
• Symfony Messenger •
• Symfony Messenger •
• Les événements •
SyliusResourceBundle
Api Platform
Mise en application avec
Sylius
.03.
• FRONT HEADLESS •
Server Side Rendering
Thèmes déjà existants
Simple
Performances réduites
Progressive Web App
Frameworks e-commerce existants
Génération de site statique
Coût plus élevé
i
i
• ERP HEADLESS •
Gestion des Crons
Récupération des statuts de commande x
fois par jours
Mise à jour stocks x fois par jours ou à
l’ajout au panier
Le site e-commerce a un décalage par
rapport à la réalité
Push de l’ERP
Mise à jour des statuts de commande
Mise à jour des stocks
Mise à jour en temps réel
• FULL HEADLESS •
Avant de se lancer
.04.
• SYLIUS HEADLESS •
Quelques questions à se poser avant de se lancer
Est-ce utile pour notre projet ?
En avons nous vraiment besoin ?
Quelle est notre dépendance à chaque système externe ?
Comment gérons nous la résilience de notre application ?
?
?
?
i
?
Intégration progressivement les solutions externes
QUESTIONS ?
Olivier ALLAIN @oallain33

Contenu connexe

Tendances

#Collab365 Traduire SharePoint de A à Z
#Collab365 Traduire SharePoint de A à Z#Collab365 Traduire SharePoint de A à Z
#Collab365 Traduire SharePoint de A à ZVincent Biret
 
Develop on Apache Ofbiz
Develop on Apache OfbizDevelop on Apache Ofbiz
Develop on Apache Ofbizbakhtout
 
aOS Nouméa 2020 - 28/02/2020 - Le Serverless avec Azure Function
aOS Nouméa 2020 - 28/02/2020 - Le Serverless avec Azure FunctionaOS Nouméa 2020 - 28/02/2020 - Le Serverless avec Azure Function
aOS Nouméa 2020 - 28/02/2020 - Le Serverless avec Azure FunctionJulien Chable
 
Présentation partner coliseum
Présentation partner coliseumPrésentation partner coliseum
Présentation partner coliseumbiswajit44
 
Présentation partner coliseum 1
Présentation partner coliseum 1Présentation partner coliseum 1
Présentation partner coliseum 1ArielleMeffre
 
Développer avec le sylius resourcebundle (Symfony live Paris 2015)
Développer avec le sylius resourcebundle (Symfony live Paris 2015) Développer avec le sylius resourcebundle (Symfony live Paris 2015)
Développer avec le sylius resourcebundle (Symfony live Paris 2015) Arnaud Langlade
 
Diginova 2019 - les usages d'office 365 en Nouvelle-Calédonie
Diginova 2019 - les usages d'office 365 en Nouvelle-CalédonieDiginova 2019 - les usages d'office 365 en Nouvelle-Calédonie
Diginova 2019 - les usages d'office 365 en Nouvelle-CalédonieJulien Chable
 
aOS Tahiti 2020 - 28/02/2020 - Le Serverless avec Azure Function
aOS Tahiti 2020 - 28/02/2020 - Le Serverless avec Azure FunctionaOS Tahiti 2020 - 28/02/2020 - Le Serverless avec Azure Function
aOS Tahiti 2020 - 28/02/2020 - Le Serverless avec Azure FunctionJulien Chable
 
Integration Summit 16 - Les nouveautés BizTalk Server 2016
Integration Summit 16 - Les nouveautés BizTalk Server 2016Integration Summit 16 - Les nouveautés BizTalk Server 2016
Integration Summit 16 - Les nouveautés BizTalk Server 2016Cellenza
 
Groupe d'usagers SharePoint Québec - PnP pour les usagers!
Groupe d'usagers SharePoint Québec - PnP pour les usagers!Groupe d'usagers SharePoint Québec - PnP pour les usagers!
Groupe d'usagers SharePoint Québec - PnP pour les usagers!Sébastien Levert
 

Tendances (10)

#Collab365 Traduire SharePoint de A à Z
#Collab365 Traduire SharePoint de A à Z#Collab365 Traduire SharePoint de A à Z
#Collab365 Traduire SharePoint de A à Z
 
Develop on Apache Ofbiz
Develop on Apache OfbizDevelop on Apache Ofbiz
Develop on Apache Ofbiz
 
aOS Nouméa 2020 - 28/02/2020 - Le Serverless avec Azure Function
aOS Nouméa 2020 - 28/02/2020 - Le Serverless avec Azure FunctionaOS Nouméa 2020 - 28/02/2020 - Le Serverless avec Azure Function
aOS Nouméa 2020 - 28/02/2020 - Le Serverless avec Azure Function
 
Présentation partner coliseum
Présentation partner coliseumPrésentation partner coliseum
Présentation partner coliseum
 
Présentation partner coliseum 1
Présentation partner coliseum 1Présentation partner coliseum 1
Présentation partner coliseum 1
 
Développer avec le sylius resourcebundle (Symfony live Paris 2015)
Développer avec le sylius resourcebundle (Symfony live Paris 2015) Développer avec le sylius resourcebundle (Symfony live Paris 2015)
Développer avec le sylius resourcebundle (Symfony live Paris 2015)
 
Diginova 2019 - les usages d'office 365 en Nouvelle-Calédonie
Diginova 2019 - les usages d'office 365 en Nouvelle-CalédonieDiginova 2019 - les usages d'office 365 en Nouvelle-Calédonie
Diginova 2019 - les usages d'office 365 en Nouvelle-Calédonie
 
aOS Tahiti 2020 - 28/02/2020 - Le Serverless avec Azure Function
aOS Tahiti 2020 - 28/02/2020 - Le Serverless avec Azure FunctionaOS Tahiti 2020 - 28/02/2020 - Le Serverless avec Azure Function
aOS Tahiti 2020 - 28/02/2020 - Le Serverless avec Azure Function
 
Integration Summit 16 - Les nouveautés BizTalk Server 2016
Integration Summit 16 - Les nouveautés BizTalk Server 2016Integration Summit 16 - Les nouveautés BizTalk Server 2016
Integration Summit 16 - Les nouveautés BizTalk Server 2016
 
Groupe d'usagers SharePoint Québec - PnP pour les usagers!
Groupe d'usagers SharePoint Québec - PnP pour les usagers!Groupe d'usagers SharePoint Québec - PnP pour les usagers!
Groupe d'usagers SharePoint Québec - PnP pour les usagers!
 

Similaire à Afup day 2021 Développez un site e-commerce Headless avec Sylius

WordPress sous stéroïdes : votre site Web vers les sommets !
WordPress sous stéroïdes : votre site Web vers les sommets !WordPress sous stéroïdes : votre site Web vers les sommets !
WordPress sous stéroïdes : votre site Web vers les sommets !Aurélien Denis
 
Votre site eCommerce avec Drupal Commerce dans le cloud Azure
Votre site eCommerce avec Drupal Commerce dans le cloud AzureVotre site eCommerce avec Drupal Commerce dans le cloud Azure
Votre site eCommerce avec Drupal Commerce dans le cloud AzureAnne-Sophie Picot
 
DevOps au coeur de la transformation digitale
DevOps au coeur de la transformation digitaleDevOps au coeur de la transformation digitale
DevOps au coeur de la transformation digitaleSamuel Metias
 
CMSday 2013 - Usines à sites : Quelles sont les approches possibles ?
CMSday 2013 - Usines à sites : Quelles sont les approches possibles ?CMSday 2013 - Usines à sites : Quelles sont les approches possibles ?
CMSday 2013 - Usines à sites : Quelles sont les approches possibles ?Smile I.T is open
 
Scalabilité et haute performance d'application PHP légacy
Scalabilité et haute performance d'application PHP légacy Scalabilité et haute performance d'application PHP légacy
Scalabilité et haute performance d'application PHP légacy Arnaud LEMAIRE
 
aOS Genève - Session - New Experience & SharePoint Framework
aOS Genève - Session - New Experience & SharePoint FrameworkaOS Genève - Session - New Experience & SharePoint Framework
aOS Genève - Session - New Experience & SharePoint FrameworkJean NETRY-VALERE
 
Implanter un erp hugo boutet
Implanter un erp   hugo boutetImplanter un erp   hugo boutet
Implanter un erp hugo boutetCLDEM
 
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?ekino
 
Comment choisir son cms
Comment choisir son cmsComment choisir son cms
Comment choisir son cmsStrasWeb
 
Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm.com Formation Drupal 7 pour les utilisateurs Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm.com Formation Drupal 7 pour les utilisateurs Alphorm
 
aOS Toulouse - Session - New Experience & SharePoint Framework
aOS Toulouse - Session - New Experience & SharePoint FrameworkaOS Toulouse - Session - New Experience & SharePoint Framework
aOS Toulouse - Session - New Experience & SharePoint FrameworkJean NETRY-VALERE
 
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...Devoteam
 
alphorm.com - Formation Microsoft Hyper-V 2012
alphorm.com - Formation Microsoft Hyper-V 2012alphorm.com - Formation Microsoft Hyper-V 2012
alphorm.com - Formation Microsoft Hyper-V 2012Alphorm
 
PrestaShop Day Paris - le futur de PrestaShop
PrestaShop Day Paris - le futur de PrestaShopPrestaShop Day Paris - le futur de PrestaShop
PrestaShop Day Paris - le futur de PrestaShopPrestaShop
 
Aspectize meetup
Aspectize meetupAspectize meetup
Aspectize meetupAspectize
 
Biz talk summit devops - monitoring
Biz talk summit   devops - monitoringBiz talk summit   devops - monitoring
Biz talk summit devops - monitoringRadoine Douhou
 

Similaire à Afup day 2021 Développez un site e-commerce Headless avec Sylius (20)

WordPress sous stéroïdes : votre site Web vers les sommets !
WordPress sous stéroïdes : votre site Web vers les sommets !WordPress sous stéroïdes : votre site Web vers les sommets !
WordPress sous stéroïdes : votre site Web vers les sommets !
 
Votre site eCommerce avec Drupal Commerce dans le cloud Azure
Votre site eCommerce avec Drupal Commerce dans le cloud AzureVotre site eCommerce avec Drupal Commerce dans le cloud Azure
Votre site eCommerce avec Drupal Commerce dans le cloud Azure
 
DevOps au coeur de la transformation digitale
DevOps au coeur de la transformation digitaleDevOps au coeur de la transformation digitale
DevOps au coeur de la transformation digitale
 
CMSday 2013 - Usines à sites : Quelles sont les approches possibles ?
CMSday 2013 - Usines à sites : Quelles sont les approches possibles ?CMSday 2013 - Usines à sites : Quelles sont les approches possibles ?
CMSday 2013 - Usines à sites : Quelles sont les approches possibles ?
 
Développement Cakephp
Développement CakephpDéveloppement Cakephp
Développement Cakephp
 
Developpement CakePHP
Developpement CakePHPDeveloppement CakePHP
Developpement CakePHP
 
HomeAgain
HomeAgainHomeAgain
HomeAgain
 
Scalabilité et haute performance d'application PHP légacy
Scalabilité et haute performance d'application PHP légacy Scalabilité et haute performance d'application PHP légacy
Scalabilité et haute performance d'application PHP légacy
 
aOS Genève - Session - New Experience & SharePoint Framework
aOS Genève - Session - New Experience & SharePoint FrameworkaOS Genève - Session - New Experience & SharePoint Framework
aOS Genève - Session - New Experience & SharePoint Framework
 
Qu'est ce qu'office 365
Qu'est ce qu'office 365Qu'est ce qu'office 365
Qu'est ce qu'office 365
 
Implanter un erp hugo boutet
Implanter un erp   hugo boutetImplanter un erp   hugo boutet
Implanter un erp hugo boutet
 
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
 
Comment choisir son cms
Comment choisir son cmsComment choisir son cms
Comment choisir son cms
 
Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm.com Formation Drupal 7 pour les utilisateurs Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm.com Formation Drupal 7 pour les utilisateurs
 
aOS Toulouse - Session - New Experience & SharePoint Framework
aOS Toulouse - Session - New Experience & SharePoint FrameworkaOS Toulouse - Session - New Experience & SharePoint Framework
aOS Toulouse - Session - New Experience & SharePoint Framework
 
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...
ExperienceNow - Découvrez comment Soitec modernise son IT et gagne en agilité...
 
alphorm.com - Formation Microsoft Hyper-V 2012
alphorm.com - Formation Microsoft Hyper-V 2012alphorm.com - Formation Microsoft Hyper-V 2012
alphorm.com - Formation Microsoft Hyper-V 2012
 
PrestaShop Day Paris - le futur de PrestaShop
PrestaShop Day Paris - le futur de PrestaShopPrestaShop Day Paris - le futur de PrestaShop
PrestaShop Day Paris - le futur de PrestaShop
 
Aspectize meetup
Aspectize meetupAspectize meetup
Aspectize meetup
 
Biz talk summit devops - monitoring
Biz talk summit   devops - monitoringBiz talk summit   devops - monitoring
Biz talk summit devops - monitoring
 

Afup day 2021 Développez un site e-commerce Headless avec Sylius

Notes de l'éditeur

  1. Sans headless Toutes les briques fonctionnent avec la même base de code et communiquent directement les unes avec les autres, formant ainsi le site Web dans son ensemble.
  2. Découpage de notre solution pour avoir 1 besoin = 1 système qui lui est associé ex : front + EPR => plus d’infos + tard
  3. Responsabilité découplée chaque système est responsable des données qu’il produit gestion de version séparées La meilleure solution utiliser la solution qui répond le mieux à notre besoin Performance : utilisation de plusieurs serveurs plus flexible
  4. Plusieurs administrations a chaque système son administration Dépendances externes notre projet à des dépendances externes qu’il faut suivre Résilience gestion de la résilience de l’application que se passe t-il si un système est indisponible quel est notre niveau de dépendance à celui-ci ?
  5. Marqué comme expérimental API Platform + Swagger = doc auto générée CRUD classique Admin VS Shop
  6. admin VS shop 2 endpoints Sérialisation et normalisation et validation APIP
  7. Définition des endpoints
  8. Groupe de sérialisation
  9. Workflow piloté par le headless
  10. Workflow d’un panier Modification de l’état (Validation) d’un panier
  11. Workflow piloté dans un endpoint
  12. Cammand Handler servent à la Validation et la persistance Doctrine
  13. https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/CoreBundle/Resources/config/app/messenger.yaml https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ApiBundle/Resources/config/services/event_handlers.xml https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ApiBundle/Resources/config/services/command_handlers.xml ADR : https://github.com/Sylius/Sylius/blob/fa4c1d30dd9f94f4c8bb4e80b8fb3208fdf38c62/adr/2020_11_12_registration_of_handlers_in_message_buses.md
  14. https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/CoreBundle/Resources/config/app/messenger.yaml https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ApiBundle/Resources/config/services/event_handlers.xml https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ApiBundle/Resources/config/services/command_handlers.xml ADR : https://github.com/Sylius/Sylius/blob/fa4c1d30dd9f94f4c8bb4e80b8fb3208fdf38c62/adr/2020_11_12_registration_of_handlers_in_message_buses.md
  15. https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/CoreBundle/Resources/config/app/messenger.yaml https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ApiBundle/Resources/config/services/event_handlers.xml https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ApiBundle/Resources/config/services/command_handlers.xml ADR : https://github.com/Sylius/Sylius/blob/fa4c1d30dd9f94f4c8bb4e80b8fb3208fdf38c62/adr/2020_11_12_registration_of_handlers_in_message_buses.md
  16. https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ApiBundle/EventHandler/OrderCompletedHandler.php https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ApiBundle/CommandHandler/SendOrderConfirmationHandler.php https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ApiBundle/CommandHandler/Checkout/CompleteOrderHandler.php
  17. https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ApiBundle/EventHandler/OrderCompletedHandler.php https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ApiBundle/CommandHandler/SendOrderConfirmationHandler.php https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ApiBundle/CommandHandler/Checkout/CompleteOrderHandler.php
  18. https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ApiBundle/EventHandler/OrderCompletedHandler.php https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ApiBundle/CommandHandler/SendOrderConfirmationHandler.php https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ApiBundle/CommandHandler/Checkout/CompleteOrderHandler.php
  19. Si pas de question, parler du Price Calculator D’autres pièges comme le PriceCalculator qui n’est pas utilisé sur la récupération des prix produits