Hub Catalogue Constraints for POS Partners

This article will help the POS Partners to understand, verify and maintain the menu sanity at the POS end before syncing it to UrbanPiper system.

Written By Ops UrbanPiper (Collaborator)

Updated at June 25th, 2021

This article will help the POS Partners to verify and maintain the menu sanity at the POS end by running through these checklists before syncing it to the UrbanPiper system via Managing Catalogue API. This will help in faster onboarding of the merchants and issue free integration on the catalogue front. The constraints listed in this article are very generic to best accommodate it for almost all the aggregators.

CATEGORIES

  • More than one category shouldn't have the same name/title in the menu. Try keeping the Category names unique.
  • The parent/main category should not be its sub-category. Make sure the mapping between Category and Sub-category are correct.
  • To maintain the sequencing of the Categories or Sub-categories inside the main Category on the aggregator's UI, maintain the unique sort order values.
  • Timing Groups associated with Categories using Category Timing Groups API will need to have timings ending with XX:00 or XX:30.
  • As of now, the Category description is used only in Meraki product (APPs).
  • In the case of Zomato, the Timing Group configured for Monday will be picked for the remaining days of the week configured. Adding days to the Timing Group will only ensure that this Timing Group applies to the added days. The timings, however, will only be picked from what is configured for Monday.
  • If the "Category Location Association" flag is enabled in Quint Dashboard, Categories will have to be associated with the store. Currently, the functionality of association of the Categories to store is not available in Managing Catalogue API, it has to be done manually in Quint Dashboard.
  • Make sure you pass the "translations" information for non-English language for the Categories for onboarding the GCC aggregators such as Talabat, Jahez, Deliveroo, etc. 
  • Pass only those Categories or Subcategories that have at least one online selling items associated with it.
  • Category or Sub-category POS codes/IDs must be always unique.
  • Make sure you don't specify the names of the platforms/aggregators in the title of the Categories.

ITEMS

  • If there are Sub-categories present for a Category then the Items must be associated with the Sub-categories not directly to the parent Category.
  • An Item can be priced zero only when it has a Variant Option Group (min_selectable at least 1) associated with it and the Options inside that Variant Option Group should have prices.
  • At any given scenario, both at the Item level and Option level, the price shouldn't have zero value.
  • Item price cannot be more than INR 5000/-.
  • More than one Item with the same title/name cannot be associated with the same Category (Note: When the item title is compared for validation, special characters and numbers are ignored. i.e, Chicken 65 and Chicken 555 will be treated as the same item name and the menu push will fail).
  • The max. number of Items associated with a store cannot be more than 400.
  • Keep the "description" for the items to have a better understanding of the item being served to end customers.
  • Keep the "markup_price" with a non-zero value only when you want to show the slashed higher price on aggregators or Meraki. Else, keep it as 0.
  • Pass only those online selling items that have an active Category or Sub-category association and are available for ordering.
  • To maintain the sequencing of the Items within the Category or Sub-category, keep the unique sort order values.
  • If you are marking any item as a "recommended" one, make sure you pass the images under "images" / "img_url" based on the requirement. Keep the item images dimension at least 400*400px and above. The format must be in .png or .jpeg.
  • Make sure you pass the correct food type values for items. Don't pass veg food type for non-vegetarian item. Passing incorrect food type values can lead to issues from the consumer end.
  • Make sure you pass the "translations" information for non-English language for onboarding the GCC aggregators like Talabat, Jahez, Deliveroo, etc.
  • Passing the system generated pre-defined "tag" values are mandatory for items for the Amazon platform. Reach out to your ACM/OM to get the "tag" details.
  • Item POS codes/IDs must be always unique.
  •  For Zomato QVM items, keep "included_platforms" with only "zomato" value. For QVM items, the markup prices should be specified.
  • Make sure you don't specify the names of the platforms/aggregators in the title of the Items.

OPTION GROUPS

  • Variant Option Groups should have more than 1 Option associated.
  • Minimum selectable value cannot be greater than the number of associated options.
  • Minimum selectable value cannot be greater than Maximum selectable.
  • More than one Option with the same name/title cannot be associated with the same Option Group.
  • If the Item price is 0, a Variant Option Group with a price at an option level has to be associated.
  • An Item should not have more than 4 Variant Option Groups associated with it.
  • Various Option Groups associated with an Item cannot have similar names.
  • Maximum Selectable value can be configured with -1 (only non-positive integer value allowed) when you don't restrict the number of options selected within the Option Group.
  • Minimum Selectable and Maximum Selectable values both cannot be 0 within an Option Group.
  • Don't associate the Option Groups to the item if they don't have at least one Option associated with it.
  • To maintain the sequencing of the Option Groups within the items, keep the unique sort order values.
  • If an Option Group is configured as a Nested Option Group, it shouldn't get associated directly with an item. This Nested Option Group must be associated with the first-level Option. This first level Option should be associated with the parent Option Group. This parent Option Group is then associated with an item.
  • Option Group POS codes/IDs must be always unique.
  • Make sure you don't specify the names of the platforms/aggregators in the title of the Option Group.

OPTIONS

  • The same Option can't be shared with more than one Option Group associated with the same Item.
  • The Options price can be zero for add-on or Variant Option Group but the item having this Option Group must hold the price configured at the base level.
  • More than one Option with the same title/name cannot be associated with the same Option Group.
  • Don't pass the Options if they are not associated with any Option Groups.
  • To maintain the sequencing of the Options within the Option Group, keep the unique sort order values.
  • If an Option is configured as a Nested Option then it should get associated to the Nested option Group rather than to the parent Option Group. 
  • Option codes must be always unique.
  • Make sure you don't specify the names of the platforms/aggregators in the title of the Options.

TAXES

  • Always pass taxes title/name as a CSGT and SGST instead of GST.
  • Only tax values allowed to pass under CGST and SGST are 2.5, 6, 9, 14. Any other tax value passed other than these will result in a menu push fail at the aggregators end. 
  • If you are onboarding any businesses outside India, please reach out to your ACM/OM to get to know the supported tax title and value to be passed.
  • If an item is part of one tax slab for a given location, it should not be associated with a different tax slab. 
  • If an MRP item doesn't belong to any tax slabs then no need to pass those items under any tax slabs you create.
  • Always make sure to include all those items that belong to a given location inside a correct tax slab while making the request. Item groups that are associated with the tax slab in our system get updated every time to the data you send in every request.
  • If there are any offers run by the aggregators such as SWIGGY POP MENU where the item sold without applying any taxes then make sure you create a duplicate item for this offer and don't associate any taxes to it.
  • Make sure you don't specify the names of the platforms/aggregators in the title of the Taxes.

CHARGES

  • Always pass charges title/name as a Packaging Charges and Delivery Charges
  • If an item is part of one charge slab for a given location, it should not be associated with a different charge slab. 
  • If an item doesn't belong to any charge slabs then no need to pass those items under any charge slabs you create.
  • Always make sure to include all those items that belong to a given location inside a correct charge slab while making the request. Item groups that are associated with the charge slab in our system get updated every time to the data you send in every request.
  • If there are any offers run by the aggregators such as SWIGGY POP MENU where the item sold without applying any charges then make sure you create a duplicate item for this offer and don't associate any charges to it.
  • A business is having a fixed charge at the order level for all the items, it shouldn't have a fixed charge at the item level again.
  • Multiple order-level charges are not supported.
  • Charges can be configured on an Item or Order Subtotal level. If the Charge is applied on an order Sub-Total level (i.e, "applicable_on": "order.order_subtotal" ), it has to be a Percentage Charge. Charges on an Item level (i.e, "applicable_on": "item.quantity for Fixed and "applicable_on": "item.price" for Percentage).  More than one charge cannot be associated on an order Sub-Total level to each store. If you don't specify any "applicable_on" field for a Fixed charge value, the charges will be applied on the order level.
  • Make sure you don't specify the names of the platforms/aggregators in the title of the Charges.

If you are using Flush Operations, make sure you understand the significance and use-cases completely beforehand. Read Ordering Platform - Special Constraints article to know the platform-wise hub constraints. 

If you have any questions about any of these pointers, please feel free to drop an email to [email protected] Cc'ed [email protected].




Was this article helpful?