roshyo/invoice-plugin

Sylius 中生成发票的插件

安装: 230

依赖者: 0

建议者: 0

安全性: 0

星标: 1

关注者: 0

分支: 3

类型:sylius-plugin

This package is auto-updated.

Last update: 2024-09-27 22:46:52 UTC


README

为 Sylius 生成发票的插件

安装步骤

$ composer require behappy/invoice-plugin

信息

此插件使用 Knp Snappy Bundle。请参考其文档以安装 wkhtmltopdf(https://github.com/KnpLabs/snappy

启用插件

在 AppKernel 中启用以下插件

// in app/AppKernel.php
public function registerBundles() {
	$bundles = array(
		// ...
        new Knp\Bundle\SnappyBundle\KnpSnappyBundle(),
		
        new \BeHappy\SyliusCompanyDataPlugin\BeHappySyliusCompanyDataPlugin(),
        new \BeHappy\SyliusInvoicePlugin\BeHappySyliusInvoicePlugin(),
    );
    // ...
}
#in app/config/config.yml
imports:
    ...
    - { resource: "@BeHappySyliusCompanyDataPlugin/Resources/config/config.yml" }
    - { resource: "@BeHappySyliusInvoicePlugin/Resources/config/config.yml" }
    ...
# in routing.yml
...
behappy_company_data_plugin:
    resource: '@BeHappySyliusCompanyDataPlugin/Resources/config/routing.yml'

behappy_invoice_plugin.admin:
    resource: '@BeHappySyliusInvoicePlugin/Resources/config/routes/admin.yml'
    prefix: /admin

behappy_invoice_plugin.shop:
    resource: '@BeHappySyliusInvoicePlugin/Resources/config/routes/shop.yml'
    prefix: /{_locale}/account
    requirements:
        _locale: ^[a-z]{2}(?:_[A-Z]{2})?$
...

生成数据库

只需启动

php bin/console doctrine:schema:update --dump-sql --force

如果您在启用此插件之前没有启用 BeHappySyliusCompanyDataPlugin,则可能存在引用该插件的表

可选:生成发票

为了生成之前已下订单的发票,您可以运行以下命令

php bin/console behappy:invoices:generate

此命令将为所有状态为“已履行”且没有附加发票的订单生成发票

就这么多!

从现在起,每次订单履行时,事件监听器都会创建一个新的发票,并将(如有必要)公司数据信息复制到单独的表中以使其静态化。

在订单的发货部分下,还显示了一个新的块,其中包含关联的发票。

在您的客户账户部分,每个与他们的订单关联的发票都显示了一个链接。

配置

发票号码

默认情况下,发票将使用一个12位数字生成,其中填充0(str_pad(12, '0', STR_PAD_LEFT))

您可以通过覆盖此定义来重新定义此长度

# in app/config.yml
parameters:
    ...
    behappy_invoice_plugin.invoice_number.length: 14
    ...

现在每个发票都是14位长。

在不久的将来,此插件将使用一个数字生成器,您可以根据需要覆盖。

事件

在发票创建过程中,将触发两个事件,订单作为参数。

behappy_invoice_plugin.event.invoice.pre_create
behappy_invoice_plugin.event.invoice.post_create

您可以订阅这些事件并执行所需操作

覆盖

要覆盖 PDF 模板文件,您只需创建以下文件:app/Resources/BeHappySyliusInvoicePlugin/views/Invoice/pdf.html.twig

谢谢

此插件部分受 BitBagCommerce/SyliusInvoicingPlugin 启发(https://github.com/BitBagCommerce/SyliusInvoicingPlugin)。

请随时贡献

您也可以通过 composer.json 中提到的包的邮件地址提出您的问题。

其他

您还可以在我们的其他包(包括 Sylius 插件)中查看 https://github.com/BeHappyCommunication