1. IMPORT PRODUCTS
2. UPDATE PRODUCTS
3. CONTAINERS
4. CONTAINER PRODUCTS
5. SELLING FORMATS
6. COMBOS
7. ADD INVENTORY
8. SET/MAKE INVENTORY
9. MOVE INVENTORY
10. IMPORT VENDORS
11. VENDOR PRODUCTS
12. IMPORT CUSTOMERS
13. GIFT CARDS
14. PRICES
15. PRICES IN PRODUCTS WITH SELLING FORMATS
16. EMPLOYEES


With Revo XEF, you can import CSV files separated by ;. The file's structure must have the first row as a header with field names exactly as described below.

To access the import screen, one must manually enter the URL since it is hidden by default: https://revoxef.works/tools/import

You can download a template with all available fields for export. Choose the desired template from the drop-down list and click on Template. From the template, the two initial rows serving as explanation should be removed, and a single header should be created, comprising the mandatory fields followed by any optional fields you wish to import.




1. IMPORTING PRODUCTS (products):

Option to import and configure products via a CSV file.


Mandatory Fields:

These fields are essential for creating new products through import. Without them, an error will occur.

  • category_id: The category ID. Before conducting an import, it's necessary to manually create the structure in the back-office, including groups and categories. By clicking on the link, you can view information on creating groups and categories.

How to find the category ID? Once the essential product structure is created, we need the category IDs to introduce the products during import. You can find this ID by simply hovering the mouse cursor over the category. The URL that appears shows the ID. As shown in the following image, the ID for the "coffee" category is 12.



  • name: The product name (minimum of 3 characters).

Optional Fields:

  • price: Price using decimals. Example: 10.20

  • photo: Photo file name. Example: potato.jpg. After import, contact the support team to upload the photo folder.

  • order: Display order within the category. By default, if not specified, the order is derived based on the way products are added to the import list. To specify the order, use numbers: 1, 2, 3, 4, 5, etc.

  • active: 0 not active, 1 active. If this field isn’t entered, all products will be activated by default.

  • info: Product description, including necessary information such as ingredients, allergens, etc.

  • type: Product type: 0 Product - 1 Menu - 2 Container Product - 3 Entry - 4 Sales format product - 5 Gift card - 6 Management-only product - 7 Kit

  • hasInventory: 0 not using inventory control, 1 activated inventory control.

  • usesWeight: 0 doesn’t use weight, 1 uses weight.

  • tax_id: Default tax selection for the product. The ID can be found by hovering over the icon of each of the taxes, similar to the process used for categories.

  • printer_id: Default printer selection for the product. The ID can be found by hovering over the icon of each printer, following a similar approach as used for categories.

  • printer_group_id: Similarly to printers, it’s possible to indicate the default printer group for the products. Depending on the establishment configuration, it might be useful to combine a printer with a group of printers or just add a group of printers.

    Note: It's important to emphasize that configuring the printer or printer group directly for products instead of manually in the category or group could lead to future configuration issues. In this case, changes would need to be made product by product, either manually or by importing a new CSV file, whereas if the configuration is in the category or group, it can be modified with just a few clicks.

  • modifier_group_id: The modifier group can be assigned directly to the products. As seen in the previous fields, the ID can be found by hovering over the icon of each of the modifier groups.

  • modifier_category_id: Modifiers can also be assigned to the products. Again, by using the icon next to the modifier.

    Note: Similar to printers and printer groups, with modifiers and modifier groups, it's necessary to consider in advance whether to configure them manually on the category or the product. For instance, when you want to stop using a modifier or a modifier group, if it's assigned to each of the products, it must be done one by one, whereas if it's assigned to a category, it's as simple as removing it from the category and saving.

  • isMenu: 0 not a menu, 1 is a menu-type product.

  • shouldAppearInMenuList: With REVO, to introduce a product in a menu, an option in the product settings must be activated: Show in Menu List. Therefore, this option can also be imported. 0 not activated, 1 activated.

  • super_group_id: Additionally, the general group can be assigned to the product. As seen in the previous fields, the ID can be checked by hovering over the icon of each of the general groups.

  • isOpen: 0 not an open product, 1 is an open product. An open product means being able to modify the name and price in the app.

    Note: It's not recommended to activate this option for all products. Typically, it's common to create a 'miscellaneous' product with this option activated to address cases where the client requests something exceptional and the product isn’t created. If it's a product requested regularly, it's recommended to create it and not use 'miscellaneous'.

  • nameKitchen: You can specify a different name for the preparation tickets. This way, long names won't appear in the kitchen. For example: A product named "Beef Carpaccio with extra virgin olive oil and foie." In this case, it's recommended to input a different name for the preparation tickets, which could be "Carpaccio." Similar to the name, it should also contain at least 3 characters.

  • costPrice: Cost price using decimals. Example: 8.2

  • displayInventory: 0 off, 1 enables the option to show the product's stock in the app.

  • allergies: Allergens can be indicated for each of the products. There are 13 types of allergens.

  • dish_order_id: Default plate order for the product, leave it empty if not needed. The ID can be checked by hovering over the icon of each of the dish orders, similar to the process seen earlier with categories.

  • barcode: Barcode.

  • unit_id: Sales unit ID in use. The ID can be checked by hovering over the icon of each of the units, similar to the process seen earlier with categories.

  • extra_id: If the product is linked with Nielsen, you can specify the code here.

  • useAverageCostPrice: 0 off, 1 activated. Activate this option if you want REVO to calculate the average cost price of this product if you use the purchasing module.

  • cookDuration: If you use product elaboration time with the KDS, indicate the total elaboration time in seconds.

  • buttonName: If you want this product to display a different name in the app.

  • minQuantity: Select the minimum quantity to add this product. If set to 0, no limit will be established.

  • extra_attributes: Attributes can be indicated for each of the products. There are 37 types of attributes.

IMPORTANT: The names of the fields to be imported in the header must be exactly identical to those written here. They should not contain initial capital letters, spaces, or the ":" symbol used in this article.

Correct: category_id

Incorrect: Category_id / CATEGORY_ID / category id / -category_id:


PRODUCT IMPORT EXAMPLE:

Having a base file is a bit complicated when importing products, as each establishment is entirely different from the rest, and the import method varies significantly. Nonetheless, this could be a good example:

EXAMPLE:
category_id name price hasInventory unit_id type
10 Expresso 1.30 1 2 1
15 Coca-Cola 1.80 1 2 1
17 Red Wine 0.00 1 7 4
18 White Wine 0.00 1 7 4
19 White Rum 0.00 1 4 4
24 Green Salad 7.30 0 2 1
26 Cheese Fondue 10.80 0 2 1
27 Hummus 8.50 0 2 1
40 Lettuce Bag 0.00 1 5 6
40 Kg Tomatoes 0.00 1 5 6
25 Daily Menu 12.50 0 1 1

2. PRODUCT UPDATE (products update):

Option to update or introduce information into existing products via a CSV file.

In this case, since the product ID is one of the mandatory fields, it is recommended to start via the product list in REVO. To do this, click on the list and export the CSV file. This way, you will already have the product IDs. The rest of the fields can be deleted and the ones we need can be added.



Mandatory Fields:

These fields are essential for creating new products via import. Without them, an error will occur.

  • ID: Product ID. This ID is created when importing for the first time or creating the product manually in the back office.

Optional Fields:

All the other fields we have seen previously in products.


UPDATE PRODUCT EXAMPLE:

Let's see an example where, after downloading the CSV file from the previously imported product list, we already have the ID and want to add information, such as the kitchen ticket name, cost price, and whether the product type is a menu.

EXAMPLE:
ID nameKitchen costprice isMenu
100 Solo 0.00 0
101 Coca-Cola 0.49 0
102 Red 8.95 0
103 White 7.35 0
104 White Rum 11.00 0
105 Green E. 0.00 0
106 Cheese Fondue 0.00 0
107 Hummus 0.00 0
108 Lettuce Bag 1.50 0
109 Kg Tomatoes 2.35 0
110 Daily Menu 0.00 1

3. CONTAINERS (containers):

Containers are folders where products can be added. REVO uses a three-level configuration and organization system (Groups, Categories, and Products). Containers would be a "fourth level". For example: Water Container where, when clicked, the following products are visible: Water 0.5 L, Water 1 L, and Water 1.5 L.


Mandatory Fields:

  • category_id: The category ID where we want to create the container.

  • name: Container name.


Optional Fields:

  • photo: Photo file name. Example: waters.jpg

CONTAINER EXAMPLE:

EXAMPLE:
category_id name
10 COFFEES
15 WATERS
17 RED WINES
18 WHITE WINES

4. CONTAINER PRODUCTS (container items):

Container products are those that comprise a container. Previously, we have seen how to create the container, and now we need to associate the products with it. In other words, we have to associate the products Water 0.5 L, Water 1 L, and Water 1.5 L with the Water container.


Mandatory Fields:

  • main_item_id: The container's ID.

  • item_id: The product IDs.

    Note: As seen previously, you can obtain both the container and product IDs by selecting, without clicking, the edit icon


Optional Fields:

  • dish_order_id: Default dish order for the product; leave empty if not applicable. The ID can be found by hovering over the edit icon for each of the dish orders. Similar to what we've seen previously with categories.

  • active: 0 inactive, 1 active. If this field is not entered, all products will be activated by default.


CONTAINER PRODUCTS EXAMPLE:

EXAMPLE:
main_item_id item_id
150 140
150 141
150 142

ID 140 represents the product Water 0.5 L, ID 141 represents Water 1 L, and ID 142 represents Water 1.5 L.


5. ITEM SELLING FORMATS (item selling formats):

Option to import products with selling formats.


Optional Fields:

These fields are essential to add products with selling formats via import. Without them, an error will occur.

  • quantity: Amount deducted from stock.

  • price: Amount (price).

    Note: Use "." as the decimal separator.

  • order: Visibility order in both the back-office and the app.

    Note: It is recommended to always use the same order for products with the same selling formats. This significantly improves app usability, as default behavior involves memorizing the order. If products with the same selling format are displayed in a different order, it becomes more challenging to memorize, slowing down the process of adding the product to the order.

  • format_id: Selling format ID. Obtain this without clicking the edit icon from the selling format.

  • item_id: Product ID. Download the list of products to find the ID.

  • combination_group_id: Combined group ID. If a selling format needs to be associated with a combined group, the ID is necessary. For instance, a rum combined with a mixer. To find this ID, select without clicking the edit icon of the combined group.

  • unit_id: Unit to control stock. Select without clicking the edit icon from the units.


EXAMPLE OF IMPORTING PRODUCTS WITH SELLING FORMATS:

EXAMPLE:
item_id format_id price quantity unit_id order combination_group_id
196 3 12 5 7 00 2
197 3 15 5 7 00 2
198 3 14 5 7 00 2
199 3 11 5 7 00 2
200 3 10 5 7 00 2
201 3 16 5 7 00 2
196 4 11 5 7 01 0
197 4 14 5 7 01 0
198 4 13 5 7 01 0
199 4 10 5 7 01 0
200 4 9 5 7 01 0
201 4 15 5 7 01 0
196 5 3 3 7 02 0
197 5 4 3 7 02 0
198 5 4 3 7 02 0
199 5 3 3 7 02 0
200 5 2.50 3 7 02 0
201 5 4.50 3 7 02 0

This example displays six different products with three different selling formats (combined, single, and shot), their prices, quantity deducted from stock, the unit (cl.), visibility order, and finally the associated combined group.


6. COMBINATIONS (combinations):

Option to import products as combinations.


Mandatory Fields:

These fields are essential to add rates to products with selling formats via import. Without them, an error will occur.

  • item_id: Product ID.

  • price: Price for the products when combined with a product with a selling format. Typically, it's 0, as the product with the selling format already has an all-inclusive price. Yet, some premium products may have an extra charge.

    Note: Use "." as the decimal separator.


Optional Fields:

  • order: Visibility order in both the back-office and the app.

EXAMPLE OF IMPORTING COMBINATIONS:

EXAMPLE:
item_id price order
115 0.00 1
116 0.00 2
117 1.00 3
118 2.00 4
119 0.00 5
120 0.00 6
121 1.00 7
122 0.00 8
123 0.00 9

7. INVENTORY ADD:

This option is used to add stock to our products. Typically, it's used to input inventory for our products for the first time.

Mandatory Fields:

  • item_id: The ID of the products.

  • quantity: Quantity to add to the inventory.

  • warehouse_id: The ID of the warehouse.

    Note: As we've seen previously, you can obtain the warehouse ID by selecting it without clicking the edit icon . The ID of the products can be easily obtained by downloading our list of products.


EXAMPLE OF ADDING STOCK:

EXAMPLE:
item_id quantity warehouse_id
100 150 1
102 150 1
103 150 1
100 500 2
102 500 2
103 500 2
110 235 1
111 235 1
112 235 1
118 50 1
304 200 1
305 200 1

Note: In case of multiple warehouses, within the same file, you can repeat the product ID and change the warehouse ID to add stock of the same product to different warehouses.


8. INVENTORY SET:

This option is used to set stock for our products. It's typically used after taking inventory when there's a need to correct the product stock.


Mandatory Fields:

  • item_id: The ID of the products.

  • quantity: Quantity to be set in the inventory.

  • warehouse_id: The ID of the warehouse.

    Note: As we've seen previously, you can obtain the warehouse ID by selecting it without clicking the edit icon . The ID of the products can be easily obtained by downloading our list of products.

  • defaultQuantity: Defined amount of the product that should be in the warehouse.

  • alert: Adding the minimum amount of stock to receive a restocking alert.


EXAMPLE OF INVENTORY SET:

EXAMPLE:
item_id quantity warehouse_id
100 100 1
102 100 1
103 100 1
110 232 1
111 230 1
112 236 1
118 45 1
304 198 1
305 199 1

9. INVENTORY MOVE:

This option is used to move stock of our products from one warehouse to another.


Mandatory Fields:

  • item_id: The ID of the products.

  • quantity: Quantity to add to the inventory.

  • warehouse_id: The ID of the original warehouse.

    Note: As we've seen previously, you can obtain the warehouse ID by selecting it without clicking the edit icon . The ID of the products can be easily obtained by downloading our list of products.

  • to_warehouse_id: The ID of the warehouse where we want to move the stock.


EXAMPLE OF INVENTORY MOVE:

EXAMPLE:
item_id quantity warehouse_id to_warehouse_id
100 100 1 2
102 100 1 2
103 100 1 2
110 100 1 2
111 100 1 2
112 100 1 2
118 30 1 2
304 100 1 2
305 100 1 2

10. IMPORT VENDORS:

Option to import vendors. Very useful when wanting to use the purchasing module and have many vendors.


Mandatory Fields:

These fields are essential to create new vendors via import. Without them, an error will appear.

  • name: Vendor's name (minimum of 3 characters).

  • address: Vendor's address.

  • nif: Vendor's NIF (tax identification number).


Optional Fields:

  • city: Vendor's city.

  • state: Vendor's autonomous community.

  • country: Vendor's country.

  • postalCode: Vendor's postal code.

  • web: Vendor's website.

  • email: Vendor's email.

  • phone: Vendor's phone number.

  • notes: Information field about the vendor.

  • shouldBeNotified: 1 if we want to notify this vendor about changes in their orders, or 0 if we do not want to notify.


EXAMPLE OF IMPORTING VENDORS:

EXAMPLE:
name address nif postalCode city country notes
Vendor 1 Gran Via, 30 A58818501 28010 Madrid Spain Supplier of food products.
Vendor 2 Via Laietana, 222 B54416504 08010 Barcelona Spain Supplier of soft drinks.
Vendor 3 Calle de La Paz, 11 V51218667 46003 Valencia Spain Supplier of cleaning products.
Vendor 4 Sierpes, 45 S16815999 41004 Sevilla Spain Supplier of various liquors.
Vendor 5 Rúa Nova, 111 L53389701 15003 La Coruña Spain Supplier of dairy products.

11. VENDOR ITEMS:

Option to import vendor products. Very useful when wanting to use the purchasing module and have many products associated with vendors.


Mandatory Fields:

These fields are essential to create vendor products via import. Without them, an error will appear.

  • vendor_id: Vendor's ID. You can find the ID by hovering over the edit icon of each of the vendors.

  • item_id: Product's ID.


Optional Fields:

  • reference: If there's any reference code with the vendor, you can indicate it here.

  • pack: Indicate the units corresponding to 1 pack. For example: for 1 pack of Coca-Cola with 24 cans, you would specify 24.

  • costPrice: Cost price using a period for decimals. Example: 8.2

  • unit_id: Sales unit ID used. You can find the ID by hovering over the edit icon of each of the units.

  • tax_id: You can select the default tax for the product. You can find the ID by hovering over the edit icon of each of the taxes.


EXAMPLE OF VENDOR ITEMS:

EXAMPLE:
vendor_id item_id pack costPrice unit_id tax_id
1 100 24 0.25 1 2
1 102 24 0.30 1 2
1 104 24 0.33 1 2
1 105 24 0.22 1 2
1 107 24 0.50 1 2
1 108 24 0.30 1 2

12. IMPORT CUSTOMERS:

Option to import customers. Very useful when wanting to import a large volume of customers.


Mandatory Fields:

These fields are essential to add customers via import. Without them, an error will appear.

  • name: Customer's name (minimum of 3 characters).

  • address: Customer's address.


Optional Fields:

  • city: Customer's city.

  • state: Customer's autonomous community.

  • country: Customer's country.

  • postalCode: Customer's postal code.

  • nif: Customer's NIF (tax identification number).

  • web: Customer's website.

  • email: Customer's email.

  • phone: Customer's phone number.

  • notes: Information field about the customer.

  • extra_id: If they belong to a group of customers, you can add the group's ID here.

  • active: 0 not active, 1 active. If this field isn't entered, all customers will be activated by default.


EXAMPLE OF IMPORTING CUSTOMERS:

EXAMPLE:
name address nif postalCode city country notes
Hugo "Hurley" Reyes Gran Via, 30 A58818501 28010 Madrid Spain Enjoys our special dish very much.
Eleven Via Laietana, 222 B54416504 08010 Barcelona Spain Always reserves table 15.
Maggie Greene Calle de La Paz, 11 V51218667 46003 Valencia Spain Table with a sea view.
John Snow Sierpes, 45 S16815999 41004 Sevilla Spain Always pays at the end of the month.
Darth Vader Rúa Nova, 111 L53389701 15003 La Coruña Spain

13. GIFT CARDS:

Option to import gift cards directly into the back-office. Very useful when importing a large volume.


Mandatory Fields:

These fields are essential to add gift cards via import. Without them, an error will occur.

  • uuid : Unique and identifying code for the gift card. Can contain any text and numbers.

  • total : Gift card balance. Numeric field.


Optional Fields:

  • active : 0 not active, 1 active. If this field is not entered, all products will be activated by default.

  • balance : Remaining balance. Uncommon during import unless a different balance than the total is needed.

  • campaign_id : Campaign ID. One or more gift cards can be associated with a specific campaign. For example, a Christmas campaign. To achieve this, the ID is required, which can be obtained as usual by selecting, without clicking, the edit icon in the campaign.

  • customer_id : Customer ID.


EXAMPLE OF IMPORTING GIFT CARDS:

EXAMPLE :
uuid total campaign_id
00000123456 100 1
00000789100 100 1
TR1234567 50 1
example 50 1
hello I'm a GC 50 2
Pedro González 75 2
Macarena Pérez 75 2

14. PRICE RATES:

Option to import product price rates.


Mandatory Fields:

These fields are essential to add rates via import. Without them, an error will occur.

  • item_id: Product ID. Download the list of products to find the ID.

  • price_id: Rate ID. Select without clicking the edit icon of the rate.

  • price: Amount (price).

    Note: Use "." as the decimal separator.


EXAMPLE OF IMPORTING PRICE RATES:

EXAMPLE :
item_id price_id price
1001 3 10.95
1002 3 8.65
1003 3 7.90
1004 3 10.50
1005 3 11.75
1006 3 5.25
1007 3 3.80

15. PRICE RATES IN PRODUCTS WITH SELLING FORMATS:

Option to import rates in products with selling formats.


Mandatory Fields:

These fields are essential to add rates to products with selling formats via import. Without them, an error will occur.

  • item_format_id: To find a product's item_format_id, click on the sheet, go to the price tab, enter the selling formats and select without clicking the number of the rate for each of the selling formats. See the image.



  • price_id: Rate ID. Select without clicking the edit icon of the rate.

  • price: Amount (price).

    Note: Use "." as the decimal separator.


EXAMPLE OF IMPORTING RATES IN PRODUCTS WITH SELLING FORMATS:

EXAMPLE :
item_format_id price_id price
470 4 9.00
471 4 7.00
472 4 9.00
473 4 8.00
474 4 6.00
475 4 8.00
476 4 10.00
477 4 8.00
478 4 10.00

16. EMPLOYEES:

Option to import rates for products with selling formats.


Mandatory Fields:

These fields are essential to add employees through import. Without them, an error will occur.

  • name: Name of the employee.

  • pin: Numeric PIN for the employee.

  • permission_id: ID of the app privilege for this employee. Select without clicking the edit icon of the app privileges.


Optional Fields:

  • active: 0 not active, 1 active. If this field is not included, all employees will be activated by default.

  • surname: Employee's surname.

  • username: Employee's username.

  • email: Employee's email address.

  • phone: Employee's phone number.

  • notes: Employee's information field.

  • profile_id: Profile ID for this employee. Select without clicking the edit icon of the profile.

  • password: Employee's password.

  • photo: Photo filename. Example: employee.jpg. Once the import is done, you'll need to contact the support team to upload the photo folder.

  • cashier_id: Cashier ID for this employee. Select without clicking the edit icon of the cashier.

  • identifier: If another method is used to identify the employee, such as a magnetic card, QR code, etc., it can be indicated in this field.

  • back_permission_id: Back-office privilege ID for this employee. Select without clicking the edit icon of the back-office privileges.

  • nif: Employee's ID number.


EXAMPLE OF IMPORTING EMPLOYEES:

EXAMPLE:
active name surname email phone nif cashier_id pin permission_id username Back-office permission
1 Fran Marjolaine email73614@gmail.com 803233695 73436604L 2 1111 1 Fran 2
1 Lucía Kailey email32277@gmail.com 465589655 32881921V 1 2222 2 1
1 Catharine Pouros-Hoeger email72270@gmail.com 646528473 1 3333 3 1