bizId = 27; // Get all template links for Big Dean's with item names qLinks = queryExecute(" SELECT tl.ItemID as MenuItemID, mi.Name as MenuName, mi.ParentItemID, tl.TemplateItemID, t.Name as TemplateName, tl.SortOrder FROM lt_ItemID_TemplateItemID tl JOIN Items mi ON mi.ID = tl.ItemID JOIN Items t ON t.ItemID = tl.TemplateItemID WHERE mi.BusinessID = :bizId ORDER BY mi.ParentItemID, mi.Name, tl.SortOrder ", { bizId: bizId }, { datasource: "payfrit" }); links = []; for (row in qLinks) { arrayAppend(links, { "MenuItemID": row.MenuItemID, "MenuName": row.MenuName, "ParentItemID": row.ParentItemID, "TemplateItemID": row.TemplateItemID, "TemplateName": row.TemplateName }); } // Get burgers specifically (parent = 11271) qBurgers = queryExecute(" SELECT ID, Name FROM Items WHERE BusinessID = :bizId AND ParentItemID = 11271 AND IsActive = 1 ORDER BY SortOrder ", { bizId: bizId }, { datasource: "payfrit" }); burgers = []; for (row in qBurgers) { // Get templates for this burger qBurgerTemplates = queryExecute(" SELECT tl.TemplateItemID, t.Name as TemplateName FROM lt_ItemID_TemplateItemID tl JOIN Items t ON t.ItemID = tl.TemplateItemID WHERE tl.ItemID = :itemId ", { itemId: row.ID }, { datasource: "payfrit" }); templates = []; for (t in qBurgerTemplates) { arrayAppend(templates, t.TemplateName); } arrayAppend(burgers, { "ItemID": row.ID, "Name": row.Name, "Templates": templates }); } writeOutput(serializeJSON({ "OK": true, "totalLinks": qLinks.recordCount, "links": links, "burgers": burgers }));