Email Confirmation/Acknowledgement Questions

I am just starting to look into the wonderful world of email acknowledgments from the Tessitura Client, and am looking for advice, examples, whatever.

I need to be able to put information about the performances (lineitem rows) and specific tickets (sub_lineitem rows)  in addition to the order information in the confirmation. I see that these fields are not included in the dataset that is documented in Appendix D of the API documentation. However, I have heard rumors of addition available fields (the cartdocument dataset?). While using undocumented things is generaly a bad idea, I'd be interesting in hearing people's thoughts on this.

Would anyone be willing to share examples of their Client based ack email .asmx file? I don't need anything fancy, just order, performances and seats.

Thanks!

  • Hi David,  I have done this before.   I can post my template a little later in the day.  Basically what you do is call the ExecuteLocalProcedure web api method.  Then I take the dataset and update and add xml nodes to the OrderdataXML.  Once this is done it can be used in the transform. 

     

    Regards,

    Jon

  • David -

    I'm not sure this is exactly what you are lookig for, but I've been successful pulling lineitem and sublineitem information using some of the example data structure that were included in the sample templates (particularly in the subscription section). In particular GetOrderDetailsInfoResults which you can pull both lineitem and sublineitems info. (Look at the sample template for an example)

    Having said that, I'm only dabbling so far and haven't gotten very far, but I've been able to get some of that information!

    Good luck,

    Heather
    Seattle Repertory Theatre 

     

  • I just posted my samples to my TessituraNetwork profile under "My Files".

     

    I had one issue with the sample that was provided with Tessitura in that any negative amount for payments showed up as an donation like a return ticket. The sample I have accounts for that and we do donations to multiple on account payment methods since we are an consortium so you should be able to see that in the code.

     

    Marty

     

     

    From: Tessitura Technical Forum [mailto:forums-technical@tessituranetwork.com] On Behalf Of Heather Kraft
    Sent: Friday, December 04, 2009 12:06 PM
    To: Martin A. Jones
    Subject: Re: [Tessitura Technical Forum] Email Confirmation/Acknowledgement Questions

     

    David -

    I'm not sure this is exactly what you are lookig for, but I've been successful pulling lineitem and sublineitem information using some of the example data structure that were included in the sample templates (particularly in the subscription section). In particular GetOrderDetailsInfoResults which you can pull both lineitem and sublineitems info. (Look at the sample template for an example)

    Having said that, I'm only dabbling so far and haven't gotten very far, but I've been able to get some of that information!

    Good luck,

    Heather
    Seattle Repertory Theatre 

     

    From: David Woodall <bounce-davidwoodall1530@tessituranetwork.com>
    Sent: 12/4/2009 10:15:39 AM

    I am just starting to look into the wonderful world of email acknowledgments from the Tessitura Client, and am looking for advice, examples, whatever.

    I need to be able to put information about the performances (lineitem rows) and specific tickets (sub_lineitem rows)  in addition to the order information in the confirmation. I see that these fields are not included in the dataset that is documented in Appendix D of the API documentation. However, I have heard rumors of addition available fields (the cartdocument dataset?). While using undocumented things is generaly a bad idea, I'd be interesting in hearing people's thoughts on this.

    Would anyone be willing to share examples of their Client based ack email .asmx file? I don't need anything fancy, just order, performances and seats.

    Thanks!




    This message was sent automatically to you by www.tessituranetwork.com because you subscribed to the Tessitura Technical Forum. You may reply to this message to post to the Technical forum or visit the site to search, read and post to the forums. In the interest of keeping the forum posts from becoming cluttered, we encourage you to delete previous message text from your reply before sending. Thank you!

  • Hi David,

    Attached is our template and the xsl.  Please let me know if you have any issues opening the attachment. 

    The part that pulls in addional information from tessitura  looks like:

     Tessitura.WebAPI.Tessitura tess = new Tessitura.WebAPI.Tessitura();
        string sessionkey = tess.GetNewSessionKey("");
        string lsal = "";
       
      
        DataSet ds = tess.ExecuteLocalProcedure(sessionkey, 1, "@ORDER_NO=" + OrderData.OrderNumber);

        for (int i = 0; i < ds.Tables[0].Rows.Count; ++i)
        {
            string superPkgNo = ds.Tables[0].Rows[i]["super_pkg_no"].ToString();
            string superPkgDesc = ds.Tables[0].Rows[i]["description"].ToString();
            string totPurAmt = ds.Tables[0].Rows[i]["tot_pur_amt"].ToString();
            string totRetAmt = ds.Tables[0].Rows[i]["tot_ret_amt"].ToString();
            string numPur = ds.Tables[0].Rows[i]["num_seats_pur"].ToString();
            string numRet = ds.Tables[0].Rows[i]["num_seats_ret"].ToString();
            string li_seq_no = ds.Tables[0].Rows[i]["li_seq_no"].ToString();

            XmlNode xm = OrderData.CartDocument.SelectSingleNode("//LineItem[li_seq_no=" + li_seq_no + "]");

            if (xm != null)
            {

                XmlElement xePkgNo = OrderData.CartDocument.CreateElement("super_pkg_no");
                xePkgNo.InnerText = superPkgNo;

                XmlElement xePkgDesc = OrderData.CartDocument.CreateElement("super_pkg_desc");
                xePkgDesc.InnerText = superPkgDesc;

                XmlElement xeTotPurAmt = OrderData.CartDocument.CreateElement("tot_pur_amt");
                xeTotPurAmt.InnerText = totPurAmt;

                XmlElement xeTotRetAmt = OrderData.CartDocument.CreateElement("tot_ret_amt");
                xeTotRetAmt.InnerText = totRetAmt;

                XmlElement xeNumPur = OrderData.CartDocument.CreateElement("num_seats_pur");
                xeNumPur.InnerText = numPur;
               
                XmlElement xeNumRet = OrderData.CartDocument.CreateElement("num_seats_ret");
                xeNumRet.InnerText = numRet;
               
                xm.AppendChild(xePkgDesc);
                xm.AppendChild(xePkgNo);
                xm.AppendChild(xeTotPurAmt);
                xm.AppendChild(xeTotRetAmt);
                xm.AppendChild(xeNumRet);
                xm.AppendChild(xeNumPur);

            }

     

    This makes a wepapi  execute local procedure call , which pulls back extra information on the line item.  It then loops through the data set, search the order data xml for the matching node.  When it finds it , the additional is appended to the xml.  This is all done before calling the transform, so that it will be there when doing the xsl transform.

    If you have any questions please let me know.

     

    Jon 

    Ticket_Subs_html.zip
  • Thanks Heather, Marty and Jon! It is all starting to make sense.