Create Sales orders via api

Create Sales orders via api

Hoping someone can help with a "Limit Exceeded: URLFetch URL Length" error message ?

Creating a sales order via the api using Javascript which has only one line item works perfectly fine but adding any more line items to the array creates this error ?


Would I need to create the Sales order first & then update it with the line items afterwards perhaps ?

The code to create the array is as below ...

var array = [];
  try {
  for (var y = 0; y < lineItems.length; y++){
    if (lineItems[y][3] < 0.01) continue;
    array.push({
      "item_id": lineItems[y][8],
      "description": lineItems[y][1],
      "quantity": lineItems[y][3],
      "vat_treatment": lineItems[y][7],      
      "item_custom_fields": [
        {
          "label": "Area",
          "value": lineItems[y][1]
        },
        {
          "label": "Bay",
          "value": lineItems[y][9]
        }
      ]
    }
    )
  }

    if (parseFloat(discount) != 0) {
      array.push({
        "item_id": discounter,
        "quantity": '1',
        "rate": discount
      })
    }  

    var JString={
      "customer_id": custId,
      "date": date,
      "notes": custNotes,
      "status": "open", // this doesn't work ?
      "is_inclusive_tax": vat,
      "reference_number": reference,
      "salesperson_name": salesMan,
      "delivery_method": Jobber,
      "shipment_date": delDate,
      "template_id": "################",
      "custom_fields": [
        {
          "label": "Class",
          "value": zohoClass
        },
        {
          "label": "Jobber",
          "value": team        },
        {
          "label": "Delivery Type",
          "value": jobType
        }
      ],
      "line_items": array
    }

    var salesOrder = sendSalesOrder( stringify(JString) );
    if (convert) {
      inv = convertSoToInvoice(result[1]);
      var id = inv[1];
      if (payment > 0) payment = doZohoPayment(payment,method,custId,reference,inv,id,payment);
    }

    return salesOrder[0] + inv[0] + payment;
  } catch (e) {log_("Error in salesOrder : " + e.message + " - " + e.lineNumber)}

function sendSalesOrder(salesOrder){
  var options = zOptions('post');
  var url = zUrl + 'salesorders/?organization_id=' + zOrgId +  "&" + zToken + '&JSONString=' + encodeURIComponent(salesOrder);
    var result = UrlFetchApp.fetch(url, options);
    var response = JSON.parse(result.getContentText());
    var code = result.getResponseCode();
    if (code == 201) {return ["Created in Zoho : " + response.salesorder.salesorder_number,response.salesorder.salesorder_id]}
    else {log_("Error : " + response.message);return "Error: " + response.message;}
}