All Projects → BitBagCommerce → SyliusInvoicingPlugin

BitBagCommerce / SyliusInvoicingPlugin

Licence: MIT License
This plugin enables generating invoices in Sylius platform application.

Programming Languages

PHP
23972 projects - #3 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to SyliusInvoicingPlugin

SyliusBannerPlugin
Add Banners to your Sylius projects with this plugin
Stars: ✭ 13 (-38.1%)
Mutual labels:  ecommerce, sylius, sylius-plugin
SyliusWishlistPlugin
This plugin allows you to integrate wishlist features with Sylius platform app.
Stars: ✭ 51 (+142.86%)
Mutual labels:  ecommerce, sylius, sylius-plugin
SyliusReportPlugin
Report Plugin for Sylius. This plugin add a report interface to the Sylius administration. Some reports comes with this bundle but you can create your custom reports.
Stars: ✭ 25 (+19.05%)
Mutual labels:  ecommerce, sylius, sylius-plugin
CoopTilleulsSyliusClickNCollectPlugin
Sell and deliver securely during the COVID-19 pandemic!
Stars: ✭ 77 (+266.67%)
Mutual labels:  sylius, sylius-plugin
SyliusVendorPlugin
This is a Sylius Plugin that add vendors (brands) to your store. The vendors is an entity that sells products and are fully customizable by the admin.
Stars: ✭ 51 (+142.86%)
Mutual labels:  ecommerce, sylius-plugin
Sylius
Open Source eCommerce Platform on Symfony
Stars: ✭ 6,598 (+31319.05%)
Mutual labels:  ecommerce, sylius
SyliusSchedulerCommandPlugin
Schedule Symfony Commands in your Sylius
Stars: ✭ 25 (+19.05%)
Mutual labels:  sylius, sylius-plugin
PayPalPlugin
Official integration with PayPal Commerce Platform
Stars: ✭ 21 (+0%)
Mutual labels:  ecommerce, sylius
ezplatform-sylius
eZ Platform and Sylius eCommerce integration
Stars: ✭ 31 (+47.62%)
Mutual labels:  ecommerce, sylius
CustomerOrderCancellationPlugin
Plugin that allows customers to cancel the placed order before it is processed.
Stars: ✭ 22 (+4.76%)
Mutual labels:  sylius, sylius-plugin
SyliusAkeneoPlugin
This Sylius plugin allows you to import data from Akeneo PIM
Stars: ✭ 17 (-19.05%)
Mutual labels:  sylius, sylius-plugin
SyliusPayUPlugin
PayU payment plugin for Sylius applications.
Stars: ✭ 21 (+0%)
Mutual labels:  sylius, sylius-plugin
SyliusFeedPlugin
Create feeds in your Sylius shop
Stars: ✭ 20 (-4.76%)
Mutual labels:  sylius, sylius-plugin
SyliusCmsPagePlugin
A Sylius plugin to manage your CMS pages
Stars: ✭ 26 (+23.81%)
Mutual labels:  sylius, sylius-plugin
Gatsbylius
Fastest PWA eCommerce solution. Joins us as contributor.
Stars: ✭ 67 (+219.05%)
Mutual labels:  ecommerce, sylius
sitemap-plugin
Sitemap Plugin for Sylius eCommerce platform
Stars: ✭ 68 (+223.81%)
Mutual labels:  ecommerce, sylius
SyliusSettingsPlugin
Provide some custom settings to your favorite Sylius shop!
Stars: ✭ 17 (-19.05%)
Mutual labels:  sylius, sylius-plugin
NBrightBuy
NBrightStore - E-Commerce for DNN (NBSv3)
Stars: ✭ 21 (+0%)
Mutual labels:  ecommerce
saleor
A modular, high performance, headless e-commerce platform built with Python, GraphQL, Django, and React.
Stars: ✭ 15,824 (+75252.38%)
Mutual labels:  ecommerce
unified-instantsearch-ecommerce
The fastest way to implement Algolia, for e-commerce customers.
Stars: ✭ 26 (+23.81%)
Mutual labels:  ecommerce


Overview

This plugin enables generating invoices in Sylius platform application. It adds a VAT number field for the billing address during the checkout and allows to download the invoice in the admin panel view.

Support

We work on amazing eCommerce projects on top of Sylius and Pimcore. Need some help or additional resources for a project? Write us an email on [email protected] or visit our website! 🚀

Demo

We created a demo app with some useful use-cases of the plugin! Visit demo.bitbag.shop to take a look at it. The admin can be accessed under demo.bitbag.shop/admin link and sylius: sylius credentials.

Installation

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

Add plugin dependencies to your AppKernel.php file:

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

Note

This plugin uses wkhtmltopdf under the hood wrapped into KnpSnappyBundle. It requires you to install the wkthmltopdf binary. Read more in the KnpSnappyBundle docs and on Wkhtmltopdf website.

Import required config in your app/config/config.yml file:

# app/config/config.yml

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

Import routing in your app/config/routing.yml file:

# app/config/routing.yml
...

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

Finish the installation by updating/migrating the database schema:

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

Usage

To see what templates you need to override in order to enable this plugin on your storefront, browse Twig files from /tests/Application/app/Resources/SyliusShopBundle path of this plugin.

To override the invoice template, override the invoice.html.twig file of this plugin, which you should do in app/Resources/BitBagSyliusInvoicingPlugin/views/invoice.html.twig file of your local project or in the theme path, in case you are using multiple themes.

In your admin panel, add the company data. So far, only single company data is supported.

In order to see the ability to download invoice, in the checkout, confirm a billing address and fill the VAT number. Make sure you customized your local SyliusShopBundle templates like described above. Then, in the admin panel, you should see a button to download the invoice for an order, which has the billing address with VAT number fulfilled (which in your case, shoul be the last one).

Customization

Available services you can decorate and forms you can extend

  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 you can override in your parameters.yml(.dist) file

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

Testing

$ 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

Contribution

Learn more about our contribution workflow on http://docs.sylius.org/en/latest/contributing/.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].