garrachachraf / invoicing-plugin
Sylius 的发票插件。
Requires
- php: ^7.3
- knplabs/knp-snappy-bundle: ^1.7
- ramsey/uuid: ^3.9
- sylius/grid-bundle: ^1.7
- sylius/resource-bundle: ^1.6
- sylius/sylius: ^1.8
- symfony/config: ^4.4
- symfony/dependency-injection: ^4.4
- symfony/form: ^4.4
- symfony/framework-bundle: ^4.4
- symfony/http-foundation: ^4.4
- symfony/http-kernel: ^4.4
- symfony/messenger: ^4.4
- symfony/options-resolver: ^4.4
- symfony/routing: ^4.4
Requires (Dev)
- behat/behat: ^3.6
- behat/mink: ^1.8
- behat/mink-browserkit-driver: ^1.3
- behat/mink-extension: ^2.3
- behat/mink-selenium2-driver: ^1.4
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.0
- friends-of-behat/symfony-extension: ^2.1
- friends-of-behat/variadic-extension: ^1.3
- lakion/mink-debug-extension: ^1.2.3
- matthiasnoback/symfony-config-test: ^4.0
- phpspec/phpspec: ^6.0
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: ^0.12
- phpstan/phpstan-doctrine: ^0.12
- phpstan/phpstan-symfony: ^0.12
- phpstan/phpstan-webmozart-assert: ^0.12
- phpunit/phpunit: ^8.5
- sylius-labs/coding-standard: ^3.2
- symfony/browser-kit: ^4.4
- symfony/debug-bundle: ^4.4
- symfony/dotenv: ^4.4
- symfony/intl: ^4.4
- symfony/web-profiler-bundle: ^4.4
- symfony/web-server-bundle: ^4.4
Conflicts
- symplify/package-builder: ^8.3.25
README
发票插件
此插件创建与订单相关的发票。
SyliusInvoicingPlugin 在订单处于指定状态(默认:已创建)时创建新的不可变发票,并允许客户和管理员下载与订单相关的发票。
业务价值
发票插件的主要目标是创建代表客户购买特定产品并为此支付意愿的文件。
发票也可以被视为下单的证明。因此,它可以作为 .pdf 文件下载,并由管理员手动发送给客户,或者在订单付款后自动发送。
插件满足发票领域的另一个附加功能是在卖家上设置账单数据。
安装
-
需要通过 composer 安装插件
composer require sylius/invoicing-plugin
记得通过
composer config extra.symfony.allow-contrib true
或在插件安装过程中允许社区食谱 -
对您的数据库应用迁移
bin/console doctrine:migrations:migrate
-
检查您是否有 wkhtmltopdf 二进制文件。如果没有,您可以从这里下载它 这里。
如果 wkhtmltopdf 不位于 /usr/local/bin/wkhtmltopdf,请在您的应用程序的 config.yml 文件的末尾添加以下片段
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: "@SyliusAdmin\\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
发票插件使用特定模式渲染发票网格,包括显示发票已发布的渠道旁边的点。点的颜色取决于渠道实体上定义的属性,如果没有提供,则取决于名为 default_channel_color
的全局参数。
像任何其他参数一样,default_channel_color
也可以在您的 config.yml
文件中重写。
固定数据
您可以将 ShopBillingData
固件添加到 yaml 中,以便将渠道 ShopBillingData 信息添加到您的安装中。有关固件配置的更多说明,请参阅 固件配置说明。
安全问题
如果您认为您发现了一个安全问题,请不要使用问题跟踪器,也不要公开发布。相反,所有安全问题都必须发送到 security@sylius.com
。