setono / sylius-climate-partner-plugin
Setono example plugin for Sylius.
Installs: 10 218
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 1
Type:sylius-plugin
Requires
- php: >=7.4
- api-platform/core: ^2.6
- doctrine/persistence: ^1.3 || ^2.2
- knplabs/knp-menu: ^3.2
- psr/log: ^1.1
- sylius/resource-bundle: ^1.6
- symfony/config: ^4.4 || ^5.0
- symfony/dependency-injection: ^4.4 || ^5.0
- symfony/form: ^4.4 || ^5.0
- symfony/http-foundation: ^4.4 || ^5.0.7
- symfony/http-kernel: ^4.4 || ^5.1.5
- symfony/messenger: ^4.4 || ^5.0
- symfony/routing: ^4.4 || ^5.0
- symfony/translation-contracts: ^1.1 || ^2.4
- webmozart/assert: ^1.10
Requires (Dev)
- friendsofsymfony/oauth-server-bundle: >2.0.0-alpha.0 ^2.0@dev
- lexik/jwt-authentication-bundle: ^2.14
- matthiasnoback/symfony-config-test: ^4.3
- matthiasnoback/symfony-dependency-injection-test: ^4.3
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^9.5
- psalm/plugin-phpunit: ^0.16.1
- psalm/plugin-symfony: ^3.0
- roave/security-advisories: dev-latest
- setono/code-quality-pack: ^2.1.3
- setono/sylius-behat-pack: ^0.2.2
- sylius/admin-api-bundle: ^1.10
- sylius/sylius: ~1.10.7
- symfony/debug-bundle: ^4.4 || ^5.0
- symfony/dotenv: ^4.4 || ^5.0
- symfony/intl: ^4.4 || ^5.0
- symfony/property-info: ^4.4 || ^5.0
- symfony/proxy-manager-bridge: ^4.4.25 || ^5.0
- symfony/serializer: ^4.4 || ^5.0
- symfony/web-profiler-bundle: ^4.4 || ^5.0
- symfony/webpack-encore-bundle: ^1.13
This package is auto-updated.
Last update: 2024-12-15 19:44:12 UTC
README
This plugin will allow customers to add climate offsets to their orders.
frontend.mp4
Installation
composer require setono/sylius-climate-partner-plugin
Import configuration
# config/packages/setono_sylius_climate_partner.yaml imports: # ... - { resource: "@SetonoSyliusClimatePartnerPlugin/Resources/config/app/config.yaml" }
Import routing
# config/routes/setono_sylius_climate_partner.yaml setono_sylius_climate_partner: resource: "@SetonoSyliusClimatePartnerPlugin/Resources/config/routes.yaml"
or if your app doesn't use locales:
# config/routes/setono_sylius_climate_partner.yaml setono_sylius_climate_partner: resource: "@SetonoSyliusClimatePartnerPlugin/Resources/config/routes_no_locale.yaml"
Add plugin class to your bundles.php
Make sure you add it before SyliusGridBundle
, otherwise you'll get
You have requested a non-existent parameter "setono_sylius_climate_partner.model.channel_climate_fee.class".
exception.
<?php // config/bundles.php $bundles = [ // ... Setono\SyliusClimatePartnerPlugin\SetonoSyliusClimatePartnerPlugin::class => ['all' => true], Sylius\Bundle\GridBundle\SyliusGridBundle::class => ['all' => true], // ... ];
Copy API resources
In order to add ClimatePartner API endpoints to Sylius Order section, the API Resource declaration has to be overridden.
If you've not overridden those configuration yet, you can simply copy the whole files into your local config/api_resources
folder.
If you've overridden them already, then you can just merge your config with the endpoints we added.
Resources declaration that need to be copied are:
If you already have them overridden, just add the following item operations:
<itemOperation name="shop_apply_climate_offset"> <attribute name="method">PATCH</attribute> <attribute name="path">/shop/orders/{tokenValue}/apply-climate-offset</attribute> <attribute name="messenger">input</attribute> <attribute name="input">Setono\SyliusClimatePartnerPlugin\Api\Command\ApplyClimateOffset</attribute> <attribute name="openapi_context"> <attribute name="summary">Apply climate offset to cart</attribute> </attribute> <attribute name="denormalization_context"> <attribute name="groups">shop:climate-offset:apply</attribute> </attribute> </itemOperation> <itemOperation name="shop_remove_climate_offset"> <attribute name="method">PATCH</attribute> <attribute name="path">/shop/orders/{tokenValue}/remove-climate-offset</attribute> <attribute name="messenger">input</attribute> <attribute name="input">Setono\SyliusClimatePartnerPlugin\Api\Command\RemoveClimateOffset</attribute> <attribute name="openapi_context"> <attribute name="summary">Remove climate offset to cart</attribute> </attribute> <attribute name="denormalization_context"> <attribute name="groups">shop:climate-offset:apply</attribute> </attribute> </itemOperation>