Order Events

Overview

Order events represent the key events once the customer finishes the checkout process, completes the purchase, and the order confirmation page loads. Affirm’s machine learning systems draw upon this transaction data to improve our marketing products off- and onsite, providing more relevant, better converting financial offers to your customers over time.


trackOrderConfirmed (Order, Optional[Strict])

An event triggered when a customer completes the purchase. You can measure the sale of one or more products by this event.

Parameters

ParametersData typeDescription
order requiredobjectThe confirmed order.
strict
optional
booleanTrue/False flag for ensuring the currency, orderID, paymentMethod, and total are sent in the Order object. This value must be true in order to use the new Enhanced Analytics implementation.

Example

affirm.analytics.trackOrderConfirmed({
   "currency": "USD",
   "orderId": "AA-87654",
   "paymentMethod": "Affirm",
   "total": 23595
}, null, true);

trackOrderCancelled (Order, Optional[Product, Optional[Strict])

An event triggered when a user cancels an order.

Parameters

ParameterData typeDescription
order requiredobjectThe canceled order.
product
optional
arrayProducts that were canceled by this order.
strict
optional
booleanTrue/False flag for ensuring the currency, orderID, paymentMethod, and total are sent in the Order object. This value must be true in order to use the new Enhanced Analytics implementation.

Example

affirm.analytics.trackOrderCancelled({
    "storeName": "Affirm Store",
    "coupon": "SUMMER2018",
    "currency": "USD",
    "discount": 0,
    "paymentMethod": "Visa",
    "revenue": 2920,
    "shipping": 534,
    "shippingMethod": "Fedex",
    "tax": 285,
    "orderId": "T12345",
    "total": 3739
}, [{
    "brand": "Affirm",
    "category": "Apparel",
    "coupon": "SUMMER2018",
    "name": "Affirm T-Shirt",
    "price": 730,
    "productId": "SKU-1234",
    "quantity": 1,
    "variant": "Black"
}, {
    "brand": "Affirm",
    "category": "Apparel",
    "coupon": "SUMMER2018",
    "name": "Affirm Turtleneck Sweater",
    "price": 2190,
    "productId": "SKU-5678",
    "quantity": 1,
    "variant": "Black"
}]);

trackOrderRefunded (String, String, Integer, Optional[Product])

An event triggered when an order is partially or fully refunded.

Parameters

ParameterData typeDescription
orderId requiredstringA unique identifier representing the transaction to fully or partially refund.
amount requiredintegerThe amount to refund, either partially or fully.
currencystringThree-letter ISO currency code, in uppercase.

Possible values:

- USD
- CAD
product
optional
arrayAn array of objects representing the products within the order correlated to the refund amount.

Example

affirm.analytics.trackOrderRefunded(
    "O12345", 3739, "USD",
    [{
        "brand": "Affirm",
        "category": "Apparel",
        "coupon": "SUMMER2018",
        "name": "Affirm T-Shirt",
        "price": 730,
        "productId": "SKU-1234",
        "quantity": 1,
        "variant": "Black"
    }, {
        "brand": "Affirm",
        "category": "Apparel",
        "coupon": "SUMMER2018",
        "name": "Affirm Turtleneck Sweater",
        "price": 2190,
        "productId": "SKU-5678",
        "quantity": 1,
        "variant": "Black"
    }]
);

trackOrderUpdated (Order, Optional[Product], Optional[Strict])

An event triggered when a user updates an order.

Parameters

ParameterData typeDescription
order requiredobjectThe updated order.
product
optional
arrayProducts that were updated by this order.
strict
optional
booleanTrue/False flag for ensuring the currency, orderID, paymentMethod, and total are sent in the Order object. This value must be true in order to use the new Enhanced Analytics implementation.

Example

affirm.analytics.trackOrderUpdated({
    "storeName": "Affirm Store",
    "coupon": "SUMMER2018",
    "currency": "USD",
    "discount": 0,
    "paymentMethod": "Visa",
    "revenue": 2920,
    "shipping": 534,
    "shippingMethod": "Fedex",
    "tax": 285,
    "orderId": "T12345",
    "total": 3739
}, [{
    "brand": "Affirm",
    "category": "Apparel",
    "coupon": "SUMMER2018",
    "name": "Affirm T-Shirt",
    "price": 730,
    "productId": "SKU-1234",
    "quantity": 1,
    "variant": "Black"
}, {
    "brand": "Affirm",
    "category": "Apparel",
    "coupon": "SUMMER2018",
    "name": "Affirm Turtleneck Sweater",
    "price": 2190,
    "productId": "SKU-5678",
    "quantity": 1,
    "variant": "Black"
}]);

Objects

Order 

Represents a single customer's checkout transaction. This includes parameters related to the transaction once the customer completes their checkout.

ParameterDescription
order requiredstringUnique identifier of order in your system
currency
style="color:crimson">required
stringThree-letter ISO currency code, in uppercase.

Possible values:

- USD
- CAD
paymentMethod requiredstringDescription of payment method used

(ex. “Visa”, “Mastercard”, “Gift Card”)
total requiredintegerThe total value of the transaction, including tax and shipping. If not sent, this value will be automatically calculated using the product quantity and price fields of all products in the same hit. The value must be non-negative and represented as cents instead of dollars.

Product

Represents any offered product or service.

ParameterDescription
brand
optional
string
Maximum length: 500
Protocol parameter: prbr
The brand of the product (e.g., Affirm).
category
optional
string
Maximum length: 500
Protocol parameter: prca
The category the product belongs to (e.g. Apparel).
coupon
optional
string
Maximum length: 500
Protocol parameter: prcc
Any coupon code associated with the particular instance of this product.
name
optional
string
Maximum length: 500
Protocol parameter: osn
The full name of the product (e.g., Affirm T-Shirt).
price
optional
integer
Protocol parameter: prpr
The price of the product. The value must be non-negative and represented as cents instead of dollars.
productID
optional
string
Maximum length: 500
Protocol parameter: prid
A unique identifier representing the product, such as the SKU or an internal database identifier used by the merchant.
quantity
optional
integer
Protocol parameter: prqt
The quantity of the product. The value must be non-negative.
variant
optional
string
Maximum length: 500
Protocol parameter: prva
The variant of the product (e.g., black).
currency
optional
string
Protocol parameter: prcu
currency code associated with this product (USD).