bitbag/invoicing-plugin

此包已被废弃且不再维护。没有推荐替代包。

Sylius 的发票插件。


README

概述

此插件可在 Sylius 平台应用程序中生成发票。它在结账时添加一个增值税号字段,并允许在管理员面板视图下载发票。

支持

我们在 Sylius 和 Pimcore 上工作,为电子商务项目提供出色的解决方案。需要一些帮助或额外的资源?请发送电子邮件至 mikolaj.krol@bitbag.pl 或访问 我们的网站!🚀

演示

我们创建了一个包含插件一些实用用例的演示应用程序!请访问 demo.bitbag.shop 查看。管理员可以在 demo.bitbag.shop/admin 链接下访问,凭据为 sylius: sylius

安装

$ composer require bitbag/invoicing-plugin:dev-master

将插件依赖项添加到您的 AppKernel.php 文件

public function registerBundles()
{
    return array_merge(parent::registerBundles(), [
        ...
        
        new \Knp\Bundle\SnappyBundle\KnpSnappyBundle(),
        new \BitBag\SyliusInvoicingPlugin\BitBagSyliusInvoicingPlugin(),
    ]);
}

注意

此插件在内部使用 wkhtmltopdf,并通过 KnpSnappyBundle 包装。它需要您安装 wkhtmltopdf 二进制文件。更多信息请参阅 KnpSnappyBundle 文档Wkhtmltopdf 网站

在您的 app/config/config.yml 文件中导入所需的配置

# app/config/config.yml

imports:
    ...
    
    - { resource: "@BitBagSyliusInvoicingPlugin/Resources/config/config.yml" }

在您的 app/config/routing.yml 文件中导入路由

# app/config/routing.yml
...

bitbag_sylius_invoicing_plugin:
    resource: '@BitBagSyliusInvoicingPlugin/Resources/config/routing.yml'

通过更新/迁移数据库模式完成安装

$ bin/console doctrine:schema:update --force

使用

要查看在您的店面启用此插件需要覆盖哪些模板,请浏览此插件 /tests/Application/app/Resources/SyliusShopBundle 路径下的 Twig 文件。

要覆盖发票模板,覆盖此插件的 invoice.html.twig 文件,您应该在本地项目的 app/Resources/BitBagSyliusInvoicingPlugin/views/invoice.html.twig 文件或主题路径中进行操作,如果您正在使用多个主题。

在您的管理员面板中,添加公司数据。目前仅支持单个公司数据。

为了查看下载发票的能力,在结账中确认账单地址并填写增值税号。确保您已按上述说明自定义了本地 SyliusShopBundle 模板。然后,在管理员面板中,您应该看到一个用于下载已填写账单地址和增值税号订单的发票按钮(在您的案例中,应该是最后一个)。

自定义

您可以装饰的服务和可以扩展的表单

  bitbag_sylius_invoicing_plugin.controller.action.download_order_invoice                      BitBag\SyliusInvoicingPlugin\Controller\Action\DownloadOrderInvoice                                       
  bitbag_sylius_invoicing_plugin.controller.company_data                                       Sylius\Bundle\ResourceBundle\Controller\ResourceController                                                
  bitbag_sylius_invoicing_plugin.controller.invoice                                            Sylius\Bundle\ResourceBundle\Controller\ResourceController                                                
  bitbag_sylius_invoicing_plugin.event_listener.company_data                                   BitBag\SyliusInvoicingPlugin\Menu\CompanyDataMenuBuilder                                                  
  bitbag_sylius_invoicing_plugin.event_listener.order_show                                     BitBag\SyliusInvoicingPlugin\Menu\DownloadInvoiceMenuBuilder                                              
  bitbag_sylius_invoicing_plugin.factory.company_data                                          Sylius\Component\Resource\Factory\Factory                                                                 
  bitbag_sylius_invoicing_plugin.factory.invoice                                               Sylius\Component\Resource\Factory\Factory                                                                 
  bitbag_sylius_invoicing_plugin.file_generator.invoice_filename                               BitBag\SyliusInvoicingPlugin\FileGenerator\InvoicePdfFilenameGenerator                                        
  bitbag_sylius_invoicing_plugin.file_generator.invoice_file                                   BitBag\SyliusInvoicingPlugin\FileGenerator\InvoicePdfFileGenerator                                        
  bitbag_sylius_invoicing_plugin.form.extension.address                                        BitBag\SyliusInvoicingPlugin\Form\Extension\AddressTypeExtension                                          
  bitbag_sylius_invoicing_plugin.form.type.company_data                                        BitBag\SyliusInvoicingPlugin\Form\Type\CompanyDataType                                                    
  bitbag_sylius_invoicing_plugin.form.type.invoice                                             BitBag\SyliusInvoicingPlugin\Form\Type\InvoiceType                                                        
  bitbag_sylius_invoicing_plugin.manager.company_data                                          alias for "doctrine.orm.default_entity_manager"                                                           
  bitbag_sylius_invoicing_plugin.manager.invoice                                               alias for "doctrine.orm.default_entity_manager"                                                           
  bitbag_sylius_invoicing_plugin.repository.company_data                                       BitBag\SyliusInvoicingPlugin\Repository\CompanyDataRepository                                             
  bitbag_sylius_invoicing_plugin.repository.invoice                                            BitBag\SyliusInvoicingPlugin\Repository\InvoiceRepository                                                 
  bitbag_sylius_invoicing_plugin.resolver.company_data                                         BitBag\SyliusInvoicingPlugin\Resolver\CompanyDataResolver                                                 
  bitbag_sylius_invoicing_plugin.resolver.invoice_file                                         BitBag\SyliusInvoicingPlugin\Resolver\InvoiceFileResolver                                                 
  bitbag_sylius_invoicing_plugin.validator.vat_number                                          BitBag\SyliusInvoicingPlugin\Validator\Constraints\VatNumberValidator

您可以在您的parameters.yml(.dist)文件中覆盖的参数

parameters:
    wkhtmltopdf_binary_path: /usr/local/bin/wkhtmltopdf
    invoices_root_dir: "%kernel.project_dir%/var/invoices"

测试

$ composer install
$ cd tests/Application
$ yarn install
$ yarn run gulp
$ bin/console assets:install web -e test
$ bin/console doctrine:schema:create -e test
$ bin/console server:run 127.0.0.1:8080 -d web -e test
$ open http://localhost:8080
$ bin/behat
$ bin/phpspec run

贡献

更多关于我们贡献工作流程的信息,请访问http://docs.sylius.org/en/latest/contributing/