What a Just Eat partner card and menu document actually carry
A Just Eat partner card is a dense record where every field earns its place. It holds a numeric restaurant id and a slug, the trading name, a street address with city, first line, postcode and coordinates, a rating object with a star value and a review count, a new-partner flag, the drive distance in metres, the next opening time for shop and for delivery, a delivery estimate as an approximate figure with lower and upper bounds, booleans for delivery and collection plus three more for open-now on delivery, collection and pre-order, a temporarily-offline flag, a delivery cost, a minimum delivery value, a display rank, a temporary-boost flag, a logo url, a test-restaurant flag, and arrays of deals, tags and cuisines.
Two money encodings sit side by side, and mixing them ruins a Just Eat price feed. The card prints the delivery cost as a plain decimal, while the separate fee table for the same partner is currently in minor units: a minimum order value of 1499, with bands such as 0 giving 500, 2000 giving 400 and 7000 giving 0, so the fee drops as the basket grows. Deals arrive as a description plus an offer type from a fixed vocabulary: ItemLevelDiscount, Percent, TotalOrder, FreeItem, Bogof, BogofMixMatch, StampCard and Notification.
Open a partner and the menu names itself. Beside a menu version string sits a store record with the trading and legal name, a colophon with legal representative, registered address, chamber of commerce number and VAT number, an allergen phone number, an alcohol licence id, halal and certified-pharmacy flags, a storefront type of Restaurant or Grocery, an energy-units setting, cuisine types with numeric ids and slugs, and opening times per service type and weekday as local from and to strings. The menu proper is categories carrying item ids, items carrying variations, and modifiers hanging off them. A variation has its own id, a size name such as (25cm) Medium or (35cm) Large, a base price, a deal-only flag and an energy line in kilojoules and kilocalories. Modifier groups declare minimum and maximum choices, which separates a required crust choice from an optional topping list, and each option has an addition price and a removal price. To extract Just Eat data cleanly, keep the variation id, the modifier group id and the option id: one dish name repeats across sizes and branches.