{
"data": [
{
"customer_name": "Amelia",
"customer_address": "13th Street, USA",
"customer_email_address": "amelia@zylker.com",
"customer_phone_number": "9876543210",
"invoice_number": "123456",
"items": [
{
"items.item_code": "123",
"items.item_name": "Fastrack Revoltt FS1",
"items.item_description": "Specifications",
"items.item_replacement": "Yes"
},
{
"items.item_code": "1278",
"items.item_name": "Samsung Refridgerator",
"items.item_description": "Specifications",
"items.item_replacement": "Yes"
}
]
},
{"customer_name": "John","customer_address": "15th Street, India",....}]
}
items and repairs, use the following approach:dataMap = Map();
recordsData.put("customer_name": "Amelia");
recordsData.put("customer_address": "13th Street USA");
recordsData.put("customer_email_address": "amelia@zylker.com");
recordsData.put("customer_phone_number": "9876543210");
recordsData.put("invoice_number": "123456");
//Subform1
itemsList = list();
itemMap = Map();
itemmap.put("items.item_code": "123");
itemmap.put("items.item_name": "Fastrack Revoltt FS1");
itemmap.put( "items.item_description": "<p><b>Specifications</b></p>");
itemmap.put("items.item_replacement": "Yes");
itemsList.add(itemmap);
//subform2
repairList = list();
repairDetails = Map();
repairDetails.put("Repairs.Service_code", "R100");
repairDetails.put("Repairs.Description", "Faulty belt");
repairDetails.put("Repairs.Quantity", "5");
repairDetails.put("Repairs.Price", 10000);
repairList.add(repairDetails);
recordsData.put("items", itemsList);
recordsData.put("Repairs", repairList)
mergedata = Map();
mergedata.put("merge_data", {"data": recordsData});
//pass this merge data to respective merge api like mentioned below
zoho.writer.mergeAndSend("eb4kob4cf65bb6d074af7a7de21e561119eb9", "pdf", "amelia@zylker.com", mergedata, "writer_name");
For a complete guide on passing values for all merge field types, refer to the Comprehensive Merge Field Documentation.