sylius / invoicing-plugin
适用于Sylius的发票插件。
Requires
- php: ^8.1
- knplabs/knp-snappy-bundle: ^1.8
- ramsey/uuid: ^3.9 || ^4.0
- sylius/grid-bundle: ^1.9
- sylius/resource-bundle: ^1.9
- sylius/sylius: ~1.12.0 || ~1.13.0
- symfony/config: ^5.4 || ^6.4
- symfony/dependency-injection: ^5.4.21 || ^6.4
- symfony/form: ^5.4.21 || ^6.4
- symfony/framework-bundle: ^5.4.21 || ^6.4
- symfony/http-foundation: ^5.4.21 || ^6.4
- symfony/http-kernel: ^5.4.21 || ^6.4
- symfony/messenger: ^5.4.21 || ^6.4
- symfony/options-resolver: ^5.4.21 || ^6.4
- symfony/routing: ^5.4.21 || ^6.4
Requires (Dev)
- behat/behat: ^3.6.1
- behat/mink-selenium2-driver: ~1.6.0
- friends-of-behat/exclude-specifications-extension: ^0.2 || ^0.3
- friends-of-behat/mink: ^1.8
- friends-of-behat/mink-browserkit-driver: ^1.4
- friends-of-behat/mink-debug-extension: ^2.0
- friends-of-behat/mink-extension: ^2.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
- matthiasnoback/symfony-config-test: ^4.2
- matthiasnoback/symfony-dependency-injection-test: ^4.2
- phpspec/phpspec: ^7.2
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: ^1.8
- phpstan/phpstan-doctrine: ^1.3
- phpstan/phpstan-symfony: ^1.2
- phpstan/phpstan-webmozart-assert: ^1.2
- phpunit/phpunit: ^9.5
- polishsymfonycommunity/symfony-mocker-container: ^1.0
- sylius-labs/coding-standard: ~4.0.0
- symfony/browser-kit: ^5.4.21 || ^6.4
- symfony/debug-bundle: ^5.4.21 || ^6.4
- symfony/dotenv: ^5.4.21 || ^6.4
- symfony/intl: ^5.4 || ^6.0
- symfony/web-profiler-bundle: ^5.4.21 || ^6.4
- symfony/webpack-encore-bundle: ^1.15
Conflicts
- behat/mink-selenium2-driver: >=1.7.0
- dev-main
- v0.25.1
- v0.25.0
- v0.24.0
- v0.23.1
- v0.23.0
- v0.22.0
- v0.21.0
- v0.20.0
- v0.19.0
- v0.18.1
- v0.18.0
- v0.17.0
- v0.16.1
- v0.16.0
- v0.15.0
- v0.14.0
- v0.13.0
- v0.12.0
- v0.11.0
- v0.10.1
- v0.10.0
- v0.9.0
- v0.8.3
- v0.8.2
- v0.8.1
- v0.8.0
- v0.7.0
- v0.6.0
- 0.5.1
- 0.5
- 0.4
- 0.3.1
- 0.3
- v0.2.3
- 0.2.2
- 0.2.1
- 0.2
- 0.1.1
- 0.1
- dev-damonsson-patch-1
- dev-add-support-to-sylius-1.13
This package is auto-updated.
Last update: 2024-08-31 20:34:02 UTC
README
发票插件
此插件创建与订单相关的发票。
SyliusInvoicingPlugin在订单处于指定状态(默认:已创建)时创建新的不可变发票,并允许客户和管理员下载与订单相关的发票。
商业价值
发票插件的主要目的是创建一份代表客户购买特定产品并支付其费用的意愿的文件。
发票也可以被视为下单的证据。因此,它可以作为.pdf文件下载,并由管理员手动发送给客户,或者一旦订单支付,自动发送。
插件满足发票领域的附加功能是能够在卖家上设置账单数据。
安装
-
需要通过composer安装的插件
composer require sylius/invoicing-plugin
请记住,使用
composer config extra.symfony.allow-contrib true
允许社区食谱或插件安装过程中的社区食谱。 -
将迁移应用到您的数据库中
bin/console doctrine:migrations:migrate
-
默认配置假设已启用PDF文件生成。如果您不想使用该功能,请更改应用程序配置
# config/packages/sylius_invoicing.yaml sylius_invoicing: pdf_generator: enabled: false
否则,检查您是否具有wkhtmltopdf二进制文件。如果没有,您可以从这里下载。
如果wkhtmltopdf不在
/usr/local/bin/wkhtmltopdf
中,请修改.env
文件中的WKHTMLTOPDF_PATH
环境变量WKHTMLTOPDF_PATH=/usr/local/bin/wkhtmltopdf # Change this! :)
-
如果您想为插件安装之前放置的订单生成发票,请使用以下命令在您的终端中运行
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
文件中的配置的一部分。您可以通过添加新的状态机事件监听器或编辑现有监听器来自定义此文件。
以下是一个关于Symfony的workflow
的示例
<service id="sylius_invoicing_plugin.event_listener.workflow.payment.produce_order_payment_paid" class="Sylius\InvoicingPlugin\EventListener\Workflow\Payment\ProduceOrderPaymentPaidListener"> <argument type="service" id="sylius_invoicing_plugin.event_producer.order_payment_paid" /> <tag name="kernel.event_listener" event="workflow.sylius_payment.completed.complete" priority="100" /> </service>
除此之外,发票模型被视为资源。
您可以在这里了解更多关于资源的信息
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
发票文件
默认情况下,当订单支付时,不可变的发票PDF文件将保存在服务器上。保存目录由%sylius_invoicing.invoice_save_path%
参数指定,如有必要可以覆盖。
《Sylius\InvoicingPlugin\Entity\Invoice》实体与其文件之间没有直接关系。它是根据在《Sylius\InvoicingPlugin\Provider\InvoiceFileProviderInterface》服务中定义的《Invoice::$number》来解决的。通过重写此服务,您可以更改用于检索发票文件的逻辑。
数据样本
您可以将《ShopBillingData》数据样本添加到yaml中,以便将渠道《ShopBillingData》信息添加到您的安装中。有关数据样本配置的更多说明,请参阅数据样本配置说明。
安全问题
如果您认为您发现了一个安全问题,请勿使用问题跟踪器,也不要公开张贴。相反,所有安全问题都必须发送到《security@sylius.com》。