Introduction

HikaInvoices is an AddOn for HikaShop.
It adds several functionality to allow customizing the Invoices and the order document that can be sent to the customers.
It also helps doing the European MOSS tax declaration.
With the export MOSS, it is possible to verify that your data are compliant with European SAF-MOSS (Standard Audit File - Mini One Stop Shop) but also help producing the manual tax reporting and automatic electronic reporting for some countries (when available).

In summary, the functionality added are:

  • Invoice generation with customize layout depending on the countries, cutomer type with possibility to manage the tax notes depending on the product tax category
  • VAT cache and alternate website verification where the European service would not be available (off line, maintenance, ...)
  • MOSS fields added in the Tax Category and Tax rates and tax notes added to the tax category.
    • Tax categories
      • MOSS Service code
      • Invoice Tax notes
    • Tax rates
      • Tax code
      • Tax ICC (Iso Country Code). Important when some tax must be reported with another ICC - case of Monaco (MC) that must be declared as FR (French)
  • Export MOSS and MOSS reporting for manually tax reporting
  • Multisite invoices synchronization for centralized MOSS tax reporting and export
  • Unique Invoice number generation when multiple website generate invoices on the same server.
  • Alternate Multisite Geo-Localisation when the Hikashop does not contain this functionality. Available when JMS medium or full edition is installed with geo-localisation enabled.

Installation

The installation of HikaInvoices can only be performed once HikaShop is installed.

The installation consists in using the Joomla / extension manager / install menu.

You can install HikaInvoices over a previous version.

Configuration

We start to introduce the configuration parameters and after some check-list are provided to help you configuring your HikaInvoices to be compatible with European MOSS tax declaration..

Environment name: Enter a unique server name that is used to qualify each invoices when working in multisites. So manual import of invoices from other server will make the invoices key unique.

Unique Site ID: Default unique website identification on the server. When Jms Multisite is present, this is the slave site ID.

Invoices root directory:By default, the invoices are stored in the invoices subdirectory of this extension. When not empty, you can specify another place. The keyword {root}, {root-1} and {year} are available

Invoice file name:Specific how to create the invoice file name. When empty, the invoice file name is: {invoice_lbl}-{invoice_number}_{time}.pdf. Keywords available are: {invoice_lbl}, {invoice_year}, {invoice_number}, {invoice_id}, {time}

Invoice unique number:A flag that allow generating a unique invoice number instead of the HikaShop invoice number. This may help generating a unique invoice numbering across multiple websites when sharing the same invoice root directory. The principle is that each "invoice root directory" contain a special file for which the size give the invoice number.
So that, you can have multiple document number depending on the document type.

Extra unique status:In addition of the HikaShop order status "confirmed" and "invoice" that generate a number for the document, this field allow selecting other kind of status that need generating a new document number.
In example, select "Refunded" if you want to generate a new number for this type of document.
If you want a specific number number for each type of document and not a continuing number then store the document into a specific folder. To do that, specify in the "document template" a different "Invoice folder" path value.

Invoice template:Allow providing a specific invoice template to replace the default one located in plugins/hikashop/attachinvoice/attachinvoice/invoice.php and can be overwrite /media/com_hikashop/plugin/invoice.php. Following keywords are available: {root}, {root-1}

Generate document on history [status/type]: Allows defining the condition when a document (not necessary an invoice) must be generated.
The syntax is :

  • [order status / history type / order full price] => template_type [! a comment] that justify why this template must be executed on each event. The (!) means all the time.
  • [field1=value/field2=value/...//fieldn=value] => template_type [! a comment].

Here it is a sample

[created/*]=>order,
[confirmed/payment]=>payment,
[confirmed/modification]=>invoice ! important,
[confirmed]=>invoice
[confirmed/modification/>0]=>invoice ! important,
[confirmed/downloaded/>0]=>invoice ! important,

equivalent to

[order_status=created/*]=>order,
[order_status=confirmed/history->history_type=payment]=>payment,
[order_status=confirmed/history->history_type=modification]=>invoice ! important,

[order_status=confirmed/history->history_type=modification/order_full_price>0]=>invoice ! important,

[order_status=confirmed]=>invoice

 

where :

  • [created/*]=>order means execute the "template type" with value "order" each time that an order has the status "created" whatever (*) the history type.
  • [confirmed/payment]=>payment means to execute the template type "payment" only when the order become confirmed with history type = "payment".
    This allow for example generating an "Payment Receipt" the first time that the order become confirmed on payment

  • [confirmed/modification]=>invoice ! important is a pure sample that mean to generate an invoice each time that an order is modified. Normally the invoice should never be modified and this is the reason why we mentioned "pure sample"
  • [confirmed]=>invoice is equivalent to [confirmed/*] and mean that the invoice should be generated the first time that it become confirmed.

Remark: The order history type "downloaded" is added to allow generating the invoice only when a software is downloaded.

Invoice formats:List of fields that needs a specific number formatting. Syntax is: INV:%2.f = amout_net,total_tax, ...

eMail BCC:You can specify an e-mail address here which will be added as BCC

eMail subject:Subject of the email containing the invoice in attachement. Keywords available are: [INVOICE_FILENAME], [INVOICE_YEAR], [INVOICE_NO]

eMail body:When resending an invoice manually, this is the body of the email that contain the invoice. Keywords available are: [INVOICE_FILENAME], [INVOICE_YEAR], [INVOICE_NO], [NAME]

eMail attach invoice PDF:Attach invoice PDF to the email. Additional keywords are available in the eMail body to allow preview of download the PDF from the website. The keywords are : [URL_PREVIEW_INVOICE_HTML], [URL_DOWNLOAD_INVOICE_PDF]

Certificate file:The name of the X.509 certificate file which will be used for PDF invoice signing. The file must be in PEM format and located in the administrator/components/com_hikainvoices/assets/tcpdf/certificates directory of your site. Only required if you NEED to produce signed PDF documents.

Certificate secret key:The name of the X.509 certificate file containing the secret key for PDF signing. The file must be in PEM format and located in the administrator/components/com_hikainvoices/assets/tcpdf/certificates directory of your site.

Certificate secret key password:The password for your secret key, used in PDF signing

Extra certificates:The name of the X.509 certificate file containing additional certificates to attach to the signed PDF file, e.g. the root (public key) certificates of your Certificate Authority. The file must be in PEM format and located in the administrator/components/com_hikainvoices/assets/tcpdf/certificates directory of your site.

Your company name:Used when exporting the MOSS data

Your company country:This country is used when exporting the MOSS data

Your VAT Number:Used during the export of the MOSS data

Export MOSS directory:Location where must be stored the MOSS file exported. Keyword {root}, {root-1} and {year} are available to make reference to the website root directory or its parent root directory. By default the directory is {root}/export_moss.
{year} is the current year in format YYYY.
When the export directory does not exists, it is created with the permission 777 to allow other websites writing in this directory.

Export MOSS XML Format:The MOSS XML format depends on the country where you have to submit it.  

Taxation default internal code:Is the internal code to use when no tax is found for a product. Generally, this correspond to the international sales with tax = 0%. This may help you identifying those sales in your accountancy. This field is optional.

Taxation default taxation note:Is the internal code to use when no tax is found for a product. Generally, this correspond to the international sales with tax = 0%. In this case, when the national tax rate is NOT used, the law require to justify the reason of a non standard tax rate. This taxation note allows you adding this mention in the footer of the invoice. This field is optional but strongly recommended.

Debug mode:You have the choice among different debug modes:

  • None: No debug
  • Error Log: This mean that the debugging information are written into the system "error_log". For the show log menu, it is assumed that the error_log is located inside the /administrator directory.
  • HikaInvoices log: HikaInvoices contains a special debugging interface that can be shared with other extensions that we distribute. So its localisation depends on the extensions installed. The show log menu is able to retrieve the appropriate path.

MOSS compatibility - Check list

To make the European MOSS compatibility, the HikaShop settings must have the following things checked:

  • Hikashop / System / Configuration
    • Address
      • Your company name
      • Your shop name
      • Your company country
      • Your VAT Number
    • Currency rate refresh : Different of zero (0). In example once a day (24 hours).
      • Also ensure that the plugin / Hikashop / Rates is enabled.
    • Taxes
      • Billing address
      • Main tax zone
      • VAT Number check = Online Check
  • Hikashop / System / Taxes
    • Manage rates
      • Ensure that you have a tax rate for each European countries.
        Also verify that countries with "RED"uce tax rate are correctly identified with the MOSS tax code.
        A default list of tax can be imported via a component available on Hikashop website.
    • Manage tax categories
      • Verify that you have the European Electronic services that are defined with their MOSS service code.
    • In the main list
      • Create the relationship between the Zone, product category tax and the tax rates applied
        For each combination, you can assign multiple "Tax notes" that will be used when generating the invoice.
        Each tax note "keyword" is resolve via the Joomla language management with the benefit of the "override" facilities
      • An "Internal code" can also be used to help the integration with external accountancy application.

HikaInvoices configuraton (recommandation)

By default, HikaInvoices contains default settings that we suggest to update when this is possible to store sensitive data outside of the internet URL.

The objective is to modify some update path to provide directories that are not public from internet. So outside of your website root directory.
The fields that you should review are:

  • Invoices root directory;
  • Export MOSS directory

Available keywords are

  • {root} : Means this is the root directory of your current joomla website
  • {root-1}: Is one directory up from the "root" directory. This is equivalent to {root}/../

Multisite architectures

The European MOSS declaration must be unique per company.
So when you have multiple website, you need to merge the MOSS data coming from several websites into a single repository.

With HikaInvoices, there are different technology available to perform this "union" of the MOSS data coming from different websites.

Solution 1: Use JMS sharing facilities

When using "Jms Multi-Sites", it is possible to create multiple website that can share the same "Invoices" information. So that you will just have one DB where all the invoices will be stored.
The advantage of this solution is that you just have one instance of the Invoices as there is a single MySQL table sharing all the data for all the websites present on the same server.

Solution 2: Use HikaInvoice - Automatic Bills synchronization on the same server

Use the HikaInvoices - BILLS synchronization plugin that allows duplicating the invoices into another website.
This method can only be used when the different websites are located on the same server.
The disadvantage of this solution is that the Invoices data are duplicated.

Solution 3: Use HikaInvoice - Manual Export Bills / Import Bills

Use the HikaInvoices - Export Bills and Import Bills to export manually the data from one site that you will be imported manually into another website.
The disadvantage of this solution is that this operation is done manually.

System requirements

HikaInvoices is developed under Joomla 3.3

- HikaShop version 2.3.5 or higher 

Check Database

When inside the HikaInvoice configuration, the "Check Database" button is available.

It is used to verify the structure of the Database relative to the "HikaInvoices" tables.
This functionality is automatically called when using the "HikaShop" check database.

Check Environment

This is a special check of the environment to help the users in the configuration of HikaInvoices to be compliant with European MOSS declaration.

Invoice Templates

The invoice templates allows you defining the layout of different documents.
This extension is designed to work with many extensions but here, we will describe the case of HikaShop eCommerce for Joomla.

The templates contains several parameters that are used as criteria to display a specific document.

The criteria are mainly:

  • Zone (country, state, ...) for which the document must be generated
  • Customer type: Company with valid tax number or individual person. For the european tax, a company without a valid VAT number should be considered as a B2C (Business to Consumer)
  • Target extension that identify the name of the extension for which this document must be produced. (ie. hikashop in lowercase)
  • Document type that in case of HikaShop is either
      Any
    order Order
    payment Payment Receipt
    shipped Shipped
    downloaded Downloaded
    invoice Invoices
    refunded Refunded
    cancelled Cancelled
  • Published that is flag that can enable/disable the template
  • Site ID: That give the possibility to make this template only available for this specific Jms Multisite ID

 Beside those criteria, some output can be produced.

  • Send email to the customer allows defining when an email must be sent to the customer with the document generated.
    This value can be combined with the order history notification information.
    So it is possible to:
    • always send an email whatever the history notification value
    • only when the "notification" is set to yes
    • or never
  • BCC email address is the "blind carbon copy" email address where must be sent a copy of the email sent to the customer. When you want to send an email to several person, use the commas (,) to separate the email address.
  • eMail subject is the subject of the email that sends the document.
  • eMail body is the body of the email. Keywords allowed in the body are : [URL_PREVIEW_HTML], [URL_DOWNLOAD_PDF]
  • Attach PDF determine if the PDF must be attached to the email.
  • invoice folder is the location where you want to store the invoices on your server.
    When using multiple website on the same server, it is recommended to use the same location for all the website.
    So that you can have a single repository of all your documents.
    Several keywords are available to help compute the folder location. You can use:
    • {root} that correspond to the root directory of you websites.
    • {root-1} that correspond to a directory above the root. This is the equivalent of {root}/../
      In general, we recommend to put the invoices into a directory that is outside of the {root} directory. This is the reason why {root-1} is proposed.
  • Invoice file name is the way to compute the document file name for this specific template. When provided, it overrides the invoice file name provided in the configuration.

Finally, you have the look of the document.
You can either use a customize document or use the standard tool to create your own document look.
If you want to implement you own interface to generate the document, this is possible via the configuration of the "attachinvoice" plugin that is described in another section.
The parameters described here below describe the default "invoice" layout with its possible customization.

  • Template header are the lines that you would like to display in the header of the document. This is a basic text area where only text is allowed. We recommend to avoid exceed 2 lines. The lines are centered in the header.
  • Template footer are the lines that are displayed in the footer of the document. This is a basic text are that can only contain text. We recommend to avoid exceeding 4 lines. The lines are centered in the footer.
  • Ignore total null allows discard the total with a NULL (or zero) value.
  • Template body allows you creating a complex document look. It is based on html rendering where addition tags can be used to generate repeatable area. Inside the html document, you can use plenty of tags or keywords to display specific values. The keywords are put into brackets and start with a namespace followed by a double point (:). After that, you can retrieve a specific field value. When a specific value need has an alternated formatted value, it is stored into a "fmt" virtual field.

 The main keywords available in the template body are:

  • [CONFIG:xxxxx] make reference to the HikaInvoices configuration parameters
  • [USER:xxxxx] make reference to the fields present in joomla #__users table
  • [ORDER:xxxxxx] make reference to the fields present in #__hikashop_orders table.
  • [INV:xxxxx] make reference to the fields present in #__hikainvoices_bills table.
    Some fields have a formatted equivalent value.
    • [INV:FMT.INVOICE_NUMBER]
    • [INV:FMT.INVOICE_DATE]
    • [INV:FMT.DELIVERY_DATE]
  • [REPEAT:ITEM] is a special tag that identify the beginning repeatable of a [ITEM]
    • [ITEM:xxxxx] make reference to the fields present in the #__hikainvoices_bill_items.
      • [ITEM:FMT.PRICE] display the price using the HikaShop format for the currency.
      • [ITEM:FMT.AMOUNT] display the amount using the HikaShop format for the currency.
      • [ITEM:FMT.TAX_AMOUNT] display the tax amount using the HikaShop format for the currency.
  • [/REPEAT:ITEM] mark the end of the [REPEAT:ITEM] area.
  • [REPEAT:TOTAL] is a special tag that identify the beginning repeatable area of a [TOTAL]
    • [TOTAL:LABEL] describe the total line. The values are "subtotal", "discount_price", "shipping_price"
    • [TOTAL:VALUE]
    • [TOTAL:TAX_RATE]
  • [/REPEAT:TOTAL]
  • [TOTALS:VAT.VALUE]
  • [TOTALS:HIKASHOP_PAYMENT.VALUE] this is the equivalent of the [ORDER:order_payment_price] formatted with the currency format.
  • [TOTALS:HIKASHOP_TOTAL.VALUE] this is the equivalent of the [ORDER:order_full_price] formatted with the currency format.
  • [REPEAT:NOTE] start the repeatable note area.
    • [NOTE:DESCRIPTION] is the description of the note
  • [/REPEAT:NOTE] mark the end of the [REPEAT:ITEM] area.
  • [REPEAT:IF_NOTEMPTY XXXX] start a IF Not Empty section on the keyword XXXX.
    Currently the XXXX keywords correspond to the TOTAL one.
    So that, it is possible to display the equivalent of the [REPEAT:TOTAL] in a different order.
    Remark: the value 0 is considered as empty. The test is equivalent to the php if ( !empty(XXX))
  • [/REPEAT:IF_NOTEMPTY XXXX] end of the IF Not Empty section
  • [REPEAT:IF_EXISTS XXXX] start a section when a keyword XXXX exists.
    Remark: This is equivalent in php to if ( isset( XXXX)))
  • [/REPEAT:IF_EXISTS XXXX] end of the If Exists section

More keywords can be found in the "Keyword" button.
When using the "keyword" button to insert a keyword, the last keyword present between [] is inserted.
You can have multiple keywords into a list row when field in memory reflect an array or repetitive field.

It is also possible to add a "page break" and also possible to include the content of an article based on its ID.
This might be helpful in case, for example, where general conditions should be included in the invoice.

Remark: All the html tags are NOT allowed inside an article or the template.
The html tags allows are those provided by the "tcpdf.org" library used inside the HikaInvoices.
So, if you have an empty page when rendering an article or a template body, this might be due to invalid html tags present in the template.

The process of the document and keywords can be customized via triggers that can be implemented inside a plugins. The following triggers are available:

  • onBeforeBillsWrite( &$plugin, &$order, &$sent_on, &$ignoreUpdate, &$bill);
    Is called before that an document is written inside the HikaInvoices tables.

  • onAfterBillsWrite(&$bill);
    Is called after that an document is written inside the HikaInvoices tables
  • onHikainvoicesKeywordsAfterTotals( &$order, &$bill, &$totals);
    Is called once the totals are computed inside the "keyword" processor.
    The keyword process is called for the "keyword" button inside the invoice template OR when a document PDF is generated.

  • onHikainvoicesKeywordsAfterTaxNotes( &$order, &$bill, &$tax_notes);
    Is called once the tax notes are computed.
    This allow updating (add, update, delete) tax notes.

  • onHikainvoicesKeywordsBeforeCreate( &$config, &$user, &$order, &$bill, &$totals, &$tax_notes);
    It is called before that the keyword array is created. This give the opportunity to update some individual values, format some of them or do anything before to build the keyword array.
  • onHikainvoicesKeywordsAfterCreate(&$keywords, &$bill, &$invoiceTemplate, &$invFormats);
    It is called once the "keyword" array is built.

  • onHikainvoicesProcessInvoicePattern(&$attributes, &$result);
    Allows processing additional {invoice .... /} tag inside a template with special action or other attribute 

Native {invoice .... /} pattern

Article Insertion

Syntax: {INVOICE action=render_article | article_id=nnn /}

  • article_id : provide the ID of the article to insert inside the document.
    This allow for example to add general condition inside the document.

Compute expression

Syntax: {INVOICE action=compute | expression="ketwords" /}

  • expression : Is string that can contain any keywords.
    The expression is resolved by a PHP eval() function that is built as $content = expression.
    All the keywords can be used in the expression.
    In addition, when a keyword is not resolved, by default, its value become zero (0).
    If you want to replace a non resolved keyword by a specific value, this is possible with the ?"replace value" OR ?'replace value' expression.

Example: {INVOICE action=compute | expression="[ORDER:ORDER_SUBTOTAL]+[MISSING_KEYWORD1]+[Invalid]?"-1500"+[ORDER:ORDER_SUBTOTAL_NO_VAT]?"0"+[INV:SUBTOTAL]+(2*[INV:TOTAL])-10" /}

where

  • [MISSING_KEYWORD1]                                is replaced by 0
  • [Invalid]?"-1500"                                         is replaced by -1500. The replace expression is ?"-1500"
  • [ORDER:ORDER_SUBTOTAL_NO_VAT]?"0"     is replaced by the value of [ORDER:ORDER_SUBTOTAL_NO_VAT] because this field is always present (resolved).



Import Invoices

The main objective of the "import invoices" is to allow synchronizing the data coming for other servers to help doing the centralized MOSS tax reporting.
As the European MOSS tax must be done for a company whatever the website, this import feature allows importing the documents from several websites or servers.
When the websites are located on a same server, the "synchronization" plugin is preferred to this "manual" import processing.
The import allows CSV or tabulated files.
The format of the file is very basic.
Both invoice header and products are present on a single line.
When there are several product line then the invoice header is repeated.
This give something like

bill_namekey invoice_no parent_id id line_no sku qty Price
myservername|hikainvoice.com|1 15   10 1 hikainvoices_v1.0.05 1 75
myservername|hikainvoice.com|1 15   11 2 manual_prod_1 1 10

The mandatory fields are:

  • header
    • bill_namekey : must be unique key across servers and websites
  • product lines
    • parent_id: In general, the parent_id is 0. When a product have options (sub-products), it helps identifying the parent.
    • id: The unique identifier of the product line. Once the import is done, the ID is adjusted in the DB according the new ID value as well as the parent_id is updated to reflect the new ID value.
    • line_no: The line number inside the invoice (document)

It is possible to import header only or product lines only.
When none of the columns corresponds to a product lines then only the header is imported.
For the import of the "product lines" only the header "bill_namekey" must be present to allow retrieving the internal "bill_id" generated after the import

Any first line of the import file that would have a column name starting with underscore (_) will be considered by default as a field to ignore.

The import processing works in 3 steps

  1. Upload the file for review
  2. Associate the columns of the uploaded file with the columns in the DB.
    This allow importing the data from other application and mapping the foreign name with the HikaInvoices field names
  3. Proceed with the execution of the file 

Because some fields can have special character, it is possible to encode the string using the base 64 function.
When a string start with "[base64]:" then it means that the following content is a base 64 string that must be decoded during the import.
This help, for example, import the "invoice_html" text field that may content new line, quotes and other characters that can make the formatting in CSV format difficult.

It provides the statistics on what is executed.
It starts by giving the general information concerning the number of records (lines) found in the file and if some lines were considered as valid or have errors.

After that, you have the number of "invoices" (header) that were identified. The invoices count correspond to the different "bill_namekey" found in the file and that at least contains another field name during the upload.

Finally, the number of "product lines" identified and processed.

  • "Found" means that a some data is found that justify to create an invoice (header) or product lines (items)
  • "Updated" corresponds to the number of records in the DB that match the key provided in the file uploaded
  • "Affected" corresponds to the number of records that were inserted or updated when the "overwrite records" is enabled (Yes)

Export Invoices

The export of the invoices (and other documents) can be helpful to synchronize the invoice with another website or to help injecting the data into an accountancy application.

The export is available in CSV or tabulated format.
You can export the document for a specific range of date.

String format can be important when exporting the data for another machine with different string format.

Separator allows selecting how to export the file. Either in CSV with semis column or comma separator OR in a text format with tabulated separator

Invoice data scope describes if only the invoice header or only the invoice lines must be export or both (All).

Date from / to provides the range of date for the export. When used to synchronize HikaInvoices for the european MOSS tax reported, the range date will generally be a quarter.

Export MOSS

This export only concerns the electronic services. In other words, the invoices that contain a "MOSS service code".
You can select the period for which you want to extract the invoices for the export.
Normally the export should be done every quarter but we let the period open.

You can select among several format that may depends on the country where you need to declare the TAX.
Most of the countries just provide manual encoding via internet but some also provide the possibility to import a specific file.

The parameters are:

  • Period for which the invoices must be exported.
  • MOSS Xml Format that define the layout of the XML that must be generated.
    The following format are available:
    • European SAF-MOSS version 1.00
    • Belgium Intervat MOSS version 0.9
  • MOSS Comment is a comment (free text) that can be included inside the Euopean SAF-MOSS file.

Show Last Invoice number

When the "Unique Invoice Number generation" plugin is installed and enabled, it allows displaying the latest (current) invoice number generated.

Get New Invoice number

When the "Unique Invoice Number generation" plugin is installed and enabled, it allows create (reserve) a new invoice number that can be used for example when creating a manual invoice outside the website.

Editors-xtd - HikaInvoices keyword plugin

Extends the editor with the "Keyword" button.
The "keyword" button is only available inside HikaInvoices and in particular in side the template invoice editor where it allows retrieving the available keywords.

HikaInvoices keyword

Inside the keyword popup, you can retrieve the keyword relative to a specific invoice number and also filter them based on their names or values.
So that, it can be easy to retrieve the name of a keyword based on its value or the reverse.

Hikashop - Attach invoice plugin

Attach invoice is a HikaShop plugin is use to generate and send the PDF document when a customer has confirmed and paid its order.

The parameters are:

      • Invoice folder: This allow specifying the directory where the invoices must be stored. When empty, it used the HikaInvoices configuration "invoice folder".
      • Invoice file name: This allow specifying the way to generate the file name.
        Several keywords are available to compute the file name:
        Sample: /{invoice_year}/invoice_{invoice_year}-{invoice_number}.pdf

        • {invoice_year} is the current year in format YYYY
          • {invoice_number} is the current invoice number
        • Delete older invoices: Normally, the invoices should never be regenerated and should be freeze. If you don't want to keep the invoice on your server to let the user download them later, this is possible. This parameter allows removing old invoices.
        • Invoice template: When specified, it allows providing the path a specific invoice template processing.
          The default value is computed as follow:
          • If the {root}/media/com_hikashop/plugins/invoice.php is present then this is the default value
          • When the {root}/administrator/com_hikainvoices/inc/pdf/invoice.php is present, it is used as default value
          • Otherwise, the invoice template is "invoice.php" located in the "attachinvoice" subdirectory of the plugin.
        • Invoice params: It allows providing additional parameters for the template. The parameters follow the rules of the url parameters. The needs to be separated by (&).
          ie. param1=value1&param2=value2
          For example: 
          invoiceReportID=2
          Force using the template ID = 2 for the generation of the invoice.
        • Invoice format: Some invoices parameters may require some reformating. This fields allows doing special processing to reformat some fields. 
        • Send a copy to: Provide the email address where a copy of the invoice must be sent.
        • Footer: The footer value that might be used by some PDF layout.
        • Font to use: Font to use when generating the PDF. This parameters is only active when the default attachinvoice/invoice.php with the "HTM2PDF" format is used. 
        • Override on the front-end: When enabled, it authorizes generate the invoice from the front-end
        • Override on the back-endWhen enabled, it authorizes generate the invoice from the back-end

Hikashop - Invoice integration plugin

Invoice integration plugin is the "HikaInvoices" integration inside HikaShop.
It adds the "HikaInvoices" menu inside HikaShop and also enhance HikaShop with some functionality to be complaint with European MOSS declaration.
This adds some fields inside the hikashop tables to store the additional MOSS compliant fields.
This mainly enhance the tax category, tax rate to add the MOSS Service code, tax ICC, Tax code

Hikashop - Unique Invoice Number generation plugin

When a company has several websites and wants to perform the European MOSS declaration required for the Electronic Services, it is generally recommended to have a single invoice number across all the websites.
This plugin allow generating a unique invoice number for several websites located on the same server.
By default, its parameters are collected from the HikaInvoices configuration but can be overridden inside the plugin.

The parameter is:

      • Invoice directory: This is the path where are stored the invoices.
        The following keywords are available:
        • {root} it corresponds to the current website root directory.
          • {root-1} that is the equivalent of {root}/../

Hikainvoices - bills synchronization plugin

When several websites are located on the same server, it is possible to send all the invoices( bills) into a bills "warehouse" that would centralize all the data into a single place to help in the tax reporting and tax export.
Each site that needs to send its data to another one just have to provide the path of the "configuration.php" file of the other website.
This will allow the plugin directly write a copy of each records into the other website.
If the access to the other "configuration.php" is restricted, you can make a local copy of the "configuratoin.php" or create a specific files that contain the DB connection with the same syntax as the one in the "configuration.php".

The parameters are:

      • Target configuration.php path: This is the path to the file "configuration.php" or any other name.
      • Unique Site ID: It is used when an invoices is not already identified as produced for a specific website. When Jms Multi Sites is present, most of the invoices may already contain the JMS Site ID. When it is empty or correspond to a master JMS website then this Site ID allow providing a unique reference to avoid conflict with other website.

 

 

Hikashop - VAT plugin

This is the plugin that adds the VAT cache and alternate VAT website checking when the European website is not available.
It is important to have a cache of the VAT verification in case of conflict with the tax administration.
It may happen (not frequent) that some VAT number are removed during a quarter.
That mean that when you will report your European Intra-Communautary sales, some VAT number might be removed and in this case, your cache will give you the prove that at the moment of the verification, you received a success from the European websites or alternate source.

The parameters are:

      • Proxy parameters
        • Proxy URL
          • Proxy port
          • Proxy user
          • Proxy password
        • Cache directory: is the location where store the VAT cache.
        • Cache duration: The duration can be: "no cache", "month", "quarter", "year", "unlimited"
          As the MOSS tax reporting must be performed quarterly, we suggest to set the cache with "quarter" to ensure that some companies would not be removed from the European tax registration.

System- Hikainvoice Geo-Localisation plugin

This plugin allows using the Jms Multisite Geo-Localisation (www.jms2win.com) in addition of the services proposed by HikaShop with the Business edition.
The Geo-Localisation is available in JMS medium or full edition.

 

Update/About

The Update/About menu display the current HikaInvoices version, change history and also allow the registration of the extension to get a download ID required inside the Joomla Update processing.

When the user who register the extension is the one that own a confirmed order of the extension then the download ID is automatically collected.
The Update/About menu also fill the "Joomla Update Sites" information in case where the data would not be represent or removed by a Extension / Update sites => Rebuild.

This feature requires HikaInvoices version 1.0.26 or higher AND Joomla 3.7 or higher.