gewebe/sylius-product-deposit-plugin
最新稳定版本:v1.2.2
Composer 安装命令:
composer require gewebe/sylius-product-deposit-plugin
包简介
A Sylius plugin that allows products with deposit price
关键字:
README 文档
README
The product deposit plugin in Sylius allows you to set an amount of refundable deposit price for any product. For example: deposit for bottles, cans, pallets, batteries or car replacement parts.
Features
- Store individual deposit prices for each product variant and channel
- The deposit price is displayed on the product detail page
- At shopping cart / checkout / order the total unit price inclusive deposit is displayed.
Installation
Download the plugin via composer
composer require gewebe/sylius-product-deposit-plugin
Enable the plugin
Register the plugin by adding it to your config/bundles.php file
<?php return [ // ... Gewebe\SyliusProductDepositPlugin\GewebeSyliusProductDepositPlugin::class => ['all' => true], ];
Configure the plugin
# config/packages/gewebe_sylius_product_deposit.yaml imports: - { resource: '@GewebeSyliusProductDepositPlugin/Resources/config/app/config.yml'}
Copy the template overrides from the plugin directory
From: [shop_dir]/vendor/gewebe/sylius-product-deposit-plugin/test/Application/templates
To: [shop_dir]/templates
Extend ProductVariant entity
- If you use
annotationsmapping:
# src/Entity/Product/ProductVariant.php namespace App\Entity\Product; use Doctrine\ORM\Mapping as ORM; use Gewebe\SyliusProductDepositPlugin\Entity\ProductVariantInterface as ProductVariantDepositInterface; use Gewebe\SyliusProductDepositPlugin\Entity\ProductVariantDepositTrait; use Sylius\Component\Core\Model\ProductVariant as BaseProductVariant; /** * @ORM\Entity * @ORM\Table(name="sylius_product_variant") */ class ProductVariant extends BaseProductVariant implements ProductVariantDepositInterface { use ProductVariantDepositTrait; public function __construct() { parent::__construct(); $this->initProductVariantDepositTrait(); } // ... }
- If you use
yamlmapping add also:
App\Entity\Product\ProductVariant: type: entity table: sylius_product_variant manyToOne: depositTaxCategory: targetEntity: Sylius\Component\Taxation\Model\TaxCategoryInterface joinColumn: name: deposit_tax_category_id referencedColumnName: id onDelete: SET NULL oneToMany: channelDeposits: targetEntity: Gewebe\SyliusProductDepositPlugin\Entity\ChannelDepositInterface mappedBy: productVariant orphanRemoval: true indexBy: channelCode cascade: - all
Update your database schema
bin/console doctrine:migrations:diff bin/console doctrine:migrations:migrate
Usage
1. Add a deposit price to a product variant
2. Browse a product variant with deposit price
3. Buy a product with deposit price included in final product price
Testing
Setup
$ composer install $ cd tests/Application $ yarn install $ yarn run gulp $ bin/console assets:install public -e test $ bin/console doctrine:schema:create -e test $ export APP_ENV=test $ symfony server:start --port=8080 --dir=public
Run Tests
$ vendor/bin/behat $ vendor/bin/phpspec run $ vendor/bin/phpstan analyse -c phpstan.neon -l max src/ $ vendor/bin/psalm
统计信息
- 总下载量: 1.91k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-01-10


