Skip to main content

Purchase Attributes and Position Attributes

In some cases (most often for analytics), it is necessary to save additional information for purchases, for example:

  • manager / cashier who performed the sale;
  • advertising source (flyer, leaflet, etc.);
  • store type;
  • any other business characteristics.

To pass such information to Sailplay, purchase attributes and position attributes are used, which can be passed:

  • during purchase creation;
  • during promotion calculation.

Main Usage Scenarios

Analytics

Purchase and product attributes are supported in the platform's analytical filters.
This allows for building reports and segments by additional order and position characteristics.

Use in Promotions

In the conditions of promotions of the "Make a purchase" type, you can:

  • enable the "Specify characteristics" flag;
  • select purchase attributes and their values that will be considered when checking condition fulfillment.

By a similar principle, attributes can be used:

  • in conditions related to products;
  • in rewards (for example, "Product discount").

Examples of promotion attributes:

  • payment type (for example, payment_type attribute with values card or cash)
  • order receiving type (for example, delivery_type with values "Pickup" or "Delivery")
  • order source (for example, source with values: "MA", "website", "Aggregator", etc.)

Supported Data Types

The following value types are supported for purchase and position attributes:

  • number (decimal)
  • string (string)
  • date (date)
  • text (text)

Purchase Attributes

Creating a Purchase Attribute

When creating a purchase attribute, its technical name and data type must be passed.
The response returns:

  • id — unique attribute identifier;
  • alias — technical name of the attribute.

Getting a List of Purchase Attributes

A separate API method is used to get a list of all created purchase attributes.


Working with Purchase Attribute Values

To add, delete, and get attribute values, the id or alias of the target attribute must be specified.


Adding and Deleting Attributes for Existing Purchases

The Sailplay API allows for adding and deleting attributes and their values for purchases that were loaded previously.

This is especially useful for analytics and retrospective data enrichment.


Position Attributes

Position attributes are passed directly within each cart position, and promotional mechanics can be configured on them (condition type "Buy product" or reward "Product discount" and option "Product with a certain attribute value by range," whose selection conditions depend on the position attribute type).

Position attributes can be:

  • number (decimal)
  • string (string)
  • date (date)
  • text (text)

Example cart structure with a position attribute:

cart={
"1":{
"sku":"0000",
"price":100,
"quantity":1,
"position_attribute":"value"
}
}

Position attributes can be used in analytics and in promotion conditions related to products.

Examples of using position attributes:

  • product type

Suppose you sell tickets that have two characteristics: child and adult. Since in the SKU context it's the same product, the attribute that is dynamic and depends on certain conditions is passed as a position attribute, for example "ticket_type":"Adult" or "ticket_type":"Child"

  • dynamic characteristic

Suppose you have a promotion giving a discount on the last size in stock. From an inventory perspective, the first or last pair of a certain size is the same SKU, but if, for example, the last pair is being scanned at checkout, you can pass a dynamic parameter, a position attribute, "last_size":"true," on which a promotion can be configured.