Menu Administrators, POS Specialists, Technical Teams
As you map out items within the Olo menu to an Xpient database, you would map the items and their modifiers to various entity types, which are all described below. For details on mapping, refer to the “Mapping Instructions” section.
“None”: If a product or modifier has no PLU associated with it, then it could be mapped to “None”, whereby no PLU needs to be entered into the “Entity id” field.
Example of item "none" mapping:
For example, on the Olo Menu, there is a French Fries item, and the price of the French Fries depends on whether a customer picks a regular or small portion. In this case, since the base cost is dependent on the portion size;
- The item within the Olo menu would be mapped to “None”
- The size options would be set up as modifiers under the item (within the Olo company menu, but they can exist as items in the POS), and be mapped as “itemmaster” since they are in fact the base products with associated PLUs.
Example of modifier "none" mapping:
For example, on the Olo Menu, Brioche Bun has been added as the default bun choice that comes with a burger. If a customer went with this default option, that choice would not need to be sent down to the store. So in this instance, the Brioche Bun would be mapped to “None”.
When an item or a modifier is mapped to "none", it will not get sent down to the POS. Only items and modifiers that are mapped to an associated PLU will get sent down.
- "itemmaster": A modifier would need to be mapped to an "itemmaster" entity type if it resides under a product that has been mapped to "none". If the modifier is not considered the parent item, then it will not need to be mapped as "itemmaster".
- "itemchild": A modifier that resides under a parent item that has specific child item pricing rules assigned to it would need to be mapped to the "itemchild" entity type.
When mapping to "itemchild", the mapping should follow the following format:
Item ID, Parent ID, Is Category, Qty Min, Qty Max, Qty Cat
For example: 1397,76,1,-2,2,103
This entity does not determine how the item is sent to the POS, but it determines how to pull the special price from the POS. For example, a Medium Drink might be $2.00 on its own, but when added as part of a deal (as an itemchild under a parent item), it costs $1.29.
- "item": A product or modifier that is not an "itemmaster", nor has child item pricing rules assigned to it, will be mapped as an "item". Modifiers (that are not products) will need to have a ",1" after the modifier PLU to show that it is, in fact, a modifier and not a product.
For example, a bag of chips within the side items category would be considered an item, so it would not get the ",1". On the other hand, the "Add Ketchup" option presented with a burger is a modifier, so it would get the ",1" at the end of the item PLU.
- "nesteditem": Any product or modifier that needs to show a tier under the item it is modifying should be mapped as "nesteditem".
A modifier mapped as a "nesteditem" would get a ",1" after the modifier PLU to show that it is, in fact, a modifier and not a product. On the other hand, products mapped to "nesteditem" would not get a ",1".
For example, there is an "Add 100% Beef Patty" option under a Hamburger item within the Olo menu. If we wanted to modify the "Add 100% Beef Patty" option by adding a cooking preference of "Rare", "Medium" etc, those options would be mapped as "nesteditem" to their respective item numbers.
Mapping to “none”
When mapping to "none", the type should always be set to “none” and the entity id field should be left blank. Once the product is mapped to “none”, you can proceed with mapping the modifier choices under the product as appropriate. Click "save" to complete.
Mapping to “itemmaster”
Any item that exists directly under a product that has been mapped to "none" will need to be mapped to the "itemmaster" entity type, and the associated PLU should be added to the entity id field. Click "save" to complete.
Mapping to “itemchild”
Certain modifiers may need to be mapped to the "itemchild" entity type. These are modifiers that have special child item pricing rules defined within the POS. This allows for the correct price to be shown to the customer, based on the child item pricing rules being met.
The following format must be followed when entering itemchild mapping, with each value being separated ONLY by a comma:
Item ID, Parent ID, Is Category, Qty Min, Qty Max, Qty Cat.
For example: 1397,76,1,-2,2,103
Explanation of each entry:
Item ID: The item number of the actual item (Ex. Cheese)
Parent ID: The item number the child item resides under (Ex. Burger)
Is Category: To flag whether the Parent ID is a category or item. 0 = Item, 1 = Category
Qty Min: The minimum amount of times this item must be applied for the rule to be respected (Ex. Customer must select at least 1 cheese option for the rule to apply)
Qty Max: The maximum amount of times this item can be applied for the rule to be respected (Ex. Customer cannot select more than 2 cheese options)
Qty Cat: The category the item resides under, allowing other items to have the rule applied (Ex. Cheese, Sauce, Onion Rings)
In the example above, the 1st modifier item has the rule applied. If 3 modifier items are applied, the rule will not be respected for the 3rd item. If the Burger item has 1 Cheese, 1 Sauce, and 1 Onion Rings item applied, the Onion Rings will not follow the pricing rule. These rules may not align with how they are set up in Menu Admin but will need to match how they were set up within the database.
Mapping to “item”
A product or modifier that does not have child item pricing rules nor being mapped directly under a "none" item will be mapped to the "item" entity type.
Any modifier (Ex. Add Espresso Shot, Ketchup, etc) will need to have ",1" at the end of the PLU.
- Mapping to "nesteditem"
A product or modifier that needs to show a tier under the item it is modifying should be mapped to "nesteditem".
Any modifier (Ex. Add Bacon, Add Mozzarella, etc) will need to have ",1" at the end of the PLU.
Best practices to follow once menu mapping has been completed:
Troubleshooting Xpient Errors
If you are receiving an "item not found" error message, refer to this article.