SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
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

Forum e commerce brasil - Creating & defining b2b ecommerce strategy
Forum e commerce brasil -  Creating & defining b2b ecommerce strategyForum e commerce brasil -  Creating & defining b2b ecommerce strategy
Forum e commerce brasil - Creating & defining b2b ecommerce strategyMarta Dalton
 
How to Build a Customer-Centric eCommerce Strategy
How to Build a Customer-Centric eCommerce StrategyHow to Build a Customer-Centric eCommerce Strategy
How to Build a Customer-Centric eCommerce StrategySiteworx LLC
 
Deals made easy| Online Shopping Kart |Java,Jsp,JDBC
Deals made easy| Online Shopping Kart |Java,Jsp,JDBCDeals made easy| Online Shopping Kart |Java,Jsp,JDBC
Deals made easy| Online Shopping Kart |Java,Jsp,JDBCSaikiranReddy Sama
 
Omni-Channel (R)etail Evolution
Omni-Channel (R)etail EvolutionOmni-Channel (R)etail Evolution
Omni-Channel (R)etail EvolutionArchana Nilaver
 
Shopify Solutions Proposal PowerPoint Presentation Slides
Shopify Solutions Proposal PowerPoint Presentation SlidesShopify Solutions Proposal PowerPoint Presentation Slides
Shopify Solutions Proposal PowerPoint Presentation SlidesSlideTeam
 
Pitch deck freshmart
Pitch deck  freshmartPitch deck  freshmart
Pitch deck freshmartÖmer Krakiry
 
Project Report on Online shopping by Nawazish Anwar
Project Report on Online shopping by Nawazish AnwarProject Report on Online shopping by Nawazish Anwar
Project Report on Online shopping by Nawazish AnwarNawazish Raaz
 
What Omnichannel Really Means - Forrester Webinar
What Omnichannel Really Means - Forrester WebinarWhat Omnichannel Really Means - Forrester Webinar
What Omnichannel Really Means - Forrester WebinarFreestyle Solutions
 
Go4Grocery - Startup Pitch
Go4Grocery - Startup PitchGo4Grocery - Startup Pitch
Go4Grocery - Startup PitchFahad Ramzan
 
Supply chain management and e business (commerce)
Supply chain management and e business (commerce)Supply chain management and e business (commerce)
Supply chain management and e business (commerce)Muhammad Syahmi
 
A roadmap to omnichannel championship
A roadmap to omnichannel championshipA roadmap to omnichannel championship
A roadmap to omnichannel championshipOpenbravo
 
Harnessing your customer truth from value propositions to sales propositions ...
Harnessing your customer truth from value propositions to sales propositions ...Harnessing your customer truth from value propositions to sales propositions ...
Harnessing your customer truth from value propositions to sales propositions ...Futurecurve
 
Cross-channel User Engagement and How Tokopedia Does It Right
Cross-channel User Engagement and How Tokopedia Does It RightCross-channel User Engagement and How Tokopedia Does It Right
Cross-channel User Engagement and How Tokopedia Does It RightMoEngage Inc.
 
Amazon- Online Reputation Management- Case Study
Amazon- Online Reputation Management- Case StudyAmazon- Online Reputation Management- Case Study
Amazon- Online Reputation Management- Case StudySaket Toshniwal
 
How to Leverage Your Skill Set for Product by Google Product Manager
How to Leverage Your Skill Set for Product by Google Product ManagerHow to Leverage Your Skill Set for Product by Google Product Manager
How to Leverage Your Skill Set for Product by Google Product ManagerProduct School
 
Deliverus Online Supermarkets Pitchdeck
Deliverus Online Supermarkets PitchdeckDeliverus Online Supermarkets Pitchdeck
Deliverus Online Supermarkets PitchdeckCyril Michino
 
How to Build a Great Product Strategy by Okta Product Manager
How to Build a Great Product Strategy by Okta Product ManagerHow to Build a Great Product Strategy by Okta Product Manager
How to Build a Great Product Strategy by Okta Product ManagerProduct School
 
Omni-channel retail : The new normal
Omni-channel retail : The new normalOmni-channel retail : The new normal
Omni-channel retail : The new normalSonata Software
 

Tendances (20)

Forum e commerce brasil - Creating & defining b2b ecommerce strategy
Forum e commerce brasil -  Creating & defining b2b ecommerce strategyForum e commerce brasil -  Creating & defining b2b ecommerce strategy
Forum e commerce brasil - Creating & defining b2b ecommerce strategy
 
How to Build a Customer-Centric eCommerce Strategy
How to Build a Customer-Centric eCommerce StrategyHow to Build a Customer-Centric eCommerce Strategy
How to Build a Customer-Centric eCommerce Strategy
 
Deals made easy| Online Shopping Kart |Java,Jsp,JDBC
Deals made easy| Online Shopping Kart |Java,Jsp,JDBCDeals made easy| Online Shopping Kart |Java,Jsp,JDBC
Deals made easy| Online Shopping Kart |Java,Jsp,JDBC
 
Omni-Channel (R)etail Evolution
Omni-Channel (R)etail EvolutionOmni-Channel (R)etail Evolution
Omni-Channel (R)etail Evolution
 
Shopify Solutions Proposal PowerPoint Presentation Slides
Shopify Solutions Proposal PowerPoint Presentation SlidesShopify Solutions Proposal PowerPoint Presentation Slides
Shopify Solutions Proposal PowerPoint Presentation Slides
 
Pitch deck freshmart
Pitch deck  freshmartPitch deck  freshmart
Pitch deck freshmart
 
Wayfair Deck
Wayfair DeckWayfair Deck
Wayfair Deck
 
Project Report on Online shopping by Nawazish Anwar
Project Report on Online shopping by Nawazish AnwarProject Report on Online shopping by Nawazish Anwar
Project Report on Online shopping by Nawazish Anwar
 
What Omnichannel Really Means - Forrester Webinar
What Omnichannel Really Means - Forrester WebinarWhat Omnichannel Really Means - Forrester Webinar
What Omnichannel Really Means - Forrester Webinar
 
Go4Grocery - Startup Pitch
Go4Grocery - Startup PitchGo4Grocery - Startup Pitch
Go4Grocery - Startup Pitch
 
Supply chain management and e business (commerce)
Supply chain management and e business (commerce)Supply chain management and e business (commerce)
Supply chain management and e business (commerce)
 
A roadmap to omnichannel championship
A roadmap to omnichannel championshipA roadmap to omnichannel championship
A roadmap to omnichannel championship
 
Harnessing your customer truth from value propositions to sales propositions ...
Harnessing your customer truth from value propositions to sales propositions ...Harnessing your customer truth from value propositions to sales propositions ...
Harnessing your customer truth from value propositions to sales propositions ...
 
Best buy
Best buyBest buy
Best buy
 
Cross-channel User Engagement and How Tokopedia Does It Right
Cross-channel User Engagement and How Tokopedia Does It RightCross-channel User Engagement and How Tokopedia Does It Right
Cross-channel User Engagement and How Tokopedia Does It Right
 
Amazon- Online Reputation Management- Case Study
Amazon- Online Reputation Management- Case StudyAmazon- Online Reputation Management- Case Study
Amazon- Online Reputation Management- Case Study
 
How to Leverage Your Skill Set for Product by Google Product Manager
How to Leverage Your Skill Set for Product by Google Product ManagerHow to Leverage Your Skill Set for Product by Google Product Manager
How to Leverage Your Skill Set for Product by Google Product Manager
 
Deliverus Online Supermarkets Pitchdeck
Deliverus Online Supermarkets PitchdeckDeliverus Online Supermarkets Pitchdeck
Deliverus Online Supermarkets Pitchdeck
 
How to Build a Great Product Strategy by Okta Product Manager
How to Build a Great Product Strategy by Okta Product ManagerHow to Build a Great Product Strategy by Okta Product Manager
How to Build a Great Product Strategy by Okta Product Manager
 
Omni-channel retail : The new normal
Omni-channel retail : The new normalOmni-channel retail : The new normal
Omni-channel retail : The new normal
 

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 PrestaShopPrestaShop
 
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 indispensablesBenoit 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 - ...
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...Etienne Bailly
 
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 AdminisrationAlphorm
 
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
 
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 2016Simplicité 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 2008Nouh 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 AzureAnne-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 SyliusOlivier 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 BourgeoisFresche Solutions
 
Présentation partner coliseum 1
Présentation partner coliseum 1Présentation partner coliseum 1
Présentation partner coliseum 1ArielleMeffre
 
Présentation partner coliseum
Présentation partner coliseumPrésentation partner coliseum
Présentation partner coliseumbiswajit44
 
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 CMSGilles 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
 
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
 
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 - ...
 
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 1
Présentation partner coliseum 1Présentation partner coliseum 1
Présentation partner coliseum 1
 
Présentation partner coliseum
Présentation partner coliseumPrésentation partner coliseum
Présentation partner coliseum
 
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 •