Grégoire Hébert
PHP / Symfony lead Developper @ Les-Tilleuls.coop
SYLIUS
Post-Mortem d'une migration
Lead-Developper & Formateur @ Les-Tilleuls.coop
@gheb_dev
Dev/consulting/training - Lille/Paris/Amiens
👊 Auto-gérée depuis 2011
⬆ 97% en 2016, 25 employés modèles
masterclass@les-tilleuls.coop
CRM
MONETIQUE
COMPTA
enrichissement données
SERVICE H
BOUTIQUE
MCENTER
CRM
MONETIQUE
COMPTA
SERVICE H
enrichissement données
BOUTIQUE
MCENTER
CRM
MONETIQUE
COMPTA
WEBSITE(sf)
MCENTER
enrichissement données
SERVICE H
BOUTIQUE
CRM
MONETIQUE
COMPTA
SYMFONY
Compte client
enrichissement données
BO
enrichissement données
SERVICE H
BOUTIQUE
MCENTER
CRM
MONETIQUE
COMPTA
SYMFONY
Compte client
enrichissement données
BO
enrichissement données
Compte client
SERVICE H
BOUTIQUE
MCENTER
CRM
MONETIQUE
COMPTA
SYMFONY
Compte client
enrichissement données
BO
enrichissement données
Compte client
SERVICE H
IOS
Donne
moi une API !
ANDROID
Donne
moi une API !
BOUTIQUE
MCENTER
Définition Wikipedia:
PrestaShop est une application Web open source permettant de créer une boutique en ligne dans le but de réaliser du commerce électronique.
Quelques chiffres:
PHP 7.1
GD
Intl
exif
fileInfo
MYSQL 5.X
PostgreSQL
memory_limit > 1024
$ composer create-project sylius/sylius-standard acme
$ cd acme
$ php bin/console sylius:install
$ yarn install
$ yarn run gulp
ADMIN
SHOP
API
CORE
BUNDLES
COMPONENTS
"replace": {
"sylius/addressing": "self.version",
"sylius/addressing-bundle": "self.version",
"sylius/admin-bundle": "self.version",
"sylius/api-bundle": "self.version",
"sylius/attribute": "self.version",
"sylius/attribute-bundle": "self.version",
"sylius/core": "self.version",
"sylius/core-bundle": "self.version",
"sylius/currency": "self.version",
"sylius/currency-bundle": "self.version",
"sylius/customer": "self.version",
"sylius/customer-bundle": "self.version",
"sylius/fixtures-bundle": "self.version",
"sylius/inventory": "self.version",
"sylius/inventory-bundle": "self.version",
"sylius/locale": "self.version",
"sylius/locale-bundle": "self.version",
"sylius/money-bundle": "self.version",
"sylius/order": "self.version",
"sylius/order-bundle": "self.version",
"sylius/payment": "self.version",
"sylius/payment-bundle": "self.version",
"sylius/payum-bundle": "self.version",
"sylius/product": "self.version",
"sylius/product-bundle": "self.version",
"sylius/promotion": "self.version",
"sylius/promotion-bundle": "self.version",
"sylius/registry": "self.version",
"sylius/resource": "self.version",
"sylius/resource-bundle": "self.version",
"sylius/shipping": "self.version",
"sylius/shipping-bundle": "self.version",
"sylius/shop-bundle": "self.version",
"sylius/taxation": "self.version",
"sylius/taxation-bundle": "self.version",
"sylius/taxonomy": "self.version",
"sylius/taxonomy-bundle": "self.version",
"sylius/theme-bundle": "self.version",
"sylius/ui-bundle": "self.version",
"sylius/user": "self.version",
"sylius/user-bundle": "self.version"
}
"require": {
"php": "^7.1",
"stof/doctrine-extensions-bundle": "^1.2",
"sylius/registry": "^1.0",
"sylius/resource-bundle": "^1.0",
"sylius/taxation": "^1.0",
"symfony/framework-bundle": "^3.4"
},
"require": {
"php": "^7.1",
"sylius/registry": "^1.0",
"sylius/resource": "^1.0"
},
Gestion de plusieurs catalogues de produits
Ajout d’un nombre illimité de produits et de catégories
Gestion de produit avancée comme l’ajout de variations pour les produits complexes par exemple
Suivi du stock, des taxes, des promotions et des états de livraisons
Gestion et affichage des taxes par pays et par catégories
Gestion des utilisateurs
Tunnel d’achat personnalisable
Statistiques de suivi de commandes
Configuration des frais de livraison selon taille et poids des produits par exemple
Gestion des données Via une API
final class DefaultCalculators
{
/**
* Flat rate per shipment calculator.
*/
public const FLAT_RATE = 'flat_rate';
/**
* Fixed price per unit calculator.
*/
public const PER_UNIT_RATE = 'per_unit_rate';
private function __construct()
{
}
}
"require": {
"php": "^5.6|^7.0",
"friendsofsymfony/oauth-server-bundle": "^1.5",
"sylius/core-bundle": "^1.0",
"symfony/form": "^3.2",
"symfony/framework-bundle": "^3.2",
"symfony/validator": "^3.2"
},
"require": {
"php": "^7.1",
"fzaninotto/faker": "^1.0",
"jms/serializer-bundle": "^2.0",
"knplabs/knp-gaufrette-bundle": "^0.3",
"sonata-project/intl-bundle": "^2.2",
"swiftmailer/swiftmailer": "^6.0",
"sylius/addressing-bundle": "^1.0",
"sylius/attribute-bundle": "^1.0",
"sylius/core": "^1.0",
"sylius/currency-bundle": "^1.0",
"sylius/customer-bundle": "^1.0",
"sylius/fixtures-bundle": "^1.0",
"sylius/inventory-bundle": "^1.0",
"sylius/locale-bundle": "^1.0",
"sylius/money-bundle": "^1.0",
"sylius/order-bundle": "^1.0",
"sylius/payment-bundle": "^1.0",
"sylius/payum-bundle": "^1.0",
"sylius/product-bundle": "^1.0",
"sylius/promotion-bundle": "^1.0",
"sylius/resource-bundle": "^1.0",
"sylius/review-bundle": "^1.0",
"sylius/shipping-bundle": "^1.0",
"sylius/taxation-bundle": "^1.0",
"sylius/taxonomy-bundle": "^1.0",
"sylius/theme-bundle": "^1.0",
"sylius/user-bundle": "^1.0",
"sylius-labs/association-hydrator": "^1.0",
"symfony/framework-bundle": "^3.4",
"winzou/state-machine-bundle": "^0.3",
"liip/imagine-bundle": "^1.9.1"
},
"require": {
"php": "^5.6|^7.0",
"friendsofsymfony/oauth-server-bundle": "^1.5",
"sylius/core-bundle": "^1.0",
"symfony/form": "^3.2",
"symfony/framework-bundle": "^3.2",
"symfony/validator": "^3.2"
},
"require": {
"php": "^5.6|^7.0",
"friendsofsymfony/oauth-server-bundle": "^1.5",
"sylius/core-bundle": "^1.0",
"symfony/form": "^3.2",
"symfony/framework-bundle": "^3.2",
"symfony/validator": "^3.2"
},
"lexik/jwt-authentication-bundle": "^2.4",
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', [...]
[...]->getName() !== 'mysql', [...]
By Grégoire Hébert
On dit oui ?