florentin-garnier / invoicing-plugin
Sylius 的发票插件。
Requires
- php: ^7.2
- knplabs/knp-snappy-bundle: ^1.5
- ramsey/uuid: ^3.7
- sylius/grid-bundle: ^1.7
- sylius/resource-bundle: ^1.6
- sylius/sylius: ^1.4
- symfony/config: ^4.3
- symfony/dependency-injection: ^4.3
- symfony/form: ^4.3
- symfony/framework-bundle: ^4.3
- symfony/http-foundation: ^4.3
- symfony/http-kernel: ^4.3
- symfony/messenger: ^4.3
- symfony/options-resolver: ^4.3
- symfony/routing: ^4.3
Requires (Dev)
- behat/behat: ^3.4
- behat/mink: ^1.7@dev
- behat/mink-browserkit-driver: ^1.3
- behat/mink-extension: ^2.2
- behat/mink-selenium2-driver: ^1.3
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.0
- friends-of-behat/symfony-extension: ^2.0
- friends-of-behat/variadic-extension: ^1.1
- lakion/mink-debug-extension: ^1.2.3
- matthiasnoback/symfony-config-test: ^3.0
- phpspec/phpspec: ^5.0
- phpstan/phpstan-doctrine: ^0.11
- phpstan/phpstan-shim: ^0.11
- phpstan/phpstan-symfony: ^0.11
- phpstan/phpstan-webmozart-assert: ^0.11
- phpunit/phpunit: ^6.5
- sylius-labs/coding-standard: ^3.0
- symfony/browser-kit: ^4.3
- symfony/debug-bundle: ^4.3
- symfony/dotenv: ^4.3
- symfony/intl: ^4.3
- symfony/web-profiler-bundle: ^4.3
- symfony/web-server-bundle: ^4.3
Conflicts
- symfony/doctrine-bridge: 4.3.0
- symfony/framework-bundle: 4.3.0
README
发票插件
此插件创建与订单相关的发票。
SyliusInvoicingPlugin 在订单处于指定状态(默认为创建)时创建新的不可变发票,并允许客户和管理员下载与订单相关的发票。
商业价值
Invoicing Plugin 的主要目标是创建一个代表客户购买特定产品并支付它们的意愿的文件。
发票还可以被视为下单的证据。因此,它可作为 .pdf 文件下载,并由管理员手动发送给客户,或者在订单付款后自动发送。
插件满足发票领域的附加功能是能够在卖家上设置账单数据。
安装
-
需要通过 composer 安装插件
composer require sylius/invoicing-plugin
请记住,通过
composer config extra.symfony.allow-contrib true或在插件安装过程中允许社区食谱 -
将插件迁移复制到您的迁移目录(例如
src/Migrations)并将它们应用到您的数据库中cp -R vendor/sylius/invoicing-plugin/migrations/* src/Migrations bin/console doctrine:migrations:migrate -
检查您是否有 wkhtmltopdf 二进制文件。如果没有,您可以在此处下载它 这里。
如果 wkhtmltopdf 不位于 /usr/local/bin/wkhtmltopdf,请在您的应用配置文件的末尾添加以下片段
knp_snappy:
pdf:
enabled: true
binary: /usr/local/bin/wkhtmltopdf # Change this! :)
options: []
- 如果您想为在插件安装之前放置的订单生成发票,请使用您的终端运行以下命令
bin/console sylius-invoicing:generate-invoices
注意!
此安装说明假定您正在使用 Symfony Flex。如果您不这样做,请参阅 旧版安装说明。然而,我们强烈建议您使用 Symfony Flex,它要快得多! :)
扩展点
SyliusInvoicingPlugin 中的大多数操作都是在订单在 winzou_state_machine 上改变状态后触发事件的。
以下是一个例子
winzou_state_machine: sylius_payment: callbacks: after: sylius_invoicing_plugin_payment_complete_producer: on: ['complete'] do: ['@sylius_invoicing_plugin.event_producer.order_payment_paid', '__invoke'] args: ['object']
上面的代码是配置文件 config.yml 的一部分。您可以通过添加新的状态机事件监听器或编辑现有的监听器来自定义此文件。
除此之外,发票模型被视为资源。
您可以在这里了解更多关于资源的信息
http://docs.sylius.com/en/latest/components_and_bundles/bundles/SyliusResourceBundle/index.html.
因此,显示发票列表的模板在 routing.yml 文件中定义
sylius_invoicing_plugin_invoice: resource: | alias: sylius_invoicing_plugin.invoice section: admin templates: SyliusAdminBundle:Crud only: ['index'] grid: sylius_invoicing_plugin_invoice permission: true vars: all: subheader: sylius_invoicing_plugin.ui.manage_invoices index: icon: inbox type: sylius.resource
另一个可以替换和自定义的方面是在订单显示视图中显示发票列表。负责显示与订单相关的发票的代码通过 Sonata 事件注入到现有的 Sylius 模板中。您可以在这里了解如何通过事件自定义模板
http://docs.sylius.com/en/latest/customization/template.html
Invoicing Plugin 使用特定的模式渲染发票网格,包括显示发票已发布的渠道旁边的点。点的颜色取决于在渠道实体上定义的属性,如果没有提供,则使用全局参数 default_channel_color。
像任何其他参数一样,default_channel_color 也可以在您的 config.yml 文件中覆盖。
固定值
您可以将 ShopBillingData 固件添加到 yaml 文件中,以便将渠道 ShopBillingData 信息添加到您的安装中。有关固件配置的更多说明,请参阅 固件配置说明。
安全问题
如果您认为您发现了一个安全问题,请不要使用问题跟踪器,也不要公开发布。相反,所有安全问题都必须发送到 security@sylius.com。

