如何自定义Sylius以出售免费产品(默认情况下,最小价格为0.01)



我必须基于Sylius的商店来销售免费产品。为此,我遵循了文档"自定义验证"并进行了修改:

#AppBundle/Resources/config/validation.yml
SyliusComponentCoreModelChannelPricing:
    # see http://docs.sylius.org/en/latest/customization/validation.html
    #the original constraint said that the minimum price is 0.01 in vendor/sylius/sylius/src/Sylius/Bundle/CoreBundle/Resources/config/validation/ChannelPricing.xml
    properties:
        price:
            - NotBlank:
                message: sylius.channel_pricing.price.not_blank
                groups: [app_product]
            - Range:
                min: 0
                minMessage: app.channel_pricing.price.min
                groups: [app_product]

#app/config/parameters.yml
parameters:
    sylius.form.type.channel_pricing.validation_groups: [app_product] # see http://docs.sylius.org/en/latest/customization/validation.html

它一无所获:在Symfony Profiler中,Sylius验证组仍在应用中。

我无法弄清楚我做了什么不好。

请注意:

  • 我尝试将参数存储到service.yml文件中,它确实没有更改。
  • 我不知道如何找到参数的名称,因此我使用了一个类似于ressource sylius.channel_pricing的名称(请参阅:bin/console sylius:debug:resource sylius.channel_pricing

我从@pjedrzejewski复制粘贴答案:

也许您应该使用促销来应用适当的折扣并获得 订单总计为0?那么Sylius应该很好地处理它。我不是 当然,我们应该允许设定价格0,可能会导致可怕的错误

相关内容

最新更新