With Revo XEF, you can import CSV files separated by ";". The first row must contain the header with the field names exactly as described below.

To access the product import screen, enter the URL manually: https://revoxef.works/tools/import

  1. Import Groups
  2. Import Categories
  3. Import Products
  4. Update Products
  5. Containers
  6. Container Products
  7. Selling Formats
  8. Add Inventory
  9. Set/Take Inventory
  10. Move Inventory
  11. Import Suppliers
  12. Supplier Products
  13. Import Customers
  14. Gift Cards
  15. Reload Gift Cards
  16. Price Rates
  17. Employees
  18. Update Employees
1. IMPORT GROUPS
2. IMPORT CATEGORIES
3. IMPORT PRODUCTS
4. UPDATE PRODUCTS
5. CONTAINERS
6. CONTAINER PRODUCTS
7. SELLING FORMATS
8. ADD INVENTORY
9. SET/TAKE INVENTORY
10. MOVE INVENTORY
11. IMPORT SUPPLIERS
12. SUPPLIER PRODUCTS
13. IMPORT CUSTOMERS
14. GIFT CARDS
15. RELOAD GIFT CARDS
16. PRICE RATES
17. EMPLOYEES
18. UPDATE EMPLOYEES


With Revo XEF, you can import CSV files separated by ";". The first row must contain the header with the field names exactly as described below.

To access the product import screen, enter the URL manually: https://revoxef.works/tools/import


1. IMPORT GROUPS:

To create or update groups in bulk, go to the Back Office under Catalogue -> GROUPS and click the Import button.

The New Importer

With the new importer, your CSV file columns do not need to have specific names. When uploading the file, the system will allow you to Map the fields, linking each column in your file to the corresponding field in REVO.

Available fields for mapping:

  • Id: (For updates only).
  • Active: To define whether the group is active or not.
  • Name * (Required): The main name of the group.
  • Translations (Critical): It is essential to map this field with the group name. If translations are not mapped, the group will be created with the generic name "New Item".
  • Tax: The associated tax.
  • Analytical group: The corresponding analytical group.
  • Printer: The assigned printer.
  • Printer group: The assigned printer group.
  • Status flow: The kitchen status flow.
  • Extra ID: Field for the Extra ID.


2. IMPORT CATEGORIES:

To import categories in bulk within a specific group, go to the Back Office under Catalogue -> GROUPS, enter the group where you want to add the categories and click the Import button.

The New Importer

The process is identical to that of groups, allowing you to upload any CSV and perform column mapping manually.

Available fields for mapping:

  • Id: (For updates only).
  • Active: To define whether the category is active or not.
  • Name * (Required): The name of the category.
  • Group * (Required): The identifier of the group to which the category belongs.
  • Translations (Critical): It is essential to map this field with the category name. If translations are not mapped, the category will be created with the generic name "New Item".
  • Tax: The associated tax.
  • Analytical group: The corresponding analytical group.
  • Printer: The assigned printer.
  • Printer group: The assigned printer group.
  • Status flow: The kitchen status flow.
  • Extra ID: Field for the Extra ID.


3. IMPORT PRODUCTS (products):

Option to import products and configure them via a CSV file.


Required fields:

These fields are essential to create new products through the import. Without them, an error will appear.

  • category_id: Category ID. Before importing, manually create the structure (groups and categories) in the back-office. Click the link to see how to create groups and categories.

How do I find the category ID? Once the product structure has been created, look up the category ID by hovering the mouse cursor over the category. The ID is shown in the URL that appears. In the image, the category ID is 109.




  • name: Product name (minimum 3 characters).


Optional fields:

  • price: Price using a period for decimals. Example: 10.20
  • photo: Photo file name. Example: potato.jpg. After importing, contact support to have them upload the photos folder.
  • order: Display order within the category. If not specified, products will appear in the same order as in the imported list. To specify it, use numbers: 1, 2, 3, 4, 5, etc.
  • active: 0 inactive, 1 active. If not provided, all products will be activated by default.
  • info: Product description. You can include information such as ingredients, etc.
  • type: Product type: 0 Product - 1 Menu - 2 Container Product - 3 Starter - 4 Product with selling format - 5 Gift card - 6 Management-only product - 7 Kit
  • hasInventory: 0 no inventory control, 1 with inventory control.
  • usesWeight: 0 does not use weight, 1 uses weight.
  • tax_id: Select the default tax for the product. Look up the ID by hovering over the icon for each of the taxes.
  • printer_id: Select the default printer for the product. Look up the ID by hovering over the icon for each of the printers.
  • printer_group_id: Specify the default printer group for the products if applicable.

> It is important to note that configuring the printer or printer group directly on the products, rather than on the category or group, can cause future issues when changing the configuration. If configured per product, you will have to change it one by one or import a new CSV file. If the configuration is set at the category or group level, it can be changed in just a few clicks.

  • modifier_group_id: Assigns the modifier group directly to the products. Look up the ID by hovering over the icon for each of the modifier groups.
  • modifier_category_id: Assigns a modifier to the products. Look up the ID by hovering over the icon on the name of the modifier.

> As with printers, if you configure modifiers on the products, you will have to remove them one by one if you no longer want to use them. If you configure them on the category, you only need to remove them from the category and save.

  • isMenu: 0 not a menu, 1 menu-type product.
  • shouldAppearInMenuList: To include a product within a menu, the option "Show in Menu list" must be enabled. This option can also be imported. 0 not enabled, 1 enabled.
  • super_group_id: Also assigns the general group to the product. Look up the ID by hovering over the icon for each of the general groups.
  • isOpen: 0 is not an open product, 1 is an open product. An open product allows you to modify the name and price in the app.

> It is not recommended to enable this option for all products. Typically, a "miscellaneous" product is created with this option enabled for exceptional cases. If it is a product that is ordered regularly, it is recommended to create it properly and not use the "miscellaneous" option.

  • nameKitchen: Specifies a different name for preparation tickets, minimum 3 characters. Example: A product called "Veal carpaccio with extra virgin olive oil and foie gras". Enter a different name for preparation tickets, such as "Carpaccio".
  • costPrice: Cost price using a period for decimals. Example: 8.2
  • displayInventory: 0 not enabled, 1 enables the option to display product stock in the app.
  • allergies: Indicate the allergens for each product. There are 13 types of allergens.
  • dish_order_id: Default dish order for the product, leave empty for none. Look up the ID by hovering over the icon for each of the dish orders.
  • barcode: Barcode.
  • unit_id: ID of the sales unit used. Look up the ID by hovering over the icon for each of the units.
  • extra_id: If you have the product linked to Nielsen, you can specify the code here.
  • useAverageCostPrice: 0 inactive, 1 enabled. Enable this option if you want REVO to calculate the average cost price of this product when using the purchasing module.
  • cookDuration: If you use product preparation time with the KDS, specify the total preparation time in seconds.
  • buttonName: If you want this product to display a different name in the app.
  • minQuantity: Select the minimum quantity required to add this product. If left at 0, no limit will be set.
  • extra_attributes: Indicate the attributes for each product. There are 37 types of attributes.

IMPORTANT: The names of the fields to import in the header must be exactly the same as written here. They must not contain capital letters at the beginning, blank spaces, or the ":" symbol used in this article.

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


EXAMPLE OF IMPORTING PRODUCTS:

Having a base file is a bit tricky when importing products, as each establishment is different and the way of importing changes. Even so, this could be a good example:

EXAMPLE:
category_id name price hasInventory unit_id type
10 Espresso 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 Tomatoes Kg. 0.00 1 5 6
25 Daily Menu 12.50 0 1 1


4. UPDATE PRODUCTS (products update):

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

Since the ID (product ID) is required, it is recommended to start from the REVO product list. To do so, click on the list and export the CSV file. This will give you the product IDs. The remaining fields can be deleted and replaced with the ones you need.



Required fields:

These fields are essential to update products. Without them, an error will appear.

  • id: Product ID. This ID is created when the product is imported for the first time or manually created in the back-office.


Optional fields:

All the fields seen previously in products.


EXAMPLE OF UPDATING PRODUCTS:

Example: after downloading the CSV file from the product list, the columns we did not need were removed and the following were added: print description (kitchen name), cost price and whether the product type is a menu.

EXAMPLE:
id nameKitchen costprice isMenu
100 Espresso 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 G. Salad 0.00 0
106 Ch. Fondue 0.00 0
107 Hummus 0.00 0
108 Lettuce Bag 1.50 0
109 Tomatoes Kg. 2.35 0
110 Daily Menu 0.00 1


5. CONTAINERS (containers):

Containers are folders where you can group products. REVO uses a three-level organisation system (Groups, Categories and Products), and containers would be a "fourth level". For example: a Water Container could contain products such as Water 0.5 L, Water 1 L and Water 1.5 L.


Required fields:

  • category_id: ID of the category where you want to create the container.
  • name: Container name.


Optional fields:

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


EXAMPLE OF CONTAINERS:

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


6. CONTAINER PRODUCTS (container items):

You have learned how to create the container, now associate products to it. For example, add Water 0.5 L, Water 1 L and Water 1.5 L to the Waters container.


Required fields:

  • main_item_id: Container ID.
  • item_id: Product IDs.

> Remember, you can get the container and product IDs by hovering the cursor over the icon.


Optional fields:

  • order: Display order within the container. If not specified, the order of the imported list will be maintained. Use numbers: 1, 2, 3, 4, 5, etc.
  • dish_order_id: Default dish order for the product. Leave empty for none. Look up the ID by hovering the cursor over the icon for each of the dish orders.
  • active: 0 inactive, 1 active. If you do not include this field, all products will be activated by default.


EXAMPLE OF CONTAINER PRODUCTS:

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

EXAMPLE:
main_item_id item_id
15 140
15 141
15 142


7. SELLING FORMATS (item selling formats):

You can import products with selling formats.


Required fields:

  • quantity: Quantity to deduct from stock.
  • price: Price using a period for decimals. Example: 10.20
  • order: Display order in the back-office and in the app. If not specified, the order of the imported list will be maintained. Use numbers: 1, 2, 3, 4, 5, etc.

> It is recommended to use the same order for products with the same selling formats to improve the usability of the app.

  • format_id: Selling format ID. Place the cursor over the of the selling format.
  • item_id: Product ID. Download the list of products to find the ID.
  • combination_group_id: Combination group ID. If you want to associate a combination group with the selling format, you need the ID. For example, a rum cocktail where you will be asked for the mixer. Place the cursor over the in combinations.
  • unit_id: Unit ID for stock control. Place the cursor over the in the units.


EXAMPLE OF IMPORTING PRODUCTS WITH SELLING FORMATS:

Here is an example with 6 different products, with 3 different selling formats (cocktail, straight and shot), their prices, quantity to deduct from stock, the unit (cl.), the visibility order and the associated combination group.

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


8. ADD INVENTORY (inventory add):

This option is used to add stock to your products, especially for the first time.


Required fields:

  • item_id: Product IDs. Download the list of products to find the ID.
  • quantity: Quantity to add to inventory.
  • warehouse_id: Warehouse ID. Place the cursor over the in the warehouses.

> If you have multiple warehouses, you can repeat the product ID in the file and change the warehouse ID to add stock to different warehouses.


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


9. SET/TAKE INVENTORY (inventory set):

Use this option to set the stock of your products, ideal after a stocktake to correct inventory levels.


Required fields:

  • item_id: Product IDs. Download the list of products to find the ID.
  • quantity: Quantity to set in inventory.
  • warehouse_id: Warehouse ID. Place the cursor over the in the warehouses.

> If you have multiple warehouses, you can repeat the product ID in the file and change the warehouse ID to set stock in different warehouses.


Optional fields:

  • defaultQuantity: Default quantity of product in the warehouse.
  • alert: Minimum stock quantity to receive an alert.


EXAMPLE OF SETTING/TAKING INVENTORY:

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


10. MOVE INVENTORY (inventory move):

Use this option to transfer stock between warehouses.


Required fields:

  • item_id: Product IDs. Download the list of products to find the ID.
  • quantity: Quantity to move.
  • warehouse_id: Source warehouse ID. Place the cursor over the in the warehouses.

> If you have multiple warehouses, you can repeat the product ID in the file and change the warehouse ID to move stock between different warehouses.

  • to_warehouse_id: ID of the destination warehouse.


EXAMPLE OF MOVING INVENTORY:

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


11. IMPORT SUPPLIERS (vendors):

Use this option to import suppliers, ideal if you have many and want to use the purchasing module.


Required fields:

  • name: Supplier name (minimum 3 characters).
  • address: Supplier address.
  • nif: Supplier tax ID number.


Optional fields:

  • city: Supplier city.
  • state: Supplier region/state.
  • country: Supplier country.
  • postalCode: Supplier postal code.
  • web: Supplier website.
  • email: Supplier email address.
  • phone: Supplier phone number.
  • notes: Supplier information field.
  • shouldBeNotified: 1 to notify the supplier about changes to their orders, 0 to not notify.


EXAMPLE OF IMPORTING SUPPLIERS:

EXAMPLE:
name address nif postalCode city country notes
Supplier 1 Gran Via, 30 A58818501 28010 Madrid Spain Food products supplier.
Supplier 2 Via Laietana, 222 B54416504 08010 Barcelona Spain Soft drinks supplier.
Supplier 3 Calle de La Paz, 11 V51218667 46003 Valencia Spain Cleaning products supplier.
Supplier 4 Sierpes, 45 S16815999 41004 Seville Spain Various spirits supplier.
Supplier 5 Rúa Nova, 111 L53389701 15003 A Coruña Spain Dairy products supplier.


12. SUPPLIER PRODUCTS (vendors items):

Use this option to import your suppliers' products. It is useful when you have many products associated with them and want to use the purchasing module.


Required fields:

  • vendor_id: Supplier ID. Look up the ID by hovering the cursor over the for each of the suppliers.
  • item_id: Product IDs. Download the list of products to find the ID.


Optional fields:

  • reference: Reference code with the supplier, if you have one.
  • pack: Units per pack. Example: if 1 pack contains 24 cans, enter 24.
  • costPrice: Cost price using a period for decimals. Example: 8.2
  • unit_id: Sales unit ID. Look up the ID by hovering the cursor over the in the units.
  • tax_id: Default product tax ID. Look up the ID by hovering the cursor over the in the taxes.


EXAMPLE OF SUPPLIER PRODUCTS:

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


13. IMPORT CUSTOMERS (customers):

Option to import customers. Ideal for importing many customers at once.


Required fields:

  • name: Customer name (minimum 3 characters).
  • address_country Country (ISO 3166-1 alpha-2 code Example: GB (United Kingdom)).

The address is optional, but if provided, the following fields will be required:

  • address_street_address Customer address.
  • address_postal_code Postal code.
  • address_city City.
  • address_state Region/state.


Optional fields:

  • active: 0 for inactive, 1 for active. If you do not include this field, all customers will be activated by default.
  • last_name: Remove column.
  • nif: Customer tax ID number. (If provided, the address will be required)
  • email: Customer email address.
  • phone: Customer phone number.
  • language: Customer language.
  • photo: Remove column.
  • level: Remove column.
  • nationality: Customer nationality.
  • birth_date: Customer date of birth.
  • gender: Customer gender.
  • allergies: Customer allergies.
  • promotions_accepted: Remove column.
  • web: Customer website.
  • notes: Customer information field.
  • extra_id: If they belong to a customer group, you can add the group ID here.
  • extra_attributes: Remove column.
  • remember_token: Remove column.
  • prevent_deletion: Remove column.
  • address_notes: Customer address notes.


EXAMPLE OF IMPORTING CUSTOMERS:

EXAMPLE:
name address_street_address nif address_postal_code address_city address_state address_country notes
Hugo "Hurley" Reyes Gran Via, 30 A58818501 28010 Madrid Madrid ES Really enjoys our special dish.
Once Via Laietana, 222 B54416504 08010 Barcelona Barcelona ES Always books table 15.
Maggie Greene Calle de La Paz, 11 V51218667 46003 Valencia Valencia ES Table with sea view.
John Snow Sierpes, 45 S16815999 41004 Seville Seville ES Always pays at end of month.
Darth Vader Rúa Nova, 111 L53389701 15003 A Coruña A Coruña ES


14. GIFT CARDS (gift cards):

Use this option to import gift cards into the back-office, ideal for large volumes.


Required fields:

  • uuid: Unique gift card code. Can be text and numbers.
  • total: Card balance. Must be numeric.


Optional fields:

  • active: 0 for inactive, 1 for active. If not included, all cards will be activated by default.
  • balance: Remaining balance. Generally not used unless you want a balance different from the total.
  • campaign_id: Campaign ID. Associate cards with a campaign, such as Christmas. Get the ID by hovering the cursor over the in the campaign.
  • customer_id: Customer ID. Look up the ID by hovering the cursor over the in the customers.


EXAMPLE OF IMPORTING GIFT CARDS:

EXAMPLE:
uuid total campaign_id
00000123456 100 1
00000789100 100 1
TR1234567 50 1
example 50 1
hi i am a gc 50 2
Pedro González 75 2
Macarena Pérez 75 2


15. RELOAD GIFT CARDS (gift cards reload):

Use this option to import gift card reloads into the back-office.


Required fields:

  • uuid: Gift card code.
  • reloadAmount: Amount to load.


EXAMPLE OF RELOADING GIFT CARDS:

EXAMPLE:
uuid reloadAmount
00000123456 100
00000789100 100


16. PRICE RATES (price rates):

To import price rates, go to: https://revoxef.works/thrust/prices/import


Required fields:

  • priceable_id: add the IDs.

* Products: Product ID. Get the ID by hovering the mouse over the of the product.



* Menu products: Rate ID within the menu. Get the ID by hovering the mouse over the 0 in rate.



* Modifiers: Modifier IDs. Get the ID by hovering the mouse over the of the modifier.



* Selling format: Price IDs in selling formats. Get the ID by hovering the mouse over the 0 in prices from the product with selling format.



* Combinations: Rate IDs in combinations. Get the ID by hovering the mouse over the 0 in rates in the products in combinations.



  • table_price_id: Rate ID. Select it without clicking the edit icon of the rate
  • price: Price using a period for decimals. Example: 10.20
  • priceable_type: select from:

* Products: App\Models\Menu\MenuItem

* Menu products: App\Models\Menu\MenuMenuPivot

* Modifiers: App\Models\Menu\Modifier

* Selling format: App\Models\Menu\ItemSellingFormatPivot

* Combinations: App\Models\Menu\Combination


Attach the CSV file and click next. If the headings are correct, they will be mapped automatically. If any does not appear, select it from the dropdown.



EXAMPLE OF IMPORTING PRICE RATES:

EXAMPLE:
priceable_id table_price_id price priceable_type
902 2 4.00 App\Models\Menu\MenuItem
870 2 3.00 App\Models\Menu\MenuMenuPivot
331 2 1.50 App\Models\Menu\Modifier
706 2 18.00 App\Models\Menu\ItemSellingFormatPivot
3 2 1.50 App\Models\Menu\Combination


17. EMPLOYEES (Employees):

Option to import employees. Ideal for importing many employees at once.


Required fields:

  • name: Employee name.
  • pin: Numeric PIN for the employee.
  • permission_id: App permission ID for the employee. Look up the ID by hovering the cursor over the in the app permissions.


Optional fields:

  • active: 0 for inactive, 1 for active. If not included, all employees will be activated by default.
  • surname: Employee surname.
  • username: Employee username.
  • email: Employee email address.
  • phone: Employee phone number.
  • notes: Additional employee information.
  • profile_id: Employee profile ID. Look up the ID by hovering the cursor over the in the profile.
  • password: Employee password.
  • photo: Photo file name. Example: employee.jpg. After importing, contact support to upload the photos.
  • cashier_id: Cashier ID for the employee. Look up the ID by hovering the cursor over the in the cashiers.
  • identifier: Additional method to identify the employee, such as a magnetic card or QR code.
  • back_permission_id: Back-office permission ID for the employee. Look up the ID by hovering the cursor over the in the back-office permissions.
  • nif: Employee ID number.


EXAMPLE OF IMPORTING EMPLOYEES:

EXAMPLE:
active name surname email phone nif cashier_id pin permission_id username back_permission_id
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


18. UPDATE EMPLOYEES (update employees):

Option to update or add information to existing employees via a CSV file.

Since the ID is required, it is recommended to start from the REVO employee list. To do so, go to employees and export the CSV file. This will give you the employee IDs. The remaining fields can be deleted and replaced with the ones you need.



Required fields:

These fields are essential to update employees. Without them, an error will appear.

  • id: Employee ID. This ID is created when the employee is imported for the first time or manually created in the back-office.


Optional fields:

All the fields seen previously in employees.


EXAMPLE OF UPDATING EMPLOYEES:

Example: after downloading the CSV file of employees, the columns we did not need were removed and the following were added: username, password and back-office permission.

EXAMPLE:
id username password back_permission_id
2 maria marIa24! 1
3 pedro pEdro24! 3
6 claudia clauDia24! 3