SlideShare une entreprise Scribd logo
L’E-COMMERCE SANS
ACCROC AVEC
Olivier ALLAIN
@oallain33
Friends of Sylius
THE A-TEAM
L’AGENCE TOUS RISQUES
• LE PROJET BELENVY •
SYLIUS, L’HISTOIRE
.01.
2010
Création de Sylius pour la
vente de produits de
beauté en Pologne
2011
Réécriture et publication
sous forme de Bundles
Symfony Open Source
2014
Création de l'agence
Sylius, qui intègre
Sylius
2016
Développement d'une
nouvelle version, mieux
structurée et plus complète
2017
Arrêt de l'agence
d’intégration de Sylius
pour se concentrer sur
Sylius
Sylius v1.0.0
Première version
stable
Fév
2018
Sylius v1.1.0
Symfony 3.4
actions groupées en BO
configuration via dotenv
Juin
2018
Sylius v1.2.0
Symfony 4.1
Configuration du
ResourceBundle améliorée
Oct
2018
Sylius v1.3.0
Symfony Flex
Plugins : Invoicing, Admin
order creation, ...
Fév
2019
Sylius v1.4.0
PHP 7.3
RbacPlugin
Août
2019
Mai
2019
Sept
2017
Sylius v1.6.0
Amélioration de l’Admin
Amélioration du plugin
ShopApiPlugin
Sylius v1.5.0
Extraction de
composants et bundles
SYLIUS, LA PHILOSOPHIE
.02.
UNE PHILOSOPHIE-
Backward Compatibility Promise
3.4 // 4.3
● High Developer Productivity
● Focused & Easy To Integrate
● Simple To Deploy & Host
Enables
● Fast Iteration
● Prepared for the Future
● Framework PHP
● Qualité du code
● Principes SOLID
● Tests
80%
DES BESOINS E-COMMERCE COUVERTS
POUR LE PLAISIR DES
DÉVELOPPEURS
ARCHITECTURE
.03.
UNE ARCHITECTURE SIMPLE-
COMPONENTS
----
● 1 composant = 1 responsabilité / fonctionnalité
● Découplé et en PHP pur, donc utilisable sur tous vos
projets PHP
Exemple : Addressing Component
BUNDLES
----
● 1 bundle = 1 composant
● Bundle Symfony, donc utilisable sur tous vos projets
Symfony
● Configuration, formulaire, service, ...
Exemple : SyliusAddressingBundle
CORE
----
● SyliusCoreBundle : intégrer d’autres Bundles
Exemple : Une commande est associée à des adresses.
ADMIN
----
● Administration simple et fonctionnelle
● Peut être trop simpliste et pauvre en fonctionnalités ?
SHOP
----
● La boutique : épurée et simple
● Peut être trop ? Pas de gestion CMS par exemple
API
----
● RESTful JSON/XML API
● Modèle CQS (et pas CRUD) pour traiter la logique dans
un bus de commande
● Système de tri et de filtres basiques
● A quand la migration sur Api Platform ?
Toutes ces briques sont bien sûr remplaçables !
• LE PROJET BELENVY •
Nous n'utilisons pas l’API
Nous utilisons des Bundles Symfony
friendsofsymfony/jsrouting-bundle
mailjet/mailjet-bundle
jmose/command-scheduler-bundle
...
SYLIUS, DU BACK AU
FRONT
.04.
LE BACK-OFFICE-
Ancien Back-office
Back-office v1.6 et plus
Sonata Project
LE FRONT-OFFICE-
● Par défaut
● Peu connu des devs front
● Une intégration avec Webpack
Encore pas simple
● Plugin officiel supporté par l’
équipe Sylius
● Webpack Encore
● Qui ne connaît pas Bootstrap
?
● Je vous le conseille 😉
● PWA
● Angular
● React
● VUE.js
● ...
SEMANTIC UI BOOTSTRAP
EN
UTILISANT
L’API
• LE PROJET BELENVY •
• LE PROJET BELENVY •
LA CUSTOMISATION
.05.
Bundle de gestion du CRUD des entités
Très utilisé par le Shop et le l’API
Utilisation des DTO
Pour des manipulations plus complexes
OnePageCheckout Belenvy
Les réponses des controller sont agnostiques
Possibilité de les utiliser indifféremment par le Shop et l'API
RESSOURCES BUNDLE-
WINZOO STATE MACHINE-
Les machines à états sont utilisées sur tous les changements de statuts dans Sylius
Sur chaque transition il est possible de câbler des évènements appelés callbacks
Très pratique pour envoyer un mail au client afin de l’informer du changement de statut de sa
commande par exemple
Certains regretteront que ce ne soit pas symfony/workflow qui soit utilisé, mais il n'existait pas
à l'époque (difficilement remplaçable)
Workflow Order
Sylius
Belenvy
• LE PROJET BELENVY •
Workflow Shipping
Sylius
Belenvy
FormExtension
Très pratique pour ajouter aux
formulaires les attributs dont
vous avez besoin.
Les FormType sont souvent en
"final" donc c'est une pratique
conseillée
i
EVENTS (SONATA BACK & FRONT)-
Les événements Sonata sont présents en Back et en Front et permettent d’ajouter des
comportements facilement
Pour des besoins plus spécifiques il est toujours possible de surcharger le thème.
i
FIXTURES-
Extension de Doctrine data
fixtures
Permet d'avoir un jeu de
données cohérent pour les tests
Permet d'avoir des données
d'initialisation pour la production
i
OVERRIDING-
Sylius tire toute la puissance de Symfony et de Twig pour overrider
n'importe quels classe, fonction, configuration, template, …
Ainsi que tous les mécanismes présents sur Symfony, par exemple, la
décoration de service.
LES TESTS
06.
LES OUTILS POUR LES TESTS
● PHPSpec permet d’
écrire une spécification
du code avant d'écrire le
code
● 410 classes testées (6
secondes)
● Les tests unitaires, la
base 😉
● Tests: 422, Assertions:
1452 (2 minutes)
● Le comportement de l'application
est décrit par des scénarios, qui
sont ensuite transformés en tests
automatisés, joués par Behat.
● Toutes les fonctionnalités de
Sylius sont couvertes par des
tests Behat
● Environ 1 400 scénarios et 15
000 steps
● 35 minutes sur Github, c'est long
● Exécute les outils précédemment cités + security-checker + phpstan + linters (Twig, Yaml)
● Total 45 minutes
LES PLUGINS
07.
LES OFFICIELS
LES TROUVER SUR PACKAGIST
● Sylius valide et officialise des plugins présents sur son site web
● +30 plugins
● Validation manuelle longue à faire, d'où le peu de plugins validés
● https://packagist.org/explore/?tags=sylius-plugin
● +70 plugins
LES AVANTAGES
● Ajout de fonctionnalités facilité
● Cycle de développement plus rapide
i
• LE PROJET BELENVY •
Nous utilisons des Plugins Sylius
friendsofsylius/sylius-import-export-plugin
bitbag/cms-plugin
...
SYLIUS PLUS
08.
POURQUOI AVOIR CRÉÉ SYLIUS PLUS ?
LES AVANTAGES
● Multi-boutique avancé
● Gestion des retours (RMA)
● Inventaire multi-sources
● Permissions utilisateurs avancées
● Support technique
● Un responsable de la réussite client
● Une assistance à la réussite du projet (option)
● Se rapprocher de ses clients et aider au déploiement de Sylius via le support
● Monétiser du service pour pérenniser l’entreprise et rester sur un mode
d’autofinancement
ROADMAP
09.
https://github.com/orgs/Sylius/projects/2
Github Projects Proposition Vote
ROADMAP PUBLIQUE
LES LIMITES
10.
Sylius ne couvre pas tous les besoins... cependant il existe probablement un plugin
pour palier à cela, ou alors il vous faudra coder 😉
La recherche de produit pèche en front, à cause du nombre important de produits ?
Vous avez besoin d’une recherche avancée basée sur des filtres ?
⇒ Le Plugin bitbag/elasticsearch-plugin répond à ces besoins !
Beaucoup de produits en back-office qui entraînent des lenteurs sur l’affichage de la liste
des produits ? Une PR refusée existe, cependant vous pouvez vous en inspirer ou en
proposer une autre 👍
LES LIMITES
?
i
POUR QUELS TYPES DE
PROJETS ?
11.
● Des projets à développements spécifiques
● Quand les solutions classiques ne répondent pas aux métiers du client
Exemples :
La présentation produit n’est pas classique (catégorie, fiche produit, panier)
Le tunnel d’achat n’est pas conventionnel
Un front exotique de type PWA/SPA
POUR QUELS TYPES DE PROJETS ?
CONTRIBUTION
12.
Good first issue
https://github.com/Sylius/Sylius/labels/Good%20First%20Issue
• LE PROJET BELENVY •
QUESTIONS ?
Olivier ALLAIN @oallain33

Contenu connexe

Tendances

KnowBe4 Investor Presentation Q2 2022.pdf
KnowBe4 Investor Presentation Q2 2022.pdfKnowBe4 Investor Presentation Q2 2022.pdf
KnowBe4 Investor Presentation Q2 2022.pdf
BobMilton5
 
Masterclass - transfo num de la médiation culturelle - c.delebarre, m.rouc...
  Masterclass - transfo num de la médiation culturelle - c.delebarre, m.rouc...  Masterclass - transfo num de la médiation culturelle - c.delebarre, m.rouc...
Masterclass - transfo num de la médiation culturelle - c.delebarre, m.rouc...
Charlotte Delebarre
 
Strategie digitale fondamentaux
Strategie digitale fondamentauxStrategie digitale fondamentaux
Strategie digitale fondamentaux
Céline Camoun
 
Etude de cas - L'oréal
Etude de cas - L'oréalEtude de cas - L'oréal
Etude de cas - L'oréal
Marion Dumontet
 
Enhancing the Retail Omnichannel Customer Experience
Enhancing the Retail Omnichannel Customer ExperienceEnhancing the Retail Omnichannel Customer Experience
Enhancing the Retail Omnichannel Customer Experience
SPS Commerce
 
C1. Stratégie d'influence sur les réseaux sociaux
C1. Stratégie d'influence sur les réseaux sociauxC1. Stratégie d'influence sur les réseaux sociaux
C1. Stratégie d'influence sur les réseaux sociaux
Cap'Com
 
MENER UN PROJET E-COMMERCE
MENER UN PROJET E-COMMERCEMENER UN PROJET E-COMMERCE
MENER UN PROJET E-COMMERCE
SQLI DIGITAL EXPERIENCE
 
Competitic veille concurrentielle - numerique en entreprise
Competitic   veille concurrentielle - numerique en entrepriseCompetitic   veille concurrentielle - numerique en entreprise
Competitic veille concurrentielle - numerique en entreprise
COMPETITIC
 
Comment développer la présence de votre entreprise sur Internet ?
Comment développer la présence de votre entreprise sur Internet ?Comment développer la présence de votre entreprise sur Internet ?
Comment développer la présence de votre entreprise sur Internet ?
CYB@RDECHE
 
Furet du Nord
Furet du NordFuret du Nord
Furet du NordBibliolab
 
e-commerce et sécurié
e-commerce et sécuriée-commerce et sécurié
e-commerce et sécurié
Brahim Belghmi
 
Initiation au e-commerce !
Initiation au e-commerce !Initiation au e-commerce !
Initiation au e-commerce !
Samuel Robert
 
Le Marketing olfactif, des bénéfices démontrés /BVA-Air Bergé
Le Marketing olfactif, des bénéfices démontrés /BVA-Air BergéLe Marketing olfactif, des bénéfices démontrés /BVA-Air Bergé
Le Marketing olfactif, des bénéfices démontrés /BVA-Air Bergé
Melanie Bergeron
 
Plan de dossier Innovation Produit
Plan de dossier Innovation ProduitPlan de dossier Innovation Produit
Plan de dossier Innovation ProduitDr. Gabriel Guallino
 
Metaverse development company
Metaverse development companyMetaverse development company
Metaverse development company
zaarahary
 
Effectiveness of CRM programme in sbi
Effectiveness of CRM programme in sbiEffectiveness of CRM programme in sbi
Effectiveness of CRM programme in sbi
Eguardian India
 
Metaverse Marketing .pptx
Metaverse Marketing .pptxMetaverse Marketing .pptx
Metaverse Marketing .pptx
Avinash603728
 
Etude de cas Auchan/Resoneo : De l’optimisation de l’achat média à la mesure ...
Etude de cas Auchan/Resoneo : De l’optimisation de l’achat média à la mesure ...Etude de cas Auchan/Resoneo : De l’optimisation de l’achat média à la mesure ...
Etude de cas Auchan/Resoneo : De l’optimisation de l’achat média à la mesure ...
RESONEO
 
Challenge auchan dossier_2
Challenge auchan dossier_2Challenge auchan dossier_2
Challenge auchan dossier_2Charles Richard
 
PWP PRESENTATION
PWP PRESENTATIONPWP PRESENTATION
PWP PRESENTATION
Michel Stawniak
 

Tendances (20)

KnowBe4 Investor Presentation Q2 2022.pdf
KnowBe4 Investor Presentation Q2 2022.pdfKnowBe4 Investor Presentation Q2 2022.pdf
KnowBe4 Investor Presentation Q2 2022.pdf
 
Masterclass - transfo num de la médiation culturelle - c.delebarre, m.rouc...
  Masterclass - transfo num de la médiation culturelle - c.delebarre, m.rouc...  Masterclass - transfo num de la médiation culturelle - c.delebarre, m.rouc...
Masterclass - transfo num de la médiation culturelle - c.delebarre, m.rouc...
 
Strategie digitale fondamentaux
Strategie digitale fondamentauxStrategie digitale fondamentaux
Strategie digitale fondamentaux
 
Etude de cas - L'oréal
Etude de cas - L'oréalEtude de cas - L'oréal
Etude de cas - L'oréal
 
Enhancing the Retail Omnichannel Customer Experience
Enhancing the Retail Omnichannel Customer ExperienceEnhancing the Retail Omnichannel Customer Experience
Enhancing the Retail Omnichannel Customer Experience
 
C1. Stratégie d'influence sur les réseaux sociaux
C1. Stratégie d'influence sur les réseaux sociauxC1. Stratégie d'influence sur les réseaux sociaux
C1. Stratégie d'influence sur les réseaux sociaux
 
MENER UN PROJET E-COMMERCE
MENER UN PROJET E-COMMERCEMENER UN PROJET E-COMMERCE
MENER UN PROJET E-COMMERCE
 
Competitic veille concurrentielle - numerique en entreprise
Competitic   veille concurrentielle - numerique en entrepriseCompetitic   veille concurrentielle - numerique en entreprise
Competitic veille concurrentielle - numerique en entreprise
 
Comment développer la présence de votre entreprise sur Internet ?
Comment développer la présence de votre entreprise sur Internet ?Comment développer la présence de votre entreprise sur Internet ?
Comment développer la présence de votre entreprise sur Internet ?
 
Furet du Nord
Furet du NordFuret du Nord
Furet du Nord
 
e-commerce et sécurié
e-commerce et sécuriée-commerce et sécurié
e-commerce et sécurié
 
Initiation au e-commerce !
Initiation au e-commerce !Initiation au e-commerce !
Initiation au e-commerce !
 
Le Marketing olfactif, des bénéfices démontrés /BVA-Air Bergé
Le Marketing olfactif, des bénéfices démontrés /BVA-Air BergéLe Marketing olfactif, des bénéfices démontrés /BVA-Air Bergé
Le Marketing olfactif, des bénéfices démontrés /BVA-Air Bergé
 
Plan de dossier Innovation Produit
Plan de dossier Innovation ProduitPlan de dossier Innovation Produit
Plan de dossier Innovation Produit
 
Metaverse development company
Metaverse development companyMetaverse development company
Metaverse development company
 
Effectiveness of CRM programme in sbi
Effectiveness of CRM programme in sbiEffectiveness of CRM programme in sbi
Effectiveness of CRM programme in sbi
 
Metaverse Marketing .pptx
Metaverse Marketing .pptxMetaverse Marketing .pptx
Metaverse Marketing .pptx
 
Etude de cas Auchan/Resoneo : De l’optimisation de l’achat média à la mesure ...
Etude de cas Auchan/Resoneo : De l’optimisation de l’achat média à la mesure ...Etude de cas Auchan/Resoneo : De l’optimisation de l’achat média à la mesure ...
Etude de cas Auchan/Resoneo : De l’optimisation de l’achat média à la mesure ...
 
Challenge auchan dossier_2
Challenge auchan dossier_2Challenge auchan dossier_2
Challenge auchan dossier_2
 
PWP PRESENTATION
PWP PRESENTATIONPWP PRESENTATION
PWP PRESENTATION
 

Similaire à L'e-commerce sans accroc avec Sylius

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
PrestaShop
 
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...
Etienne Bailly
 
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensables
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensablesyOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensables
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensables
Benoit Jester
 
Alphorm.com Formation GLPI: Installation et Adminisration
Alphorm.com Formation GLPI: Installation et AdminisrationAlphorm.com Formation GLPI: Installation et Adminisration
Alphorm.com Formation GLPI: Installation et Adminisration
Alphorm
 
Os18 g formation-ibmi-7-1-update-technical-workshop
Os18 g formation-ibmi-7-1-update-technical-workshopOs18 g formation-ibmi-7-1-update-technical-workshop
Os18 g formation-ibmi-7-1-update-technical-workshopCERTyou Formation
 
Dreamforce Global Gathering
Dreamforce Global GatheringDreamforce Global Gathering
Dreamforce Global Gathering
Paris Salesforce Developer Group
 
Retour d'expérience - Simplicité Software - 3 février 2016
Retour d'expérience - Simplicité Software - 3 février 2016Retour d'expérience - Simplicité Software - 3 février 2016
Retour d'expérience - Simplicité Software - 3 février 2016
Simplicité Software
 
Présentation OCS et GLPI aux Solutions Linux 2008
Présentation OCS et GLPI aux Solutions Linux 2008Présentation OCS et GLPI aux Solutions Linux 2008
Présentation OCS et GLPI aux Solutions Linux 2008
Nouh Walid
 
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
Anne-Sophie Picot
 
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Samuel Metias
 
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
 
Sylius sans e-commerce pourquoi et comment ?
Sylius sans e-commerce pourquoi et comment ?Sylius sans e-commerce pourquoi et comment ?
Sylius sans e-commerce pourquoi et comment ?
Maxime Huran 🌈
 
Afup day 2021 Développez un site e-commerce Headless avec Sylius
Afup day 2021   Développez un site e-commerce Headless avec SyliusAfup day 2021   Développez un site e-commerce Headless avec Sylius
Afup day 2021 Développez un site e-commerce Headless avec Sylius
Olivier ALLAIN
 
IBM i: Built for Business - Philippe Bourgeois
IBM i: Built for Business - Philippe BourgeoisIBM i: Built for Business - Philippe Bourgeois
IBM i: Built for Business - Philippe Bourgeois
Fresche Solutions
 
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
 
Forum PHP 2014 day 1
Forum PHP 2014 day 1Forum PHP 2014 day 1
Forum PHP 2014 day 1
Olivier (DaffyDuke) Duquesne
 
Symfony
SymfonySymfony
Symfony
YAZIDI Imran
 
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
 
Présentation de Kirby CMS
Présentation de Kirby CMSPrésentation de Kirby CMS
Présentation de Kirby CMS
Gilles Vauvarin
 

Similaire à L'e-commerce sans accroc avec Sylius (20)

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
 
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...
 
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensables
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensablesyOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensables
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensables
 
Alphorm.com Formation GLPI: Installation et Adminisration
Alphorm.com Formation GLPI: Installation et AdminisrationAlphorm.com Formation GLPI: Installation et Adminisration
Alphorm.com Formation GLPI: Installation et Adminisration
 
Os18 g formation-ibmi-7-1-update-technical-workshop
Os18 g formation-ibmi-7-1-update-technical-workshopOs18 g formation-ibmi-7-1-update-technical-workshop
Os18 g formation-ibmi-7-1-update-technical-workshop
 
Dreamforce Global Gathering
Dreamforce Global GatheringDreamforce Global Gathering
Dreamforce Global Gathering
 
Retour d'expérience - Simplicité Software - 3 février 2016
Retour d'expérience - Simplicité Software - 3 février 2016Retour d'expérience - Simplicité Software - 3 février 2016
Retour d'expérience - Simplicité Software - 3 février 2016
 
Présentation OCS et GLPI aux Solutions Linux 2008
Présentation OCS et GLPI aux Solutions Linux 2008Présentation OCS et GLPI aux Solutions Linux 2008
Présentation OCS et GLPI aux Solutions Linux 2008
 
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
 
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
 
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!
 
Sylius sans e-commerce pourquoi et comment ?
Sylius sans e-commerce pourquoi et comment ?Sylius sans e-commerce pourquoi et comment ?
Sylius sans e-commerce pourquoi et comment ?
 
Afup day 2021 Développez un site e-commerce Headless avec Sylius
Afup day 2021   Développez un site e-commerce Headless avec SyliusAfup day 2021   Développez un site e-commerce Headless avec Sylius
Afup day 2021 Développez un site e-commerce Headless avec Sylius
 
IBM i: Built for Business - Philippe Bourgeois
IBM i: Built for Business - Philippe BourgeoisIBM i: Built for Business - Philippe Bourgeois
IBM i: Built for Business - Philippe Bourgeois
 
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
 
Forum PHP 2014 day 1
Forum PHP 2014 day 1Forum PHP 2014 day 1
Forum PHP 2014 day 1
 
Symfony
SymfonySymfony
Symfony
 
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 ?
 
Présentation de Kirby CMS
Présentation de Kirby CMSPrésentation de Kirby CMS
Présentation de Kirby CMS
 

L'e-commerce sans accroc avec Sylius

  • 1. L’E-COMMERCE SANS ACCROC AVEC Olivier ALLAIN @oallain33 Friends of Sylius
  • 3. • LE PROJET BELENVY •
  • 5. 2010 Création de Sylius pour la vente de produits de beauté en Pologne 2011 Réécriture et publication sous forme de Bundles Symfony Open Source 2014 Création de l'agence Sylius, qui intègre Sylius 2016 Développement d'une nouvelle version, mieux structurée et plus complète 2017 Arrêt de l'agence d’intégration de Sylius pour se concentrer sur Sylius
  • 6. Sylius v1.0.0 Première version stable Fév 2018 Sylius v1.1.0 Symfony 3.4 actions groupées en BO configuration via dotenv Juin 2018 Sylius v1.2.0 Symfony 4.1 Configuration du ResourceBundle améliorée Oct 2018 Sylius v1.3.0 Symfony Flex Plugins : Invoicing, Admin order creation, ... Fév 2019 Sylius v1.4.0 PHP 7.3 RbacPlugin Août 2019 Mai 2019 Sept 2017 Sylius v1.6.0 Amélioration de l’Admin Amélioration du plugin ShopApiPlugin Sylius v1.5.0 Extraction de composants et bundles
  • 8. UNE PHILOSOPHIE- Backward Compatibility Promise 3.4 // 4.3 ● High Developer Productivity ● Focused & Easy To Integrate ● Simple To Deploy & Host Enables ● Fast Iteration ● Prepared for the Future ● Framework PHP ● Qualité du code ● Principes SOLID ● Tests 80% DES BESOINS E-COMMERCE COUVERTS POUR LE PLAISIR DES DÉVELOPPEURS
  • 11. COMPONENTS ---- ● 1 composant = 1 responsabilité / fonctionnalité ● Découplé et en PHP pur, donc utilisable sur tous vos projets PHP Exemple : Addressing Component BUNDLES ---- ● 1 bundle = 1 composant ● Bundle Symfony, donc utilisable sur tous vos projets Symfony ● Configuration, formulaire, service, ... Exemple : SyliusAddressingBundle CORE ---- ● SyliusCoreBundle : intégrer d’autres Bundles Exemple : Une commande est associée à des adresses.
  • 12. ADMIN ---- ● Administration simple et fonctionnelle ● Peut être trop simpliste et pauvre en fonctionnalités ? SHOP ---- ● La boutique : épurée et simple ● Peut être trop ? Pas de gestion CMS par exemple API ---- ● RESTful JSON/XML API ● Modèle CQS (et pas CRUD) pour traiter la logique dans un bus de commande ● Système de tri et de filtres basiques ● A quand la migration sur Api Platform ? Toutes ces briques sont bien sûr remplaçables !
  • 13. • LE PROJET BELENVY • Nous n'utilisons pas l’API Nous utilisons des Bundles Symfony friendsofsymfony/jsrouting-bundle mailjet/mailjet-bundle jmose/command-scheduler-bundle ...
  • 14. SYLIUS, DU BACK AU FRONT .04.
  • 15. LE BACK-OFFICE- Ancien Back-office Back-office v1.6 et plus Sonata Project
  • 16. LE FRONT-OFFICE- ● Par défaut ● Peu connu des devs front ● Une intégration avec Webpack Encore pas simple ● Plugin officiel supporté par l’ équipe Sylius ● Webpack Encore ● Qui ne connaît pas Bootstrap ? ● Je vous le conseille 😉 ● PWA ● Angular ● React ● VUE.js ● ... SEMANTIC UI BOOTSTRAP EN UTILISANT L’API
  • 17. • LE PROJET BELENVY •
  • 18. • LE PROJET BELENVY •
  • 20. Bundle de gestion du CRUD des entités Très utilisé par le Shop et le l’API Utilisation des DTO Pour des manipulations plus complexes OnePageCheckout Belenvy Les réponses des controller sont agnostiques Possibilité de les utiliser indifféremment par le Shop et l'API RESSOURCES BUNDLE-
  • 21. WINZOO STATE MACHINE- Les machines à états sont utilisées sur tous les changements de statuts dans Sylius Sur chaque transition il est possible de câbler des évènements appelés callbacks Très pratique pour envoyer un mail au client afin de l’informer du changement de statut de sa commande par exemple Certains regretteront que ce ne soit pas symfony/workflow qui soit utilisé, mais il n'existait pas à l'époque (difficilement remplaçable)
  • 24. FormExtension Très pratique pour ajouter aux formulaires les attributs dont vous avez besoin. Les FormType sont souvent en "final" donc c'est une pratique conseillée i
  • 25. EVENTS (SONATA BACK & FRONT)- Les événements Sonata sont présents en Back et en Front et permettent d’ajouter des comportements facilement Pour des besoins plus spécifiques il est toujours possible de surcharger le thème. i
  • 26. FIXTURES- Extension de Doctrine data fixtures Permet d'avoir un jeu de données cohérent pour les tests Permet d'avoir des données d'initialisation pour la production i
  • 27. OVERRIDING- Sylius tire toute la puissance de Symfony et de Twig pour overrider n'importe quels classe, fonction, configuration, template, … Ainsi que tous les mécanismes présents sur Symfony, par exemple, la décoration de service.
  • 29. LES OUTILS POUR LES TESTS ● PHPSpec permet d’ écrire une spécification du code avant d'écrire le code ● 410 classes testées (6 secondes) ● Les tests unitaires, la base 😉 ● Tests: 422, Assertions: 1452 (2 minutes) ● Le comportement de l'application est décrit par des scénarios, qui sont ensuite transformés en tests automatisés, joués par Behat. ● Toutes les fonctionnalités de Sylius sont couvertes par des tests Behat ● Environ 1 400 scénarios et 15 000 steps ● 35 minutes sur Github, c'est long ● Exécute les outils précédemment cités + security-checker + phpstan + linters (Twig, Yaml) ● Total 45 minutes
  • 31. LES OFFICIELS LES TROUVER SUR PACKAGIST ● Sylius valide et officialise des plugins présents sur son site web ● +30 plugins ● Validation manuelle longue à faire, d'où le peu de plugins validés ● https://packagist.org/explore/?tags=sylius-plugin ● +70 plugins LES AVANTAGES ● Ajout de fonctionnalités facilité ● Cycle de développement plus rapide i
  • 32. • LE PROJET BELENVY • Nous utilisons des Plugins Sylius friendsofsylius/sylius-import-export-plugin bitbag/cms-plugin ...
  • 34. POURQUOI AVOIR CRÉÉ SYLIUS PLUS ? LES AVANTAGES ● Multi-boutique avancé ● Gestion des retours (RMA) ● Inventaire multi-sources ● Permissions utilisateurs avancées ● Support technique ● Un responsable de la réussite client ● Une assistance à la réussite du projet (option) ● Se rapprocher de ses clients et aider au déploiement de Sylius via le support ● Monétiser du service pour pérenniser l’entreprise et rester sur un mode d’autofinancement
  • 38. Sylius ne couvre pas tous les besoins... cependant il existe probablement un plugin pour palier à cela, ou alors il vous faudra coder 😉 La recherche de produit pèche en front, à cause du nombre important de produits ? Vous avez besoin d’une recherche avancée basée sur des filtres ? ⇒ Le Plugin bitbag/elasticsearch-plugin répond à ces besoins ! Beaucoup de produits en back-office qui entraînent des lenteurs sur l’affichage de la liste des produits ? Une PR refusée existe, cependant vous pouvez vous en inspirer ou en proposer une autre 👍 LES LIMITES ? i
  • 39. POUR QUELS TYPES DE PROJETS ? 11.
  • 40. ● Des projets à développements spécifiques ● Quand les solutions classiques ne répondent pas aux métiers du client Exemples : La présentation produit n’est pas classique (catégorie, fiche produit, panier) Le tunnel d’achat n’est pas conventionnel Un front exotique de type PWA/SPA POUR QUELS TYPES DE PROJETS ?
  • 43. • LE PROJET BELENVY •