Overview

This guide will walk you through how to configure the Revenue and Payout on an Offer to be based on Product SKUs.

Price Per Product can be enabled in your account upon request - please contact the Customer Success team.


A How-To Guide


Step #1

When creating or editing the Offer you have selected for which to configure revenue and payout based on Per Product SKU, click the Revenue & Payout tab to configure the base Earning and Payout types.

Please note that the base Payout and Revenue will be used if no matching Product SKUs are found in Custom Settings.

See below the options for earnings types and their descriptions.

Base Revenue Type

Description

Base Payout

Type

Description

RPA (Price Per Product)

Revenue per Conversion (Price Per Product)

CPA (Price Per Product)

Cost per Conversion

RPA/RPS (Price Per Product)

Revenue per Conversion (Price Per Product)

+
% Revenue per Sale (Price per Product)

CPA/CPS (Price Per Product)

Cost per Conversion

+

% Cost per Sale (Price Per Product)

RPS (Price Per Product)

% Revenue per Sale (Price per Product)

CPS (Price Per Product)

% Cost per Sale (Price Per Product)

PRV (Price Per Product)

% of Revenue (Price Per Product)

Click Save.

Step #2

Navigate to the Custom Settings tab and click 'Add' on the Custom Revenue & Payout card to add your Product SKU's.

Please note that a banner will display in the offer view if the offer is using Price per SKU and we detect there’s no custom setting currently configured as Price per SKU.


Step #3

Configure the settings and conditions of the custom rule.

Please [Click Here] for more details on other available Custom Settings fields.


You must enable and set 'Apply Custom Revenue' in order to save the Custom Setting. Enabling 'Apply Custom Payout' is optional.

Step #3A

Click the Products tab and check the SKU checkbox.

Specify and define the SKU's that this Custom Setting should be applied to. Multiple Product SKU's can be added and must be separated by line.

Click Add.


PLEASE NOTE

- If the Offer is set to Price per SKU and the incoming conversion is not an order (defined by having no “order” parameter in the postback), the Payout and Revenue for the conversion will be $0.

- The base Revenue and Payout values will be used in the following scenarios:

  • No matching SKU defined in Custom Settings

  • No Custom Payout defined (only Custom Revenue will be applied)

  • Empty SKU or SKU not defined in Shopify


Using Price Per Product and Discounts with Shopify Integration

Everflow will apply revenue and payout settings to the discounted amount using the following formula: price = (cost * quantity) - discount

Discounts must be turned on for them to be processed. This is done in the Shopify integration configuration. Enable reconciliation, then enable discounts.

The conversion script must be updated either via a database update or by changing the conversion target to custom and updating in the Shopify integration screen.

The following line must be added:

item['ds'] = line_item.discount_allocations && line_item.discount_allocations.length > 0 ? line_item.discount_allocations[0].amount : 0;

The discount amounts are relevant for the settings that require percentages only.

For example, the following combos and settings will be applied on the discounted amount when used in conjunction with RPS (Price Per Product).

  • RPS (Price Per Product) & CPS (Price Per Product),

  • RPA/RPS (Price Per Product) & CPA/CPS (Price Per Product),

  • PRV (Price Per Product)

The discount code used is stored in the Coupon Code column for conversion list.

Example A

Base Offer Revenue: 75% RPS (Price Per Product)

Base Offer Payout: 10% CPS (Price Per Product)

Custom Setting:

RPS (Price Per Product) & 25% CPS (Price Per Product) with

Product SKU variable “matches”: 123456

  • Customer “orders” the following items:

    • Pants $10 with SKU 123456

    • Shirt $10 with SKU 998877

    • 50% Discount is applied

  • Result:

    • The pants will have the Custom Setting applied, on the matching SKUs for $1.25 RPS/CPS with discount applied.

    • The shirt will have base setting applied, on the default custom setting for $3.75 RPS and $0.5 CPS with discount applied

Example B

Base Offer Revenue: 75% RPS (Price Per Product)

Base Offer Payout: 10% CPS (Price Per Product)

Custom Setting #1:

RPS (Price Per Product) & 50% CPS (Price Per Product) with no SKU variable

Custom Setting #2:

RPS (Price Per Product) & 25% CPS (Price Per Product) with

SKU variable “matches” 123456

  • Customer has conversion without order parameter for the following items:

    • Pants $10 with SKU 123456

    • Shirt $10 with SKU 998877

    • Socks $10 with no SKU

  • Result:

    • Due to the order parameter not getting passed on the conversion postback the RPS will be $0 & CPS will be $0.


Using Price Per Product and Discounts with WooCommerce Integration

Please use the following code on your checkout page with the woocommerce_thankyou action:

add_action( 'woocommerce_thankyou', 'my_custom_tracking' );

function my_custom_tracking( $order_id ) {
$order = wc_get_order( $order_id );

//Everflow order objects
$efOrder = array();
$efOrder['items'] = array();
$efOrder['oid'] = $order_id;
$efOrder['amt'] = $order->get_total();
$efOrder['bs'] = $order->get_billing_state();
$efOrder['bc'] = $order->get_billing_country();

$coupons = "";
$couponCount = 0;
foreach ($order->get_used_coupons() as $coupon) {
$couponCount++;
if($couponCount > 1) { // do not add comma unless more than one coupon
$coupons .= ',';
}
$coupons .= $coupon;
}
$efOrder['cc'] = $coupons;

// This is how to grab line items from the order
$line_items = $order->get_items();

// This loops over line items
$efItems = array();
foreach ( $line_items as $item ) {
$efItem = array();
$product = $order->get_product_from_item( $item );
$efItem['vs'] = '';
$efItem['ps'] = '';
if ($product->get_type() === 'variation') {
$efItem['vs'] = $product->get_sku();
} else {
$efItem['ps'] = $product->get_sku();
}
$efItem['qty'] = $item['qty'];
$efItem['p'] = $order->get_line_total( $item, true, true );
$efItems[] = $efItem;
}
$efOrder['items'] = $efItems;

$javascriptCode = '<script type="text/javascript" src="https://www.[YOUR_DOMAIN].com/scripts/sdk/everflow.js"></script>

<script type="text/javascript">
EF.conversion({
aid: [YOUR_AID],
amount: '.($order->get_total() - $order->get_shipping_total()).',
coupon_code: "'.$coupons.'",
email: "'.$order->billing_email.'",
order: '.json_encode($efOrder).',
});
</script>';

echo $javascriptCode;
}


NEED HELP? OUR CUSTOMER SUCCESS TEAM IS HERE FOR YOU!

We've assembled a superstar team of industry veterans that are available around the clock to make sure that your issues are resolved and questions are answered. You can reach out any time in-platform via Chat or by emailing support@everflow.io.

Did this answer your question?