brille24/sylius-tierprice-plugin

一个允许为Sylius添加阶梯价格的插件

安装次数: 150,632

依赖项: 1

建议者: 0

安全: 0

星标: 45

关注者: 5

分支: 37

开放问题: 6

类型:sylius-plugin


README

Sylius 阶梯价格插件

Build Status

此插件为Sylius添加阶梯定价功能,一个产品可以根据数量不同设置不同的价格。

安装

  • 使用Composer安装该包 composer require brille24/sylius-tierprice-plugin
  • 在您的 bundles.php 中注册该包
return [
    //...

    Brille24\SyliusTierPricePlugin\Brille24SyliusTierPricePlugin::class => ['all' => true],
];
  • config.yml 添加到您的本地 config/config.yml
imports:
    ...
    - { resource: '@Brille24SyliusTierPricePlugin/Resources/config/config.yml'}
  • 为了API功能,将包的 routing.yml 添加到本地 app/config/routing.yml
...
brille24_tierprice_bundle:
    resource: '@Brille24SyliusTierPricePlugin/Resources/config/routing.yml'
  • 进入您的ProductVariant类,添加以下特质并在构造函数中添加一个方法调用
class ProductVariant extends BaseProductVariant implements \Brille24\SyliusTierPricePlugin\Entity\ProductVariantInterface
{
    use \Brille24\SyliusTierPricePlugin\Traits\TierPriceableTrait;

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

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

    protected function createTranslation(): ProductVariantTranslationInterface
    {
        return new ProductVariantTranslation();
    }
}
  • 最后更新数据库,安装资产并更新翻译
bin/console doctrine:schema:update --force
bin/console assets:install
bin/console translation:update <locale> --force

集成

  • 此包装饰了 sylius.calculator.product_variant_price 服务。如果您想更改它,可以注册一个 编译器传递
  • 此包装饰了 sylius.order_processing.order_prices_recalculator 服务。如果您想使用自己的订单处理器或更改其优先级,可以注册一个 编译器传递

用法

首先,您必须设置一个产品,其中包含您想要的变体数量。然后在每个变体中,您可以根据渠道设置阶梯定价。表格会自动排序,以提供对所有不同级别的配置的更好概述。

在前端,用户将看到“添加到购物车”按钮旁边的表格,显示不同级别的折扣,如下所示

创建数据

您可以使用类似这样的 fixtures轻松创建阶梯价格。

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

为此,需要先创建产品,并且产品变体也必须存在。

扩展

如果您想扩展阶梯价格,请注意,此插件使用XML进行配置。这可能与使用注释的项目冲突。