# Purchase

When the purchase success page is loaded (thankyou.html), fire the following scriptlet to capture the purchase information

```
window._mp.safeExecute('evPurchase', function() {

   /**
    * if user does not have first name and last name, split the name using space
    * and assign first half to fName and second to lName
    *
    *
    * Example:
    * var userName = 'full name';
    * var fName = '';
    * var lName = '';
    * 
    * if (userName.indexOf(' ') > -1) {
    *   fName = userName.split(' ')[0];
    *   lName = userName.split(' ')[1]; 
    * } else {
    *   fName = userName;
    *   lName = undefined;
    * }
   */

   eedl('user_info', {
      pid: '<unique identifier representing user>',
      email: '<email address of user>',
      phone: '<phone number of user - no country code>',
      country: '<country code only>',
      city: '<city - madurai>',
      state: '<state - Tamil Nadu>',
      fName: '<first name of user>',
      lName: '<last name of user>',
      zip: '<zip code>',
   });

   eedl('mp_purchase', {
      currency: 'INR', /* Currency of website */
      transaction_id: '<order id - ABC00xxxx>', /* Order Id of transaction */
      cart_id: '<unique cart id>', // mandatory
      value: 123.33, // float value of order
      coupon: '<optional coupon>', // Leave this undefined if there is no coupon
      shipping: 123.33, // total shipping value in float
      payment_type: 'Credit Card', // optional
      tax: 123.33, // total tax value in float
      items: [ // array of items
         {
            item_id: '<mandatory - item_id>',
            item_name: '<mandatory - name of item>',
            item_sku: '<mandatory - style id of item>',
            index: 0, // order of item in array 0,1,2,3...
            price: 123.33, // mandatory - float price - DO NOT MULTIPLY with quantity.
            quantity: 2, // quantity of item
            item_brand: '<optional - brand>', // if not available leave undefined
            item_category: '<optional - category>', // if not available leave undefined
         }
      ],
      ev_source: 'ingestlabs'
    });
  })();
 
```

### Send event from an iframe window

If the event occurs in a iframe window, you need to fire the event using the below script.

```
window.top.postMessage({
      event_name: 'mp_purchase',
      event_payload: {
         currency: 'INR', /* Currency of website */
         transaction_id: '<order id - ABC00xxxx>', /* Order Id of transaction */
         cart_id: '<unique cart id>', // mandatory
         value: 123.33, // float value of order
         coupon: '<optional coupon>', // Leave this undefined if there is no coupon
         shipping: 123.33, // total shipping value in float
         tax: 123.33, // total tax value in float
         items: [ // array of items
            {
               item_id: '<mandatory - item_id>',
               item_name: '<mandatory - name of item>',
               item_sku: '<mandatory - style id of item>',
               index: 0, // order of item in array 0,1,2,3...
               price: 123.33, // mandatory - float price - DO NOT MULTIPLY with quantity.
               quantity: 2, // quantity of item
               item_brand: '<optional - brand>', // if not available leave undefined
               item_category: '<optional - category>', // if not available leave undefined
            }
         ],
         ev_source: '<Orign of the event>' // Example: 1Checkout, Razorpay, Gokwik, etc.
       }
    },
    'PARENT_URL'
);

PARENT_URL is the url of the website.
```

{% content-ref url="/pages/d2NZ4n0wQEnlBVinzBdl" %}
[Products Array](/implementation/web-sdk/tracking-events/products-array.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ingestlabs.com/implementation/web-sdk/tracking-events/purchase.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
