From 34d61e53f076a806500b069eee90c3218edc4668 Mon Sep 17 00:00:00 2001 From: Ibes Date: Sat, 1 Apr 2023 12:31:53 +0200 Subject: [PATCH] Label management + README --- README.md | 197 +++++++++++----------- composer.json | 6 +- github.png | Bin 0 -> 27862 bytes src/Api/Client.php | 1 + src/DependencyInjection/Configuration.php | 3 + tests/Application/config/bundles.php | 1 - 6 files changed, 110 insertions(+), 98 deletions(-) create mode 100644 github.png diff --git a/README.md b/README.md index a0ae6d6..b6ecd8b 100644 --- a/README.md +++ b/README.md @@ -1,134 +1,139 @@ -

- - - -

+![Logo](github.png) -

Plugin Skeleton

+![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/StudioWaaz/SyliusTntPlugin/build.yml?style=for-the-badge) -

Skeleton for starting Sylius plugins.

+# WaazSyliusTntPlugin -Testing commands -APP_ENV=test symfony php vendor/bin/behat -- [x] translations -- [x] renaming cancel +This plugin allows you to generate shipping labels for TNT carrier. -- [ ] label format -- [ ] dropoff stuff -- [x] configuration default values -- [x] configuration for using g/kg (g by default) -- [ ] data-tnt-select-classes -- [x] behat js -- [ ] complete phpspec -- [ ] README -## Documentation +## Features -For a comprehensive guide on Sylius Plugins development please go to Sylius documentation, -there you will find the Plugin Development Guide, that is full of examples. +- Shipping label export +- Check that the postal code and city match for TNT : for this feature, if the country chosen is 'FR' then the city field becomes a select with city proposals from the tnt webservice -## Quickstart Installation -1. Run `composer create-project sylius/plugin-skeleton ProjectName`. +## Installation + +**Prerequisite**: you must first configure/install the `bitbag/shipping-export-plugin` + +Install plugin with composer + +```bash +composer require waaz/sylius-tnt-plugin +``` +Add plugin dependencies to your `config/bundles.php` file: + +```php +return [ + ... + + Waaz\SyliusTntPlugin\WaazSyliusTntPlugin::class => ['all' => true], +]; +``` + +Add route in your `config/routes/sylius_shop.yaml` file: +```yaml +... +waaz_tnt_shop: + resource: "@WaazSyliusTntPlugin/Resources/config/routing/shop_tnt.yaml" +``` + +Add parameter validation_groups in your `config/services.yaml` file: +```yaml +parameters: + ... + sylius.form.type.checkout_address.validation_groups: ['sylius', 'tnt_address'] +``` + +Run assets install command : `bin/console assets:install` + +Add plugin asset in `templates/bundles/SyliusShopBundle/_scripts.html.twig` file +```twig +{% include '@SyliusUi/_javascripts.html.twig' with {'path': 'assets/shop/js/app.js'} %} +{% include '@SyliusUi/_javascripts.html.twig' with {'path': 'bundles/waazsyliustntplugin/js/tnt-city.js'} %} +``` + +## Configuration +You can configure this plugin by creating a file `config/packages/waaz_sylius_tnt_plugin`: +```yml +waaz_sylius_tnt: + username: 'login' # Enter your tnt username here. You should use an environment variable like `%env(TNT_PASSWORD)%` + password: 'password' # Same for password + sandbox: true # Sandbox mode + weightUnit: 'g' # 'g' or 'kg'. Weight unit you use in your shop + citySelectClasses: '' # Classes you want to add to city select field + +``` -2. From the plugin skeleton root directory, run the following commands: - ```bash - $ (cd tests/Application && yarn install) - $ (cd tests/Application && yarn build) - $ (cd tests/Application && APP_ENV=test bin/console assets:install public) - $ (cd tests/Application && APP_ENV=test bin/console doctrine:database:create) - $ (cd tests/Application && APP_ENV=test bin/console doctrine:schema:create) - ``` +## Running Tests -To be able to setup a plugin's database, remember to configure you database credentials in `tests/Application/.env` and `tests/Application/.env.test`. +- PHPSpec -## Usage +```bash +vendor/bin/phpspec run +``` -### Running plugin tests +- Behat (non-JS scenarios) - - PHPUnit +```bash +vendor/bin/behat --strict --tags="~@javascript" +``` - ```bash - vendor/bin/phpunit - ``` +- Behat (JS scenarios) - - PHPSpec + 1. [Install Symfony CLI command](https://symfony.com/download). + + 2. Start Headless Chrome: ```bash - vendor/bin/phpspec run + google-chrome-stable --enable-automation --disable-background-networking --no-default-browser-check --no-first-run --disable-popup-blocking --disable-default-apps --allow-insecure-localhost --disable-translate --disable-extensions --no-sandbox --enable-features=Metal --headless --remote-debugging-port=9222 --window-size=2880,1800 --proxy-server='direct://' --proxy-bypass-list='*' http://127.0.0.1 ``` - - Behat (non-JS scenarios) + 3. Install SSL certificates (only once needed) and run test application's webserver on `127.0.0.1:8080`: ```bash - vendor/bin/behat --strict --tags="~@javascript" + symfony server:ca:install + APP_ENV=test symfony server:start --port=8080 --dir=tests/Application/public --daemon ``` - - Behat (JS scenarios) - - 1. [Install Symfony CLI command](https://symfony.com/download). - - 2. Start Headless Chrome: - - ```bash - google-chrome-stable --enable-automation --disable-background-networking --no-default-browser-check --no-first-run --disable-popup-blocking --disable-default-apps --allow-insecure-localhost --disable-translate --disable-extensions --no-sandbox --enable-features=Metal --headless --remote-debugging-port=9222 --window-size=2880,1800 --proxy-server='direct://' --proxy-bypass-list='*' http://127.0.0.1 - ``` - - 3. Install SSL certificates (only once needed) and run test application's webserver on `127.0.0.1:8080`: - - ```bash - symfony server:ca:install - APP_ENV=test symfony server:start --port=8080 --dir=tests/Application/public --daemon - ``` - 4. Run Behat: - - ```bash - vendor/bin/behat --strict --tags="@javascript" - ``` - - - Static Analysis - - - Psalm - - ```bash - vendor/bin/psalm - ``` - - - PHPStan - - ```bash - vendor/bin/phpstan analyse -c phpstan.neon -l max src/ - ``` - - Coding Standard - ```bash - vendor/bin/ecs check src + vendor/bin/behat --strict --tags="@javascript" ``` -### Opening Sylius with your plugin - -- Using `test` environment: +- Psalm ```bash - (cd tests/Application && APP_ENV=test bin/console sylius:fixtures:load) - (cd tests/Application && APP_ENV=test bin/console server:run -d public) + vendor/bin/psalm ``` -- Using `dev` environment: +- PHPStan - ```bash - (cd tests/Application && APP_ENV=dev bin/console sylius:fixtures:load) - (cd tests/Application && APP_ENV=dev bin/console server:run -d public) - ``` +```bash +vendor/bin/phpstan analyse -c phpstan.neon -l max src/ +``` + +- Coding Standard + +```bash +vendor/bin/ecs check src +``` + +## Roadmap + +- Pickup point provider (with [setono/sylius-pickup-point-plugin](https://github.com/Setono/SyliusPickupPointPlugin)) +- Manage pickup point expedition (export shipping) + + +## Author + +- [@ehibes](https://www.github.com/ehibes) for [Studio Waaz](https://www.studiowaaz.com) +## License +This plugin's source code is completely free and released under the terms of the MIT license. -Install steps : -config plugin -routing => -config => -sylius.form.type.checkout_address.validation_groups: ['sylius', 'tnt_address'] \ No newline at end of file diff --git a/composer.json b/composer.json index 3b5bc3c..04b92e5 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,11 @@ "description": "This TNT plugin enables you to easily print shipping labels and show available pickup locations for customers to choose from.", "keywords": [ "sylius", - "sylius-plugin" + "sylius-plugin", + "tnt", + "shipping", + "labels", + "pickup" ], "license": "MIT", "require": { diff --git a/github.png b/github.png new file mode 100644 index 0000000000000000000000000000000000000000..60284d988377a4b002c250a75e9e4edc552cae74 GIT binary patch literal 27862 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 z!setSender($sender); $expeditionRequest->setReceiver($receiver); $expeditionRequest->setParcelsRequest([$parcelRequest]); + $expeditionRequest->setLabelFormat($this->shippingGateway->getConfigValue('label_format')); return $expeditionRequest; diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php index 22398f4..829b142 100644 --- a/src/DependencyInjection/Configuration.php +++ b/src/DependencyInjection/Configuration.php @@ -42,6 +42,9 @@ protected function addGlobalSection(ArrayNodeDefinition $node): void ->values(['kg', 'g']) ->defaultValue('g') ->end() + ->scalarNode('citySelectClasses') + ->defaultValue('form-control') + ->end() ->end() ; } diff --git a/tests/Application/config/bundles.php b/tests/Application/config/bundles.php index fc1407f..8b937a0 100644 --- a/tests/Application/config/bundles.php +++ b/tests/Application/config/bundles.php @@ -45,7 +45,6 @@ Sylius\Bundle\ThemeBundle\SyliusThemeBundle::class => ['all' => true], Sylius\Bundle\AdminBundle\SyliusAdminBundle::class => ['all' => true], Sylius\Bundle\ShopBundle\SyliusShopBundle::class => ['all' => true], - Waaz\SyliusTntPlugin\WaazSyliusTntPlugin::class => ['all' => true], Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true, 'test_cached' => true], Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true, 'test_cached' => true], FriendsOfBehat\SymfonyExtension\Bundle\FriendsOfBehatSymfonyExtensionBundle::class => ['test' => true, 'test_cached' => true],