mangoweb-sylius/sylius-extended-channels

Sylius扩展渠道插件


README

扩展渠道插件

Approved by Sylius

特性

  • 重复产品和产品变体
  • 批量操作为产品设置分类
  • 将分类标记为外部链接,以便可以使用分类创建具有任何链接的自定义菜单
  • 下载当前汇率
  • 使用下载的或自定义汇率更新产品价格
  • 设置渠道时区
  • 设置渠道电话
  • 按渠道将订单邮件副本发送到自定义电子邮件地址
  • 当SMTP不可用时,防止在提交订单时出现500错误,但记录错误并提交订单
  • 取消某些付款方式未付款的订单
  • 允许更改产品和产品变体的代码
  • Hello Bars的管理(您可以使用自己的类型)

安装

  1. 运行 $ composer require mangoweb-sylius/sylius-extended-channels

  2. 将插件类添加到您的 config/bundles.php

    return [
       ...
       MangoSylius\ExtendedChannelsPlugin\MangoSyliusExtendedChannelsPlugin::class => ['all' => true],
    ];
  3. 您的实体 Channel 必须实现 \MangoSylius\ExtendedChannelsPlugin\Model\ExtendedChannelInterface。您可以使用Trait MangoSylius\ExtendedChannelsPlugin\Model\ExtendedChannelTrait

  4. 您的实体 Taxon 必须实现 \MangoSylius\ExtendedChannelsPlugin\Model\ExternalLinkTaxonInterface。您可以使用Trait MangoSylius\ExtendedChannelsPlugin\Model\ExternalLinkTaxonTrait

  5. @SyliusAdmin/Channel/_form.html.twig 中包含模板 {{ include('@MangoSyliusExtendedChannelsPlugin/Channel/extendedChannelForm.html.twig') }}

  6. @SyliusAdmin/Taxon/_form.html.twig 模板中添加 {{ form_row(form.externalLink) }}

  7. @SyliusAdmin/Grid/_default.html.twig 中将 <div class="sylius-grid-nav__bulk"> ... </div> 的内部内容替换为 {{ include('@MangoSyliusExtendedChannelsPlugin/Grid/bulkActions.html.twig') }}

  8. 将资源添加到 config/packeges/_sylius.yaml

    imports:
         ...
         - { resource: "@MangoSyliusExtendedChannelsPlugin/Resources/config/resources.yml" }
  9. 将路由添加到 config/_routes.yaml

    mango_sylius_extended_channels:
        resource: '@MangoSyliusExtendedChannelsPlugin/Resources/config/routing.yml'
        prefix: /admin

有关使用自己的实体的指南,请参阅 Sylius 文档 - 自定义模型

可选

运行 src/Migrations/basic-data/timezones-data.sql 以加载时区表。(推荐,否则时区选择将为空)

用法

命令

  • 更新汇率(您需要在Sylius管理中首先定义货币)

    mango:exchange-rates:update
  • 根据汇率更新产品价格,从 sourceChannel(主要值,不会更改)到 targetChannel。您可以在运行上一个命令后运行此命令以使用下载的汇率更新,或者您可以在不运行上一个命令的情况下运行它以使用在Sylius管理中设置的自定义汇率更新价格。

    mango:product:update-price sourceChannel targetChannel
  • 删除在配置的期间内未支付且为特定运输方式定制的订单。这允许保留未支付订单,例如在个人取货时需要保留未支付状态几个小时/几天。配置参数

    • sylius_order.order_expiration_period
    • sylius_order.expiration_method_codes
    mango:cancel-unpaid-orders
  • 您可以使用事件在复制对象时修改对象

    • mango-sylius-extended-channels.duplicate.product.before-persist
    • mango-sylius-extended-channels.duplicate.product.after-persist
    • mango-sylius-extended-channels.duplicate.product-variant.before-persist
    • mango-sylius-extended-channels.duplicate.product-variant.after-persist
  • 您可以在批量分类分配后使用事件

    • mango-sylius-extended-channels.products.after_bulk_categories
  • 您可以使用Hello bars的类型

    parameters:
        mangoweb_sylius_extended_channels_hello_bar_types:
            error: 'Error'
            success: 'Success'
            info: 'Info'
            warning: 'Warning'
  • 使用Twig函数列出Hello Bars

    • mangoweb_sylius_available_hello_bars()
    • mangoweb_sylius_available_hello_bars_by_type(type)

开发

用法

  • 从 .env.dist 创建到 .env 的符号链接或创建自己的 .env 文件
  • /src 中开发您的插件
  • 查看 bin/ 中的有用命令

测试

在您进行更改后,必须确保测试仍然通过。

$ composer install
$ bin/console doctrine:schema:create -e test
$ bin/behat
$ bin/phpstan.sh
$ bin/ecs.sh

许可证

此库采用MIT许可证。

鸣谢

manGoweb开发。