定制 brille24/sylius-tierprice-plugin 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

brille24/sylius-tierprice-plugin

最新稳定版本:v4.0.0

Composer 安装命令:

composer require brille24/sylius-tierprice-plugin

包简介

A plugin that allows to add tierprices to Sylius

README 文档

README

Sylius Tier Price Plugin

Build Status

This plugin adds tier pricing to Sylius one product has different prices based on the quantity.

Installation

  • Install the bundle via composer composer require brille24/sylius-tierprice-plugin
  • Register the bundle in your bundles.php:
return [
    //...

    Brille24\SyliusTierPricePlugin\Brille24SyliusTierPricePlugin::class => ['all' => true],
];
  • Add the config.yaml to your local config/config.yaml
imports:
    ...
    - { resource: '@Brille24SyliusTierPricePlugin/config/config.yaml'}
  • For API functionality add the bundle's routes.yml to the local app/config/routes.yml
...
brille24_tierprice_bundle:
    resource: '@Brille24SyliusTierPricePlugin/config/routes.yml'
  • Go into your ProductVariant class and add the following trait and add one method call to the constructor
class ProductVariant extends BaseProductVariant implements \Brille24\SyliusTierPricePlugin\Entity\ProductVariantInterface
{
    use \Brille24\SyliusTierPricePlugin\Traits\TierPriceableTrait;

    public function __construct() {
        parent::__construct(); // Your constructor here

        $this->initTierPriceableTrait(); // "Constructor" of the trait
    }

    protected function createTranslation(): ProductVariantTranslationInterface
    {
        return new ProductVariantTranslation();
    }
}
  • Finally update the database, install the assets and update the translations:
bin/console doctrine:schema:update --force
bin/console assets:install
bin/console translation:update <locale> --force

Integration

  • This bundle decorates the sylius.calculator.product_variant_price service. If you wish to change that, you could register a compiler pass.
  • This bundle decorates the sylius.order_processing.order_prices_recalculator service. If you wish to use your own order processor or change its priority, you could register a compiler pass.

Usage

First of all you have to set up a product with as many variants as you want. Then in each of these variants you can set the tier pricing based on the channels. The table automatically sorts itself to provide a better overview for all different tiers, you configured.

In the frontend the user will see a nice looking table right next to the "add to cart" button that shows the discount for the different tiers like so:

Creating data

You can easily create the tier prices with fixtures like that.

sylius_fixtures:
    suites:
        my_suite:
            fixtures:
                tier_prices:
                    options:
                        custom:
                            - product_variant: "20125148-54ca-3f05-875f-5524f95aa85b"
                              channel: US_WEB
                              quantity: 10
                              price: 5

For this the products need to be created first and the product variant must also exist.

统计信息

  • 总下载量: 170.55k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 46
  • 点击次数: 1
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 46
  • Watchers: 3
  • Forks: 39
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-04-06