juicesweb/sylius-tierprice-plugin

一个允许为Sylius添加分级价格的插件

安装: 3

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 37

类型:sylius-plugin

This package is not auto-updated.

Last update: 2024-10-02 23:16:08 UTC


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'}

并将 resources.yml 添加到您的本地 config/resource.yml

imports:
    ...
    - { resource: '@Brille24SyliusTierPricePlugin/Resources/config/resource.yml'}

这样所有的Sylius资源覆盖都会在 app/config/resources.yml 中发生

  • 为了API功能,将包的 routing.yml 添加到本地 app/config/routing.yml
...
brille24_tierprice_bundle:
    resource: '@Brille24SyliusTierPricePlugin/Resources/config/routing.yml'
  • 最后更新数据库,安装资源,并更新翻译
bin/console doctrine:schema:update --force
bin/console assets:install
bin/console translation:update <locale> --force

集成

  • 此包覆盖了Sylius提供的 ProductVariant 类。如果您希望也在您的应用程序中覆盖此类,您必须将包的 resource.yml 中的配置与您自己的合并。
  • 此包装饰了 sylius.calculator.product_variant_price 服务。如果您想更改它,可以注册一个 编译器传递
  • 此包装饰了 sylius.order_processing.order_prices_recalculator 服务。如果您想使用自己的订单处理器或更改其优先级,可以注册一个 编译器传递

使用

首先,您必须设置一个产品,并根据需要创建尽可能多的变体。然后在每个这些变体中,您可以根据渠道设置分级价格。表格会自动排序,以提供对所有配置的不同分级的一个更好的概览。

在前端,用户将看到与“添加到购物车”按钮并排的漂亮表格,显示不同分级的折扣,如下所示

创建数据

您可以使用类似以下的固定值轻松创建分级价格。

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进行配置。这可能与使用注解的项目发生冲突。