Here you will find everything you need to set up and use our Advanced Reports. Whether you're new or an advanced user, you can find some useful information here.
The Advanced Reports extension includes the following modules:
With this extension you'll be able to display almost any data from your store in reports and/or dashboard widgets.
Learn about the initial setup:
In this article, you will find two possible ways to install our extension.
We recommend this installation method because the composer automatically checks and installs necessary dependencies.
Copy the installation instructions from the page My Downloadable Products to the SSH console and press ENTER.
php -f bin/magento module:enable Mirasvit_Core Mirasvit_Report Mirasvit_Reports Mirasvit_Dashboard Mirasvit_ReportBuilder
php -f bin/magento setup:upgrade
Clean the cache
php -f bin/magento cache:clean
rm -rf pub/static/frontend/*
rm -rf pub/static/backend/*
rm -rf var/view_preprocessed/*
php -f bin/magento setup:static-content:deploy
You can also install the extension via direct files uploading.
Go to My Downloadable Products / View & Download.
php -f bin/magento module:enable Mirasvit_Core Mirasvit_Report Mirasvit_Reports Mirasvit_Dashboard Mirasvit_ReportBuilder
php -f bin/magento setup:upgrade
Clean the cache
php -f bin/magento cache:clean
rm -rf pub/static/frontend/*
rm -rf pub/static/backend/*
rm -rf var/view_preprocessed/*
php -f bin/magento setup:static-content:deploy
Learn about the initial setup:
As you have completed the installation of Advanced Reports, we will guide you through the main steps required to start using our extension efficiently.
Please open and configure your first Advanced Dashboard (Magento Main Menu > Dashboard > Advanced Dashboard)
All configurations of the Advanced Reports extension are located at Stores -> Configuration -> Mirasvit Extensions -> Advanced Reports.
The extension has only one setting - Order Status. This setting defines which order statuses will be pre-selected as a filter for all reports and dashboard blocks.
The Advanced Reports extension offers a comprehensive range of tools for analyzing and improving sales through a variety of reports. This extension enables the display of composite reports for all websites, as well as separate reports for each store.
The extension provides a selection of predefined reports that are particularly useful for most Magento stores. The information about these reports can be found here.
Each report can be customized using the Report Builder tool. Additionally, it is possible to create custom reports by copying and modifying predefined reports.
The extension is capable of displaying nearly any data from the store's database. It also allows the calculation and aggregation of data on the fly, according to specific requirements, through the Config Builder tool.
While the interface of the reports may appear different from the native grids in the admin panel, the navigation and tools remain similar, ensuring that managing the reports is easy and intuitive.
Each report interface consists of three main sections:
Toolbar - this section contains primary filters and report control buttons, including options to save, share, and edit the report. Here, users can select the time range of the report and apply primary filters defined in the Report Builder. It is possible to save the report state after making changes and enable/disable sharing. The Save, Share, and Edit buttons can be hidden for specific admin users using User Role Permissions settings. Further information can be found here.
Chart - this section allows users to visualize the data in the report using various types of charts. Users can switch between different chart types using the chart toolbar located in the top right corner of this section. In some reports, the chart section may be hidden. To display the chart, users can select the columns for which they would like to visualize the data by clicking the corresponding button near the column in the reports section.
Report - this section contains the actual report. It is divided into two inner sections - the toolbar and the report area.
In the toolbar section, users can filter the report by columns from the report itself or add additional filters. Users can also change the columns displayed in the report and export the report in CSV or XML format.
The Advanced Reports extension comes with a bunch of predefined reports that will be helpful to monitor and analyze sales data for most Magento stores.
Predefined reports are separated into groups according to their purposes:
This section provides a few common reports built with the Report Builder tool.
You can find out how to exact the configuration reports in our demo.
The Magento 2 Low Stock Report contains a list of all products with a stock quantity that is lower than the designated minimum level.
The Magento 2 COGS Report (Cost of Goods Sold) contains a list of all purchased products, their quantity, and cost.
The Magento 2 Stock Value Report contains a list of all products with their stock quantity and each products' cost.
The stock value report is very useful when you need to know the specific quantity of stock you have for specific products and their total value.
The Report Builder is an innovative tool that enables users to modify existing reports or create their own customized reports.
The Report Builder is available for both pre-defined and custom reports. The only difference is that pre-defined reports cannot be completely removed. If a pre-defined report is customized and then deleted, the report will be reset to its initial state. Conversely, custom reports can be permanently removed by pressing the delete button without the ability to restore them.
To create a custom report based on a pre-defined report, open the dropdown menu in the top right corner of the toolbar on the report page and click on the Make a copy link.
To access the Report Builder, open the dropdown menu in the top right corner of the toolbar on the report page and click on the Edit report link.
The interface of the Report Builder consists of two main sections: the Config section and the Preview section.
The Preview section (on the right) is useful for checking how the report will look before saving it.
The Config section (on the left) is used for configuring the report and is subdivided into four inner sections, each responsible for configuring different parts of the report:
When configuring filters in the Table, Toolbar, or Internal Filter sections and clicking on the Manage or Choose Filter button, the Columns Chooser popup will open.
This popup allows users to manage columns for each section of the Config section in the Report Builder.
The columns in this popup are organized into groups, which mostly correspond to the tables to which those columns belong. Users can use the search bar to easily find the column they want to add to the report. If the column is not present or cannot be found using the search bar, it is likely that the column is not registered in the extension. In such cases, users can switch the Columns Chooser to advanced mode and try to find the column by its name in the database.
If the column or the entire table to which the column belongs cannot be found, users will need to create configurations for this column using the Config Builder provided by our extension.
Predefined reports provided by the extension and Report Builder can cover most cases for analyzing sales in a simple Magento store. However, the real stores and types of items they sell may require more advanced and flexible tools to analyze different parts of their sales. Also, real stores can have a lot of 3rd-party extensions with their own database tables that contain important data for sales/marketing/inventory analytics.
The Config Builder is exactly the tool for such purposes. It is located in Reports -> Advanced Reports -> Config Builder.
The Config Builder provides the ability to create Synthetic columns with complex data calculation/aggregation and to adjust relations between the native Magento database tables and tables from a 3rd-party or custom extension so the data in reports will be as accurate as possible.
Open either the Report Builder or Config Builder menu, and select the Add New Config action on the right menu section. You will be brought to the Config Workspace:
It is very simple and contains the following fields:
This is the root element, e.g. all other tags should be contained inside it.
There are only 3 possible nodes allowed inside the config element - <table />
, <eavTable />
, <relation />
.
This element must be used for registering tables so the extension will be able to retrieve data from them.
This element also can be used for already defined tables to assign custom synthetic columns to them.
Allowed child elements: <pk />
, <fk />
, <column />
.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | name of the table. The name should be specified without the table prefix. This means that if you have in your database a prefix like mage_ and real table name mage_sales_order , you need to enter here just sales_order |
required | none |
group | name of a group, under which this table appears in the Report Builder. Default values: Sales , Products , Customers , Categories , Other . |
optional | Other |
label | the label of a table that is used in identifying a table. | optional | the value of the name attribute |
This element must be used for registering EAV tables so the extension will be able to retrieve data from corresponding EAV entities including their attributes.
This element SHOULD NOT be used for native EAV tables like catalog_product_entity
, catalog_category_entity
, customer_entity
, etc as these EAV entities are already registered in the extension.
Allowed child elements: <pk />
, <fk />
, <column />
.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | name of the table. The name should be specified without the table prefix. This means that if you have in your database a prefix like mage_ and real table name mage_sales_order , you need to enter here just sales_order |
required | none |
group | name of a group, under which this table appears in the Report Builder. Default values: Sales , Products , Customers , Categories , Other . |
optional | Other |
label | the label of a table that is used in identifying a table. | optional | the value of the name attribute |
type | the type code of the EAV entity. The code can be found in the entity_type_code column in the eav_entity_type table |
required | none |
The primary key of the table. This element is optional and SHOULD NOT be used on native tables.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | the name of the primary key column | required | none |
label | the labels for the column | optional | the value of the name attribute |
The foreign key is in the table. This element is optional and SHOULD NOT be used on native tables.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | the name of the foreign key column | required | none |
label | the labels for the column | optional | the value of the name attribute |
table | the relation table name without prefix | required | none |
This element is responsible for defining the column. This element is mostly used for synthetic columns with custom calculations.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | the name of the primary key column | required | none |
label | the labels for the column | optional | the value of the name attribute |
type | data type of the column's value. The type defines how the value of the column will be displayed and possible aggregations for the column. The extension will automatically add columns with aggregations to the Column Chooser. Supported types: money , country , date , qty , number , select , percent , store , html . More information about data types you can check here |
optional | html |
fields | comma-separated list of fields, which will be used in calculations | optional | if omitted the value from the name field will be used |
expr | this attribute contains MySQL expression to calculate field value. You can use placeholders, where %1 corresponds to the first field in the previous attribute, %2 - to the second, and so on. |
optional | %1 |
options | non-mandatory attribute where the data type select or country is used. Here you need to enter the full name or the class that implements the method toOptionArray for this column. |
optional | none |
tables | comma-separated list of table names (without prefix) for the ability to include columns from other tables inside the expr field | optional | none |
Type | Description | Aggregators |
---|---|---|
html | Simple string, Output values as it is | JOIN |
number | Number rounded to 2 decimal points | SUM , AVG |
qty | Integer value, mostly used for ID fields | COUNT |
percent | Value formatted as a percentage with % symbol, rounded to 2 decimal points |
AVG |
money | Currency format, displays numbers with currency symbol, rounded to 2 decimal points. If the report is filtered by one particular store the value will be displayed in the default currency for that store. Otherwise, the default store currency will be used | SUM , AVG |
date | Date format, Depending on the aggregation type the output may vary | HOUR , DAY , DAY OF WEEK , MONTH , QUARTER , YEAR |
select | The type for the field with predefined variations for values. With this type, the options attribute SHOULD be used in the column element |
JOIN |
country | Similar to the select type. If the value of the column is in the ISO 3166-1 alpha-2 format then class Mirasvit\Report\Config\Source\Directory\Country can be used as the value of the options attribute in the column element |
JOIN |
store | Similar to the select type but store labels will be retrieved by the extension so the options attribute SHOULD NOT be used along with this data type |
none |
The module should determine how to link different tables to build reports from multiple tables.
The connection between two or more tables is called a table relationship.
The < relation />
element is responsible for defining relations between tables.
Required child elements: <leftTable />
, <rightTable />
, <condition />
.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | the name of the relation. the name can be any string but it is recommended to use the following format: leftTable-rightTable |
required | none |
type | the type of the relation between tables. Possible values: 11 - one to one; 1n - one to many. |
required | none |
This element is responsible for defining tables in the relation in the next format: <leftTable>sales_order_item</leftTable>
.
The table name should be specified without the table prefix. These elements don't have attributes.
This element is responsible for defining JOIN conditions between leftTable
and rightTable
using MySQL syntax.
You can use placeholders %1
and %2
where %1
is a placeholder for the letTable
and %2
- for the rightTable
A synthetic field that calculates the Gross Profit on the fly based on the actual invoiced orders.
<config>
<table name="sales_order" group="Sales" label="Orders">
<column name="custom_gross_profit"
label="Custom Gross Profit"
fields="base_subtotal_invoiced,base_total_invoiced_cost,base_total_refunded,base_to_global_rate"
type="money"
expr="(%1 - IFNULL(%2, 0) - IFNULL(%3, 0)) * %4" />
</table>
</config>
A synthetic field that calculates the Total (row total) for items in the cart.
This config is a part of the already defined config for the table qoute_item
and is given here only as an example.
<config>
<table name="quote_item" label="Quote Items" group="Sales">
<column name="row_total"
label="Total"
fields="base_row_total"
type="money"
expr="%1 * IF(quote.base_to_global_rate > 0, quote.base_to_global_rate, 1)"
tables="quote"/>
</table>
</config>
The example of building a relationship between sales_order and sales_order_item tables.
<config>
<relation name="sales_order-sales_order_item" type="1n">
<leftTable>sales_order_item</leftTable>
<rightTable>sales_order</rightTable>
<condition>%2.entity_id=%1.order_id AND %1.parent_item_id IS NULL</condition>
</relation>
</config>
The config with relations and synthetic column to display the shipment date for each item in the order even if items from the order were shipped separately.
At first, the sales_shipment_item
table needs to be registered in the extension.
Then necessary relations are adjusted to properly connect items in the cart with shipment tables. After the Shipment Date column is defined in the sales_shipment
table (to give a self-explanatory label for the column, this part is optional).
<config>
<table name="sales_shipment_item" group="Sales" label="Shipment Item">
<pk name="entity_id"/>
<column name="parent_id" label="Shipment Id"/>
<column name="order_item_id" label="Order Item Id"/>
</table>
<relation name="sales_order_item-sales_shipment_item" type="11">
<leftTable>sales_order_item</leftTable>
<rightTable>sales_shipment_item</rightTable>
<condition>%1.item_id=%2.order_item_id</condition>
</relation>
<relation name="sales_shipment-sales_shipment_item" type="11">
<leftTable>sales_shipment</leftTable>
<rightTable>sales_shipment_item</rightTable>
<condition>%1.entity_id=%2.parent_id</condition>
</relation>
<table name="sales_shipment" group="Sales" label="Shipment">
<column name="shipped_at" label="Shipment Date" fields="created_at" type="date"/>
</table>
</config>
This config defines the EAV entity table and automatically adds columns for all attributes related to this entity.
This example includes the primary key field, the foreign key to connect customer_entity
table with customer_address_entity
table (in this case, another EAV entity), and the column
of the type select
for Customer Group.
This config is already defined in the extension and given here only as an example.
<config>
<eavTable name="customer_entity" label="Customers" group="Customers" type="customer">
<pk name="entity_id" label="Customer ID"/>
<fk name="default_billing" table="customer_address_entity"/>
<column name="email" label="Email"/>
<column name="group_id"
label="Group"
type="select"
options="Mirasvit\Report\Config\Source\Customer\Group"/>
</eavTable>
</config>
This config creates a column that displays active product special prices for the current date. This config can help build the report that displays all products with active special prices.
<config>
<table name="catalog_product_entity">
<column name="active_special_price"
label="Active Special Price"
fields="special_price,special_from_date,special_to_date"
type="money"
expr="IF(DATE(IFNULL(%2, 0)) < DATE(NOW()) AND DATE(IFNULL(%3, NOW())) >= DATE(NOW()), IFNULL(%1, 0), 0)" />
</table>
</config>
Predefined reports provided by the extension and Report Builder can cover most cases for analyzing sales in a simple Magento store. However, the real stores and types of items they sell may require more advanced and flexible tools to analyze different parts of their sales. Also, real stores can have a lot of 3rd-party extensions with their own database tables that contain important data for sales/marketing/inventory analytics.
The Config Builder is exactly the tool for such purposes. It is located in Reports -> Advanced Reports -> Config Builder.
The Config Builder provides the ability to create Synthetic columns with complex data calculation/aggregation and to adjust relations between the native Magento database tables and tables from a 3rd-party or custom extension so the data in reports will be as accurate as possible.
Open either the Report Builder or Config Builder menu, and select the Add New Config action on the right menu section. You will be brought to the Config Workspace:
It is very simple and contains the following fields:
This is the root element, e.g. all other tags should be contained inside it.
There are only 3 possible nodes allowed inside the config element - <table />
, <eavTable />
, <relation />
.
This element must be used for registering tables so the extension will be able to retrieve data from them.
This element also can be used for already defined tables to assign custom synthetic columns to them.
Allowed child elements: <pk />
, <fk />
, <column />
.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | name of the table. The name should be specified without the table prefix. This means that if you have in your database a prefix like mage_ and real table name mage_sales_order , you need to enter here just sales_order |
required | none |
group | name of a group, under which this table appears in the Report Builder. Default values: Sales , Products , Customers , Categories , Other . |
optional | Other |
label | the label of a table that is used in identifying a table. | optional | the value of the name attribute |
This element must be used for registering EAV tables so the extension will be able to retrieve data from corresponding EAV entities including their attributes.
This element SHOULD NOT be used for native EAV tables like catalog_product_entity
, catalog_category_entity
, customer_entity
, etc as these EAV entities are already registered in the extension.
Allowed child elements: <pk />
, <fk />
, <column />
.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | name of the table. The name should be specified without the table prefix. This means that if you have in your database a prefix like mage_ and real table name mage_sales_order , you need to enter here just sales_order |
required | none |
group | name of a group, under which this table appears in the Report Builder. Default values: Sales , Products , Customers , Categories , Other . |
optional | Other |
label | the label of a table that is used in identifying a table. | optional | the value of the name attribute |
type | the type code of the EAV entity. The code can be found in the entity_type_code column in the eav_entity_type table |
required | none |
The primary key of the table. This element is optional and SHOULD NOT be used on native tables.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | the name of the primary key column | required | none |
label | the labels for the column | optional | the value of the name attribute |
The foreign key is in the table. This element is optional and SHOULD NOT be used on native tables.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | the name of the foreign key column | required | none |
label | the labels for the column | optional | the value of the name attribute |
table | the relation table name without prefix | required | none |
This element is responsible for defining the column. This element is mostly used for synthetic columns with custom calculations.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | the name of the primary key column | required | none |
label | the labels for the column | optional | the value of the name attribute |
type | data type of the column's value. The type defines how the value of the column will be displayed and possible aggregations for the column. The extension will automatically add columns with aggregations to the Column Chooser. Supported types: money , country , date , qty , number , select , percent , store , html . More information about data types you can check here |
optional | html |
fields | comma-separated list of fields, which will be used in calculations | optional | if omitted the value from the name field will be used |
expr | this attribute contains MySQL expression to calculate field value. You can use placeholders, where %1 corresponds to the first field in the previous attribute, %2 - to the second, and so on. |
optional | %1 |
options | non-mandatory attribute where the data type select or country is used. Here you need to enter the full name or the class that implements the method toOptionArray for this column. |
optional | none |
tables | comma-separated list of table names (without prefix) for the ability to include columns from other tables inside the expr field | optional | none |
Type | Description | Aggregators |
---|---|---|
html | Simple string, Output values as it is | JOIN |
number | Number rounded to 2 decimal points | SUM , AVG |
qty | Integer value, mostly used for ID fields | COUNT |
percent | Value formatted as a percentage with % symbol, rounded to 2 decimal points |
AVG |
money | Currency format, displays numbers with currency symbol, rounded to 2 decimal points. If the report is filtered by one particular store the value will be displayed in the default currency for that store. Otherwise, the default store currency will be used | SUM , AVG |
date | Date format, Depending on the aggregation type the output may vary | HOUR , DAY , DAY OF WEEK , MONTH , QUARTER , YEAR |
select | The type for the field with predefined variations for values. With this type, the options attribute SHOULD be used in the column element |
JOIN |
country | Similar to the select type. If the value of the column is in the ISO 3166-1 alpha-2 format then class Mirasvit\Report\Config\Source\Directory\Country can be used as the value of the options attribute in the column element |
JOIN |
store | Similar to the select type but store labels will be retrieved by the extension so the options attribute SHOULD NOT be used along with this data type |
none |
The module should determine how to link different tables to build reports from multiple tables.
The connection between two or more tables is called a table relationship.
The < relation />
element is responsible for defining relations between tables.
Required child elements: <leftTable />
, <rightTable />
, <condition />
.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | the name of the relation. the name can be any string but it is recommended to use the following format: leftTable-rightTable |
required | none |
type | the type of the relation between tables. Possible values: 11 - one to one; 1n - one to many. |
required | none |
This element is responsible for defining tables in the relation in the next format: <leftTable>sales_order_item</leftTable>
.
The table name should be specified without the table prefix. These elements don't have attributes.
This element is responsible for defining JOIN conditions between leftTable
and rightTable
using MySQL syntax.
You can use placeholders %1
and %2
where %1
is a placeholder for the letTable
and %2
- for the rightTable
A synthetic field that calculates the Gross Profit on the fly based on the actual invoiced orders.
<config>
<table name="sales_order" group="Sales" label="Orders">
<column name="custom_gross_profit"
label="Custom Gross Profit"
fields="base_subtotal_invoiced,base_total_invoiced_cost,base_total_refunded,base_to_global_rate"
type="money"
expr="(%1 - IFNULL(%2, 0) - IFNULL(%3, 0)) * %4" />
</table>
</config>
A synthetic field that calculates the Total (row total) for items in the cart.
This config is a part of the already defined config for the table qoute_item
and is given here only as an example.
<config>
<table name="quote_item" label="Quote Items" group="Sales">
<column name="row_total"
label="Total"
fields="base_row_total"
type="money"
expr="%1 * IF(quote.base_to_global_rate > 0, quote.base_to_global_rate, 1)"
tables="quote"/>
</table>
</config>
The example of building a relationship between sales_order and sales_order_item tables.
<config>
<relation name="sales_order-sales_order_item" type="1n">
<leftTable>sales_order_item</leftTable>
<rightTable>sales_order</rightTable>
<condition>%2.entity_id=%1.order_id AND %1.parent_item_id IS NULL</condition>
</relation>
</config>
The config with relations and synthetic column to display the shipment date for each item in the order even if items from the order were shipped separately.
At first, the sales_shipment_item
table needs to be registered in the extension.
Then necessary relations are adjusted to properly connect items in the cart with shipment tables. After the Shipment Date column is defined in the sales_shipment
table (to give a self-explanatory label for the column, this part is optional).
<config>
<table name="sales_shipment_item" group="Sales" label="Shipment Item">
<pk name="entity_id"/>
<column name="parent_id" label="Shipment Id"/>
<column name="order_item_id" label="Order Item Id"/>
</table>
<relation name="sales_order_item-sales_shipment_item" type="11">
<leftTable>sales_order_item</leftTable>
<rightTable>sales_shipment_item</rightTable>
<condition>%1.item_id=%2.order_item_id</condition>
</relation>
<relation name="sales_shipment-sales_shipment_item" type="11">
<leftTable>sales_shipment</leftTable>
<rightTable>sales_shipment_item</rightTable>
<condition>%1.entity_id=%2.parent_id</condition>
</relation>
<table name="sales_shipment" group="Sales" label="Shipment">
<column name="shipped_at" label="Shipment Date" fields="created_at" type="date"/>
</table>
</config>
This config defines the EAV entity table and automatically adds columns for all attributes related to this entity.
This example includes the primary key field, the foreign key to connect customer_entity
table with customer_address_entity
table (in this case, another EAV entity), and the column
of the type select
for Customer Group.
This config is already defined in the extension and given here only as an example.
<config>
<eavTable name="customer_entity" label="Customers" group="Customers" type="customer">
<pk name="entity_id" label="Customer ID"/>
<fk name="default_billing" table="customer_address_entity"/>
<column name="email" label="Email"/>
<column name="group_id"
label="Group"
type="select"
options="Mirasvit\Report\Config\Source\Customer\Group"/>
</eavTable>
</config>
This config creates a column that displays active product special prices for the current date. This config can help build the report that displays all products with active special prices.
<config>
<table name="catalog_product_entity">
<column name="active_special_price"
label="Active Special Price"
fields="special_price,special_from_date,special_to_date"
type="money"
expr="IF(DATE(IFNULL(%2, 0)) < DATE(NOW()) AND DATE(IFNULL(%3, NOW())) >= DATE(NOW()), IFNULL(%1, 0), 0)" />
</table>
</config>
Predefined reports provided by the extension and Report Builder can cover most cases for analyzing sales in a simple Magento store. However, the real stores and types of items they sell may require more advanced and flexible tools to analyze different parts of their sales. Also, real stores can have a lot of 3rd-party extensions with their own database tables that contain important data for sales/marketing/inventory analytics.
The Config Builder is exactly the tool for such purposes. It is located in Reports -> Advanced Reports -> Config Builder.
The Config Builder provides the ability to create Synthetic columns with complex data calculation/aggregation and to adjust relations between the native Magento database tables and tables from a 3rd-party or custom extension so the data in reports will be as accurate as possible.
Open either the Report Builder or Config Builder menu, and select the Add New Config action on the right menu section. You will be brought to the Config Workspace:
It is very simple and contains the following fields:
This is the root element, e.g. all other tags should be contained inside it.
There are only 3 possible nodes allowed inside the config element - <table />
, <eavTable />
, <relation />
.
This element must be used for registering tables so the extension will be able to retrieve data from them.
This element also can be used for already defined tables to assign custom synthetic columns to them.
Allowed child elements: <pk />
, <fk />
, <column />
.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | name of the table. The name should be specified without the table prefix. This means that if you have in your database a prefix like mage_ and real table name mage_sales_order , you need to enter here just sales_order |
required | none |
group | name of a group, under which this table appears in the Report Builder. Default values: Sales , Products , Customers , Categories , Other . |
optional | Other |
label | the label of a table that is used in identifying a table. | optional | the value of the name attribute |
This element must be used for registering EAV tables so the extension will be able to retrieve data from corresponding EAV entities including their attributes.
This element SHOULD NOT be used for native EAV tables like catalog_product_entity
, catalog_category_entity
, customer_entity
, etc as these EAV entities are already registered in the extension.
Allowed child elements: <pk />
, <fk />
, <column />
.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | name of the table. The name should be specified without the table prefix. This means that if you have in your database a prefix like mage_ and real table name mage_sales_order , you need to enter here just sales_order |
required | none |
group | name of a group, under which this table appears in the Report Builder. Default values: Sales , Products , Customers , Categories , Other . |
optional | Other |
label | the label of a table that is used in identifying a table. | optional | the value of the name attribute |
type | the type code of the EAV entity. The code can be found in the entity_type_code column in the eav_entity_type table |
required | none |
The primary key of the table. This element is optional and SHOULD NOT be used on native tables.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | the name of the primary key column | required | none |
label | the labels for the column | optional | the value of the name attribute |
The foreign key is in the table. This element is optional and SHOULD NOT be used on native tables.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | the name of the foreign key column | required | none |
label | the labels for the column | optional | the value of the name attribute |
table | the relation table name without prefix | required | none |
This element is responsible for defining the column. This element is mostly used for synthetic columns with custom calculations.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | the name of the primary key column | required | none |
label | the labels for the column | optional | the value of the name attribute |
type | data type of the column's value. The type defines how the value of the column will be displayed and possible aggregations for the column. The extension will automatically add columns with aggregations to the Column Chooser. Supported types: money , country , date , qty , number , select , percent , store , html . More information about data types you can check here |
optional | html |
fields | comma-separated list of fields, which will be used in calculations | optional | if omitted the value from the name field will be used |
expr | this attribute contains MySQL expression to calculate field value. You can use placeholders, where %1 corresponds to the first field in the previous attribute, %2 - to the second, and so on. |
optional | %1 |
options | non-mandatory attribute where the data type select or country is used. Here you need to enter the full name or the class that implements the method toOptionArray for this column. |
optional | none |
tables | comma-separated list of table names (without prefix) for the ability to include columns from other tables inside the expr field | optional | none |
Type | Description | Aggregators |
---|---|---|
html | Simple string, Output values as it is | JOIN |
number | Number rounded to 2 decimal points | SUM , AVG |
qty | Integer value, mostly used for ID fields | COUNT |
percent | Value formatted as a percentage with % symbol, rounded to 2 decimal points |
AVG |
money | Currency format, displays numbers with currency symbol, rounded to 2 decimal points. If the report is filtered by one particular store the value will be displayed in the default currency for that store. Otherwise, the default store currency will be used | SUM , AVG |
date | Date format, Depending on the aggregation type the output may vary | HOUR , DAY , DAY OF WEEK , MONTH , QUARTER , YEAR |
select | The type for the field with predefined variations for values. With this type, the options attribute SHOULD be used in the column element |
JOIN |
country | Similar to the select type. If the value of the column is in the ISO 3166-1 alpha-2 format then class Mirasvit\Report\Config\Source\Directory\Country can be used as the value of the options attribute in the column element |
JOIN |
store | Similar to the select type but store labels will be retrieved by the extension so the options attribute SHOULD NOT be used along with this data type |
none |
The module should determine how to link different tables to build reports from multiple tables.
The connection between two or more tables is called a table relationship.
The < relation />
element is responsible for defining relations between tables.
Required child elements: <leftTable />
, <rightTable />
, <condition />
.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | the name of the relation. the name can be any string but it is recommended to use the following format: leftTable-rightTable |
required | none |
type | the type of the relation between tables. Possible values: 11 - one to one; 1n - one to many. |
required | none |
This element is responsible for defining tables in the relation in the next format: <leftTable>sales_order_item</leftTable>
.
The table name should be specified without the table prefix. These elements don't have attributes.
This element is responsible for defining JOIN conditions between leftTable
and rightTable
using MySQL syntax.
You can use placeholders %1
and %2
where %1
is a placeholder for the letTable
and %2
- for the rightTable
A synthetic field that calculates the Gross Profit on the fly based on the actual invoiced orders.
<config>
<table name="sales_order" group="Sales" label="Orders">
<column name="custom_gross_profit"
label="Custom Gross Profit"
fields="base_subtotal_invoiced,base_total_invoiced_cost,base_total_refunded,base_to_global_rate"
type="money"
expr="(%1 - IFNULL(%2, 0) - IFNULL(%3, 0)) * %4" />
</table>
</config>
A synthetic field that calculates the Total (row total) for items in the cart.
This config is a part of the already defined config for the table qoute_item
and is given here only as an example.
<config>
<table name="quote_item" label="Quote Items" group="Sales">
<column name="row_total"
label="Total"
fields="base_row_total"
type="money"
expr="%1 * IF(quote.base_to_global_rate > 0, quote.base_to_global_rate, 1)"
tables="quote"/>
</table>
</config>
The example of building a relationship between sales_order and sales_order_item tables.
<config>
<relation name="sales_order-sales_order_item" type="1n">
<leftTable>sales_order_item</leftTable>
<rightTable>sales_order</rightTable>
<condition>%2.entity_id=%1.order_id AND %1.parent_item_id IS NULL</condition>
</relation>
</config>
The config with relations and synthetic column to display the shipment date for each item in the order even if items from the order were shipped separately.
At first, the sales_shipment_item
table needs to be registered in the extension.
Then necessary relations are adjusted to properly connect items in the cart with shipment tables. After the Shipment Date column is defined in the sales_shipment
table (to give a self-explanatory label for the column, this part is optional).
<config>
<table name="sales_shipment_item" group="Sales" label="Shipment Item">
<pk name="entity_id"/>
<column name="parent_id" label="Shipment Id"/>
<column name="order_item_id" label="Order Item Id"/>
</table>
<relation name="sales_order_item-sales_shipment_item" type="11">
<leftTable>sales_order_item</leftTable>
<rightTable>sales_shipment_item</rightTable>
<condition>%1.item_id=%2.order_item_id</condition>
</relation>
<relation name="sales_shipment-sales_shipment_item" type="11">
<leftTable>sales_shipment</leftTable>
<rightTable>sales_shipment_item</rightTable>
<condition>%1.entity_id=%2.parent_id</condition>
</relation>
<table name="sales_shipment" group="Sales" label="Shipment">
<column name="shipped_at" label="Shipment Date" fields="created_at" type="date"/>
</table>
</config>
This config defines the EAV entity table and automatically adds columns for all attributes related to this entity.
This example includes the primary key field, the foreign key to connect customer_entity
table with customer_address_entity
table (in this case, another EAV entity), and the column
of the type select
for Customer Group.
This config is already defined in the extension and given here only as an example.
<config>
<eavTable name="customer_entity" label="Customers" group="Customers" type="customer">
<pk name="entity_id" label="Customer ID"/>
<fk name="default_billing" table="customer_address_entity"/>
<column name="email" label="Email"/>
<column name="group_id"
label="Group"
type="select"
options="Mirasvit\Report\Config\Source\Customer\Group"/>
</eavTable>
</config>
This config creates a column that displays active product special prices for the current date. This config can help build the report that displays all products with active special prices.
<config>
<table name="catalog_product_entity">
<column name="active_special_price"
label="Active Special Price"
fields="special_price,special_from_date,special_to_date"
type="money"
expr="IF(DATE(IFNULL(%2, 0)) < DATE(NOW()) AND DATE(IFNULL(%3, NOW())) >= DATE(NOW()), IFNULL(%1, 0), 0)" />
</table>
</config>
Predefined reports provided by the extension and Report Builder can cover most cases for analyzing sales in a simple Magento store. However, the real stores and types of items they sell may require more advanced and flexible tools to analyze different parts of their sales. Also, real stores can have a lot of 3rd-party extensions with their own database tables that contain important data for sales/marketing/inventory analytics.
The Config Builder is exactly the tool for such purposes. It is located in Reports -> Advanced Reports -> Config Builder.
The Config Builder provides the ability to create Synthetic columns with complex data calculation/aggregation and to adjust relations between the native Magento database tables and tables from a 3rd-party or custom extension so the data in reports will be as accurate as possible.
Open either the Report Builder or Config Builder menu, and select the Add New Config action on the right menu section. You will be brought to the Config Workspace:
It is very simple and contains the following fields:
This is the root element, e.g. all other tags should be contained inside it.
There are only 3 possible nodes allowed inside the config element - <table />
, <eavTable />
, <relation />
.
This element must be used for registering tables so the extension will be able to retrieve data from them.
This element also can be used for already defined tables to assign custom synthetic columns to them.
Allowed child elements: <pk />
, <fk />
, <column />
.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | name of the table. The name should be specified without the table prefix. This means that if you have in your database a prefix like mage_ and real table name mage_sales_order , you need to enter here just sales_order |
required | none |
group | name of a group, under which this table appears in the Report Builder. Default values: Sales , Products , Customers , Categories , Other . |
optional | Other |
label | the label of a table that is used in identifying a table. | optional | the value of the name attribute |
This element must be used for registering EAV tables so the extension will be able to retrieve data from corresponding EAV entities including their attributes.
This element SHOULD NOT be used for native EAV tables like catalog_product_entity
, catalog_category_entity
, customer_entity
, etc as these EAV entities are already registered in the extension.
Allowed child elements: <pk />
, <fk />
, <column />
.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | name of the table. The name should be specified without the table prefix. This means that if you have in your database a prefix like mage_ and real table name mage_sales_order , you need to enter here just sales_order |
required | none |
group | name of a group, under which this table appears in the Report Builder. Default values: Sales , Products , Customers , Categories , Other . |
optional | Other |
label | the label of a table that is used in identifying a table. | optional | the value of the name attribute |
type | the type code of the EAV entity. The code can be found in the entity_type_code column in the eav_entity_type table |
required | none |
The primary key of the table. This element is optional and SHOULD NOT be used on native tables.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | the name of the primary key column | required | none |
label | the labels for the column | optional | the value of the name attribute |
The foreign key is in the table. This element is optional and SHOULD NOT be used on native tables.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | the name of the foreign key column | required | none |
label | the labels for the column | optional | the value of the name attribute |
table | the relation table name without prefix | required | none |
This element is responsible for defining the column. This element is mostly used for synthetic columns with custom calculations.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | the name of the primary key column | required | none |
label | the labels for the column | optional | the value of the name attribute |
type | data type of the column's value. The type defines how the value of the column will be displayed and possible aggregations for the column. The extension will automatically add columns with aggregations to the Column Chooser. Supported types: money , country , date , qty , number , select , percent , store , html . More information about data types you can check here |
optional | html |
fields | comma-separated list of fields, which will be used in calculations | optional | if omitted the value from the name field will be used |
expr | this attribute contains MySQL expression to calculate field value. You can use placeholders, where %1 corresponds to the first field in the previous attribute, %2 - to the second, and so on. |
optional | %1 |
options | non-mandatory attribute where the data type select or country is used. Here you need to enter the full name or the class that implements the method toOptionArray for this column. |
optional | none |
tables | comma-separated list of table names (without prefix) for the ability to include columns from other tables inside the expr field | optional | none |
Type | Description | Aggregators |
---|---|---|
html | Simple string, Output values as it is | JOIN |
number | Number rounded to 2 decimal points | SUM , AVG |
qty | Integer value, mostly used for ID fields | COUNT |
percent | Value formatted as a percentage with % symbol, rounded to 2 decimal points |
AVG |
money | Currency format, displays numbers with currency symbol, rounded to 2 decimal points. If the report is filtered by one particular store the value will be displayed in the default currency for that store. Otherwise, the default store currency will be used | SUM , AVG |
date | Date format, Depending on the aggregation type the output may vary | HOUR , DAY , DAY OF WEEK , MONTH , QUARTER , YEAR |
select | The type for the field with predefined variations for values. With this type, the options attribute SHOULD be used in the column element |
JOIN |
country | Similar to the select type. If the value of the column is in the ISO 3166-1 alpha-2 format then class Mirasvit\Report\Config\Source\Directory\Country can be used as the value of the options attribute in the column element |
JOIN |
store | Similar to the select type but store labels will be retrieved by the extension so the options attribute SHOULD NOT be used along with this data type |
none |
The module should determine how to link different tables to build reports from multiple tables.
The connection between two or more tables is called a table relationship.
The < relation />
element is responsible for defining relations between tables.
Required child elements: <leftTable />
, <rightTable />
, <condition />
.
Attributes:
Attribute | Description | Required | Default |
---|---|---|---|
name | the name of the relation. the name can be any string but it is recommended to use the following format: leftTable-rightTable |
required | none |
type | the type of the relation between tables. Possible values: 11 - one to one; 1n - one to many. |
required | none |
This element is responsible for defining tables in the relation in the next format: <leftTable>sales_order_item</leftTable>
.
The table name should be specified without the table prefix. These elements don't have attributes.
This element is responsible for defining JOIN conditions between leftTable
and rightTable
using MySQL syntax.
You can use placeholders %1
and %2
where %1
is a placeholder for the letTable
and %2
- for the rightTable
A synthetic field that calculates the Gross Profit on the fly based on the actual invoiced orders.
<config>
<table name="sales_order" group="Sales" label="Orders">
<column name="custom_gross_profit"
label="Custom Gross Profit"
fields="base_subtotal_invoiced,base_total_invoiced_cost,base_total_refunded,base_to_global_rate"
type="money"
expr="(%1 - IFNULL(%2, 0) - IFNULL(%3, 0)) * %4" />
</table>
</config>
A synthetic field that calculates the Total (row total) for items in the cart.
This config is a part of the already defined config for the table qoute_item
and is given here only as an example.
<config>
<table name="quote_item" label="Quote Items" group="Sales">
<column name="row_total"
label="Total"
fields="base_row_total"
type="money"
expr="%1 * IF(quote.base_to_global_rate > 0, quote.base_to_global_rate, 1)"
tables="quote"/>
</table>
</config>
The example of building a relationship between sales_order and sales_order_item tables.
<config>
<relation name="sales_order-sales_order_item" type="1n">
<leftTable>sales_order_item</leftTable>
<rightTable>sales_order</rightTable>
<condition>%2.entity_id=%1.order_id AND %1.parent_item_id IS NULL</condition>
</relation>
</config>
The config with relations and synthetic column to display the shipment date for each item in the order even if items from the order were shipped separately.
At first, the sales_shipment_item
table needs to be registered in the extension.
Then necessary relations are adjusted to properly connect items in the cart with shipment tables. After the Shipment Date column is defined in the sales_shipment
table (to give a self-explanatory label for the column, this part is optional).
<config>
<table name="sales_shipment_item" group="Sales" label="Shipment Item">
<pk name="entity_id"/>
<column name="parent_id" label="Shipment Id"/>
<column name="order_item_id" label="Order Item Id"/>
</table>
<relation name="sales_order_item-sales_shipment_item" type="11">
<leftTable>sales_order_item</leftTable>
<rightTable>sales_shipment_item</rightTable>
<condition>%1.item_id=%2.order_item_id</condition>
</relation>
<relation name="sales_shipment-sales_shipment_item" type="11">
<leftTable>sales_shipment</leftTable>
<rightTable>sales_shipment_item</rightTable>
<condition>%1.entity_id=%2.parent_id</condition>
</relation>
<table name="sales_shipment" group="Sales" label="Shipment">
<column name="shipped_at" label="Shipment Date" fields="created_at" type="date"/>
</table>
</config>
This config defines the EAV entity table and automatically adds columns for all attributes related to this entity.
This example includes the primary key field, the foreign key to connect customer_entity
table with customer_address_entity
table (in this case, another EAV entity), and the column
of the type select
for Customer Group.
This config is already defined in the extension and given here only as an example.
<config>
<eavTable name="customer_entity" label="Customers" group="Customers" type="customer">
<pk name="entity_id" label="Customer ID"/>
<fk name="default_billing" table="customer_address_entity"/>
<column name="email" label="Email"/>
<column name="group_id"
label="Group"
type="select"
options="Mirasvit\Report\Config\Source\Customer\Group"/>
</eavTable>
</config>
This config creates a column that displays active product special prices for the current date. This config can help build the report that displays all products with active special prices.
<config>
<table name="catalog_product_entity">
<column name="active_special_price"
label="Active Special Price"
fields="special_price,special_from_date,special_to_date"
type="money"
expr="IF(DATE(IFNULL(%2, 0)) < DATE(NOW()) AND DATE(IFNULL(%3, NOW())) >= DATE(NOW()), IFNULL(%1, 0), 0)" />
</table>
</config>
The Advanced Reports extension offers the convenience of accessing report data without the need to log into the admin panel.
Get real-time data that is always up-to-date, share valuable stock information with your vendors, or import report data into Google Sheets using the direct link. Whenever you visit the link, the extension will provide you with the most recent report data.
Once the report is configured, click the Share button to open the configuration popup for Quick Access and Sharing. Ensure that you have saved the report, as the extension generates reports, accessible by quick links, based on the stored report's settings (state).
Choose the desired report format and either copy the link or visit it using the appropriate buttons. Alternatively, you can copy and insert the ready-to-use code into Google Sheets.
If any adjustments need to be made to the report after sharing the direct link, simply modify and save it. The link to the report will remain the same, ensuring that anyone with access to the link will receive the updated report.
To prevent unexpected changes to reports, control who can edit and share reports by utilizing the User Permissions settings.
The Advanced Reports extension provides the ability to configure Access Restrictions for admin users using Magento ACL.
Access to each report created in the extension can be restricted separately, even for custom reports.
You can also define who will be able to edit and share reports as well as restrict access to Config Builder to avoid unexpected reports behavior due to changes in custom configs.
All that can be adjusted in System -> Permissions -> User Roles under the Role Resources tab.
The Advanced Reports extension provides you with the ability to create custom dashboards to display almost any metrics from your store.
Create multiple dashboards with different widgets to quickly analyze your store activity like sales, customer activities, marketing efficiency, etc.
Create as many boards as you want and add as many widgets as you'd like to each board.
Dashboards can be private (only the user that created the board will be able to see it) or public (all admin users will be able to access them). You can also enable the quick access to dashboards so you can access them without logging into the admin panel of your store.
The interface of each dashboard contains 2 main sections: 1 Toolbar - the section where all control elements are placed. In the view mode the extension has the following control elements:
To edit the current board or create a new one press the Customize button in the toolbar. The board will be switched to the Configure mode.
After switching the board to the Configure mode the additional control elements in the Toolbar will appear:
Also in the Configure mode each widget can be adjusted. More information about adjusting widgets is described in the Widgets Settings section
To create a new board open the Menu in the toolbar and click on the Add New Board option. After that, the popup will appear when you can set the main board information:
These settings can be changed later by clicking the Edit Board button in the Toolbar.
After creating the board you can proceed with adding widgets to that board.
To add a widget into the board press the Add New Widget button. The extension will show a pop-up where you'll be able to choose one of the widgets from the extension's widgets library or create an empty widget and configure it from scratch.
After adding a new widget you can adjust it even if the widget is added from the widgets library.
To change the place where the widget should be placed press on the icon in the right top corner of the widget, drag the widget and drop it in the place instead of the board field where you'd like for this widget to be placed in.
To adjust the size of the widget press on the bottom right corner of the widget and drag the cursor to change the size of the widget.
To configure the widget press the gear icon in the right top corner of the widget. The Widget Editor will appear.
The Widget Editor has 2 sections - Widget Settings to configure the widget and Preview to check how the data in the widget will be displayed before saving the widget.
the Widget Settings section has the following inner sections:
After configuring the widget press the Apply button to apply the widget settings' changes.
After adding and configuring all widgets to the board press the Save Board button in the Toolbar and click the Customize button to exit the Configure mode.
Get quick access to the board without necessity to log into the admin panel by enabling sharing the dashboard.
To enable sharing dashboard click the Share button in the toolbar. The pop-up will appear where you can enable sharing the dashboard.
After sharing for the dashboard is enabled the pop-up will show the quick access link and QR code by which you can access the current dashboard on any device.
Share the link to the dashboard or QR code with your colleagues so they'll be able to access the dashboard and see all the metrics in it at any time.
The Advanced Reports extension provides you with the ability to create custom dashboards to display almost any metrics from your store.
Create multiple dashboards with different widgets to quickly analyze your store activity like sales, customer activities, marketing efficiency, etc.
Create as many boards as you want and add as many widgets as you'd like to each board.
Dashboards can be private (only the user that created the board will be able to see it) or public (all admin users will be able to access them). You can also enable the quick access to dashboards so you can access them without logging into the admin panel of your store.
The interface of each dashboard contains 2 main sections: 1 Toolbar - the section where all control elements are placed. In the view mode the extension has the following control elements:
To edit the current board or create a new one press the Customize button in the toolbar. The board will be switched to the Configure mode.
After switching the board to the Configure mode the additional control elements in the Toolbar will appear:
Also in the Configure mode each widget can be adjusted. More information about adjusting widgets is described in the Widgets Settings section
To create a new board open the Menu in the toolbar and click on the Add New Board option. After that, the popup will appear when you can set the main board information:
These settings can be changed later by clicking the Edit Board button in the Toolbar.
After creating the board you can proceed with adding widgets to that board.
To add a widget into the board press the Add New Widget button. The extension will show a pop-up where you'll be able to choose one of the widgets from the extension's widgets library or create an empty widget and configure it from scratch.
After adding a new widget you can adjust it even if the widget is added from the widgets library.
To change the place where the widget should be placed press on the icon in the right top corner of the widget, drag the widget and drop it in the place instead of the board field where you'd like for this widget to be placed in.
To adjust the size of the widget press on the bottom right corner of the widget and drag the cursor to change the size of the widget.
To configure the widget press the gear icon in the right top corner of the widget. The Widget Editor will appear.
The Widget Editor has 2 sections - Widget Settings to configure the widget and Preview to check how the data in the widget will be displayed before saving the widget.
the Widget Settings section has the following inner sections:
After configuring the widget press the Apply button to apply the widget settings' changes.
After adding and configuring all widgets to the board press the Save Board button in the Toolbar and click the Customize button to exit the Configure mode.
Get quick access to the board without necessity to log into the admin panel by enabling sharing the dashboard.
To enable sharing dashboard click the Share button in the toolbar. The pop-up will appear where you can enable sharing the dashboard.
After sharing for the dashboard is enabled the pop-up will show the quick access link and QR code by which you can access the current dashboard on any device.
Share the link to the dashboard or QR code with your colleagues so they'll be able to access the dashboard and see all the metrics in it at any time.
The Advanced Reports extension provides you with the ability to create custom dashboards to display almost any metrics from your store.
Create multiple dashboards with different widgets to quickly analyze your store activity like sales, customer activities, marketing efficiency, etc.
Create as many boards as you want and add as many widgets as you'd like to each board.
Dashboards can be private (only the user that created the board will be able to see it) or public (all admin users will be able to access them). You can also enable the quick access to dashboards so you can access them without logging into the admin panel of your store.
The interface of each dashboard contains 2 main sections: 1 Toolbar - the section where all control elements are placed. In the view mode the extension has the following control elements:
To edit the current board or create a new one press the Customize button in the toolbar. The board will be switched to the Configure mode.
After switching the board to the Configure mode the additional control elements in the Toolbar will appear:
Also in the Configure mode each widget can be adjusted. More information about adjusting widgets is described in the Widgets Settings section
To create a new board open the Menu in the toolbar and click on the Add New Board option. After that, the popup will appear when you can set the main board information:
These settings can be changed later by clicking the Edit Board button in the Toolbar.
After creating the board you can proceed with adding widgets to that board.
To add a widget into the board press the Add New Widget button. The extension will show a pop-up where you'll be able to choose one of the widgets from the extension's widgets library or create an empty widget and configure it from scratch.
After adding a new widget you can adjust it even if the widget is added from the widgets library.
To change the place where the widget should be placed press on the icon in the right top corner of the widget, drag the widget and drop it in the place instead of the board field where you'd like for this widget to be placed in.
To adjust the size of the widget press on the bottom right corner of the widget and drag the cursor to change the size of the widget.
To configure the widget press the gear icon in the right top corner of the widget. The Widget Editor will appear.
The Widget Editor has 2 sections - Widget Settings to configure the widget and Preview to check how the data in the widget will be displayed before saving the widget.
the Widget Settings section has the following inner sections:
After configuring the widget press the Apply button to apply the widget settings' changes.
After adding and configuring all widgets to the board press the Save Board button in the Toolbar and click the Customize button to exit the Configure mode.
Get quick access to the board without necessity to log into the admin panel by enabling sharing the dashboard.
To enable sharing dashboard click the Share button in the toolbar. The pop-up will appear where you can enable sharing the dashboard.
After sharing for the dashboard is enabled the pop-up will show the quick access link and QR code by which you can access the current dashboard on any device.
Share the link to the dashboard or QR code with your colleagues so they'll be able to access the dashboard and see all the metrics in it at any time.
The Advanced Reports extension provides you with the ability to create custom dashboards to display almost any metrics from your store.
Create multiple dashboards with different widgets to quickly analyze your store activity like sales, customer activities, marketing efficiency, etc.
Create as many boards as you want and add as many widgets as you'd like to each board.
Dashboards can be private (only the user that created the board will be able to see it) or public (all admin users will be able to access them). You can also enable the quick access to dashboards so you can access them without logging into the admin panel of your store.
The interface of each dashboard contains 2 main sections: 1 Toolbar - the section where all control elements are placed. In the view mode the extension has the following control elements:
To edit the current board or create a new one press the Customize button in the toolbar. The board will be switched to the Configure mode.
After switching the board to the Configure mode the additional control elements in the Toolbar will appear:
Also in the Configure mode each widget can be adjusted. More information about adjusting widgets is described in the Widgets Settings section
To create a new board open the Menu in the toolbar and click on the Add New Board option. After that, the popup will appear when you can set the main board information:
These settings can be changed later by clicking the Edit Board button in the Toolbar.
After creating the board you can proceed with adding widgets to that board.
To add a widget into the board press the Add New Widget button. The extension will show a pop-up where you'll be able to choose one of the widgets from the extension's widgets library or create an empty widget and configure it from scratch.
After adding a new widget you can adjust it even if the widget is added from the widgets library.
To change the place where the widget should be placed press on the icon in the right top corner of the widget, drag the widget and drop it in the place instead of the board field where you'd like for this widget to be placed in.
To adjust the size of the widget press on the bottom right corner of the widget and drag the cursor to change the size of the widget.
To configure the widget press the gear icon in the right top corner of the widget. The Widget Editor will appear.
The Widget Editor has 2 sections - Widget Settings to configure the widget and Preview to check how the data in the widget will be displayed before saving the widget.
the Widget Settings section has the following inner sections:
After configuring the widget press the Apply button to apply the widget settings' changes.
After adding and configuring all widgets to the board press the Save Board button in the Toolbar and click the Customize button to exit the Configure mode.
Get quick access to the board without necessity to log into the admin panel by enabling sharing the dashboard.
To enable sharing dashboard click the Share button in the toolbar. The pop-up will appear where you can enable sharing the dashboard.
After sharing for the dashboard is enabled the pop-up will show the quick access link and QR code by which you can access the current dashboard on any device.
Share the link to the dashboard or QR code with your colleagues so they'll be able to access the dashboard and see all the metrics in it at any time.
The Advanced Reports extension provides you with the ability to create custom dashboards to display almost any metrics from your store.
Create multiple dashboards with different widgets to quickly analyze your store activity like sales, customer activities, marketing efficiency, etc.
Create as many boards as you want and add as many widgets as you'd like to each board.
Dashboards can be private (only the user that created the board will be able to see it) or public (all admin users will be able to access them). You can also enable the quick access to dashboards so you can access them without logging into the admin panel of your store.
The interface of each dashboard contains 2 main sections: 1 Toolbar - the section where all control elements are placed. In the view mode the extension has the following control elements:
To edit the current board or create a new one press the Customize button in the toolbar. The board will be switched to the Configure mode.
After switching the board to the Configure mode the additional control elements in the Toolbar will appear:
Also in the Configure mode each widget can be adjusted. More information about adjusting widgets is described in the Widgets Settings section
To create a new board open the Menu in the toolbar and click on the Add New Board option. After that, the popup will appear when you can set the main board information:
These settings can be changed later by clicking the Edit Board button in the Toolbar.
After creating the board you can proceed with adding widgets to that board.
To add a widget into the board press the Add New Widget button. The extension will show a pop-up where you'll be able to choose one of the widgets from the extension's widgets library or create an empty widget and configure it from scratch.
After adding a new widget you can adjust it even if the widget is added from the widgets library.
To change the place where the widget should be placed press on the icon in the right top corner of the widget, drag the widget and drop it in the place instead of the board field where you'd like for this widget to be placed in.
To adjust the size of the widget press on the bottom right corner of the widget and drag the cursor to change the size of the widget.
To configure the widget press the gear icon in the right top corner of the widget. The Widget Editor will appear.
The Widget Editor has 2 sections - Widget Settings to configure the widget and Preview to check how the data in the widget will be displayed before saving the widget.
the Widget Settings section has the following inner sections:
After configuring the widget press the Apply button to apply the widget settings' changes.
After adding and configuring all widgets to the board press the Save Board button in the Toolbar and click the Customize button to exit the Configure mode.
Get quick access to the board without necessity to log into the admin panel by enabling sharing the dashboard.
To enable sharing dashboard click the Share button in the toolbar. The pop-up will appear where you can enable sharing the dashboard.
After sharing for the dashboard is enabled the pop-up will show the quick access link and QR code by which you can access the current dashboard on any device.
Share the link to the dashboard or QR code with your colleagues so they'll be able to access the dashboard and see all the metrics in it at any time.
Our Advanced Reports extension allows you to create rich reports and send them via email as annual documents.
You can create such an email-based report from Reports -> Advanced Reports -> Email Notifications.
Jump to Reports -> Advanced Reports -> Email Notifications and press theAdd New Email button.
You will be led to the Email Report creation page, which is divided into two subsections:
General information contains basic information about the sending of Email Report:
Schedule - text-based schedule for sending messages. It uses converted Cron notation.
A useful manual on it can be found here.
Enter Text: 23:59 every day
The real schedule is behind it: 59 23 * * *
Body contains one or more rows, each containing a block with extracted and processed data about your store's work.
Each row has the following parameters:
The body can contain any number of Reports or Dashboard blocks. Therefore, you can automate your reports in a single email.
Usage: php -f bin/magento [options]
mirasvit:report:export [options]
- export report.
The extension will generate a file with the report under the [root_store_path]/var/export
folder.
The name of the file with the report will have the following format: report_[identifier]_[interval]_[export-date]_[export-time].[type]
.
Main options:
--identifier order_plain
- export report with the identifier order_plain
. This option is required.--type csv
- export the report as a CSV file. The allowed file types are - csv, xml. This option is required.--interval last30Days
- export the report for the last 30 days. This parameter is optional. If omitted, the lifetime report will be generated. With the custom
interval code, you can specify the custom interval for a report using additional options:
--from
- start date of the report. If omitted, the extension will use the earliest date.--to
- end date of the report. If omitted, the extension will use current date.Values for both options should be in the next format - YYYY-MM-dd
(for example, 2020-02-10). If both options are omitted, the lifetime report will be generated.
--report-list
- the list of all available reports (identifier - report name).--interval-list
- the list of all available date intervals (code - description).This section describes the most common problems that customers report and how they can be resolved:
After installing the module, the Advanced Dashboard page will become a default startup page at the admin panel area.
Solution:
You need to change the startup page in the admin panel settings.
For this, navigate to the Stores > Settings > Configuration > Advanced > Admin and change the startup page.
For more information, please refer to the official Magento documentation.
The error No valid keys may appear in the logs or the cron_schedule table as a message for the job_code reports_postcode_update.
Our module, Mirasvit Reports, uses the Google Maps API to download detailed information about the postcodes specified in the orders, so as to make it possible to view the "Sales by Geo-data" report.
This process is executed once each hour and only by cron (in the background).
To access the Google Maps API, we provide keys with the extension. The keys have a daily quote, and once the quote has expired, our module shows this message. This ensures that it does not make an error, but simply reports that today's quote for the keys has expired and will be restored tomorrow.
So you can ignore this error.
The columns' titles are created dynamically, based on the name of the table's field in your database. To translate them, you need to use the column name:
"Orders","Orders"
Some of the names do not contain the "Total" or "Average" keywords, so you should translate them without "Total" or "Average" keywords (columns with aggregator sum and avg correspondingly).
To translate "Total" and "Average" keywords, you can use the following strings:
"Average %1", "Average %1"
"Total %1", "Total %1"
In some cases, a row showing a particular country's state (province or other regional district) is displayed in a report grid. However, the corresponding part of the map is not highlighted.
Solution:
In its documentation, Google states that a region code should be written in uppercase ISO-3166-2 compliant format. For example, for Germany, to highlight the state, we can use either its Subdivision Name (Bayern) or a corresponding Code (DE-BY).
For states, our module uses the subdivision names. However, the practice shows that not all correctly formed subdivision names are always visible on a map. If that is true to you, you need to use the appropriate Code instead.
To change the subdivision name to code, you can use the Magento translation mechanism. You can place the string below to your theme's translation file (in admin panel):
"Bayern", "DE-BY"
Then clean the translation cache php bin/magento cache:clean translate
and refresh it.
To upgrade the extension, take the following steps:
composer require mirasvit/module-reports:* --update-with-dependencies
composer update mirasvit/*
command. It will update all Mirasvit modules installed in your store. Update the extension:
php -f bin/magento setup:upgrade
Clean the cache
php -f bin/magento cache:clean
rm -rf pub/static/*
rm -rf var/view_preprocessed/*
php -f bin/magento setup:static-content:deploy
To temporarily disable the extension, please take the following steps:
php -f bin/magento module:disable Mirasvit_Report Mirasvit_Reports Mirasvit_Dashboard
php -f bin/magento module:disable Mirasvit_Reports Mirasvit_Dashboard
To uninstall the extension, please take the following steps:
composer remove mirasvit/module-reports
(2024-09-27)
(2024-08-05)
(2024-07-29)
(2024-06-12)
(2024-05-29)
(2024-04-09)
(2024-03-01)
(2024-01-08)
(2023-12-04)
(2023-11-27)
(2023-09-28)
(2023-07-12)
(2023-02-10)
(2023-02-08)
(2023-01-24)
(2022-12-28)
(2022-11-24)
(2022-09-02)
(2022-09-02)
(2022-06-22)
(2022-06-20)
(2022-06-13)
(2022-05-10)
(2022-01-26)
(2021-01-23)
(2020-10-23)
(2020-10-15)
(2020-10-07)
(2020-08-13)
Magento 2.4.0 compatibility
(2020-07-29)
(2020-05-28)
(2020-04-06)
(2020-03-03)
(2019-04-04)
(2019-03-01)
(2019-01-25)
(2018-12-20)
(2018-11-29)
(2018-10-26)
(2018-10-12)
(2018-10-02)
(2018-09-28)
(2018-09-17)
(2018-09-04)
(2018-08-13)
(2018-08-10)
(2018-08-03)
(2018-07-27)
(2018-07-24)
(2018-07-19)
(2018-07-13)
(2018-07-02)
(2018-06-21)
(2018-06-19)
(2018-06-19)
(2018-06-06)
(2018-06-04)
(2018-04-25)
(2018-04-17)
(2018-04-17)
(2018-04-05)
(2018-02-16)
(2018-02-09)
(2017-12-07)
(2017-12-07)
(2017-12-06)
(2017-12-04)
(2017-12-04)
(2017-11-13)
(2017-10-26)
(2017-10-24)
(2017-10-17)
(2017-10-17)
(2017-10-17)
(2017-10-02)
(2017-09-27)
(2017-09-18)
(2017-08-22)
(2017-08-07)
(2017-08-02)
(2017-08-02)
(2017-08-02)
(2017-08-01)
(2017-07-11)
(2017-07-11)
(2017-07-11)
(2017-06-27)
(2017-06-21)
(2017-06-15)
(2017-06-08)
(2017-06-07)
(2017-05-31)
(2017-05-30)
(2017-05-30)
(2017-05-29)
(2017-05-17)
(2017-05-04)
(2017-02-20)
(2017-01-09)
(2016-12-23)
(2016-12-22)
(2016-12-15)
(2016-09-20)
(2016-07-28)
(2016-07-27)
(2016-07-01)
(2016-06-24)
(2016-05-31)
(2016-05-27)
(2016-05-25)
(2016-05-19)
(2016-04-11)
(2016-02-29)
(2016-02-02)