If you are a merchant and you want to know how we pull in, process, and track your order data -- and then use that data to calculate your commissions based on the rate(s) you have set up in Buzzbassador -- read below to learn more.
First, understand the core process:
Shopify Webhooks pass us information from your store about orders where an ambassador's code was used
We get the total amount paid by the customer, the order status, and a breakdown of these individual line items:
With each individual order, as soon as we get it from Shopify, we identify the eligible amount for commission based on your set Buzzbassador program settings
We then calculate the commission based on that eligible amount multiplied by your set commission rate
If anything about the total paid by the customer changes (i.e. due to refunds, cancellations, etc.) before the commission is either declined, paid, or marked as paid, the commission will be updated to reflect that
Below is a break down of each of these components in more detail:
Step 1: Shopify Passes Us Order Data
For each individual order in which an ambassador's referral code was used at checkout, Shopify passes us information about the order in real time.
We receive the following financial information from each order and use it for attributing revenue and calculating commission correctly:
Order status: The status of the order; Typically either "Paid", "Partially Refunded", or [Fully] "Refunded"
Total item(s) price: The price of just the items in the order ONLY, not including any taxes, discounts, etc.
Discount code used: The discount code (in this case, an ambassador's referral code) that was applied to the order
Total discounts: The total amount deducted from the item(s) price after the discount code was applied
Total shipping: The total amount paid by the customer for shipping
Total taxes: The total amount paid by the customer for taxes
Order total: The total amount that Shopify notes as "Paid by customer" (or "Net payment", in the case of refunds) for the entire order
Let's look at an example:
Total item(s) price (not pictured): 50.90
Order status: Paid
Discount code used: 10OFF
Total discounts: -8.10
Total shipping: 6.95
Total taxes: 3.10
Order total: 52.85
Notes & considerations:
Note that in some cases, the tax can be included in the item(s) price. For the above example, the California State Tax is noted as "Included". That means the 3.10 was already factored into the "Subtotal", so it should not be counted as a separate line item to be added to the subtotal (because it was already factored in).
You may wonder why the total item(s) price is not pictured. "Is the subtotal not the same as the item(s) price?" The answer is no. The subtotal factors in discounts, and in cases where tax is already included in the items' price, it also factors in taxes. This is different from the item(s) price, which is solely the price the customer paid for the items in the order - not including discounts or taxes.
The reason the total item(s) price is not pictured is because Shopify doesn't list it as its own separate line item in the Shopify admin. However, Shopify does pass us this data on the back-end. For example, in the above order, the total item(s) price is 50.90. You can confirm this by taking the subtotal, adding back discounts, and then subtracting the tax (since tax was included). This gives you the total amount of the items only, without tax, discounts, or anything else factored in.
Step 2: We Determine Amount Eligible for Commission
Every merchant configures their commission settings in Buzzbassador, and we check these settings with each individual order in order to determine which part of the order is eligible for commission.
For example, let's say you have included shipping and taxes in your commission calculation, but not discounts.
That means from the info Shopify passed us in Step 1, we would do the following calculation:
Total item(s) price
= Total amount eligible for commission
Now let's look at another example. Say that you do include discounts in the commission calculation, but you do not include shipping or taxes.
From the info Shopify passed us in Step 1, we would do the following calculation:
Total item(s) price
= Total amount eligible for commission
We do not subtract discounts, because you noted that you wanted to include the discount amount in the calculation. And we do not add taxes or shipping, because you did not want to include those items. Therefore, the amount eligible for commission is simply the price the customer paid for the items alone.
Notes & Considerations:
If you have multiple programs (each with its own different commission settings), then each order that is sent to us will be sorted into the correct program, and the correct commission settings for that program will be used to identify the eligible amount for commission on an order-by-order basis.
Step 3: We Calculate The Commission
We take the commission rate set forth in your Program Settings and apply it to the total amount eligible for commission from Step 2 in order to calculate the commission.
For example, let's say your commission rate is 10%:
Total amount eligible for commission
= Commission amount
As mentioned previously, the commission is calculated as soon as Shopify sends us the order and we identify the eligible amount for commission (Step 1 + 2) in real time. But, the commission amount can be updated as long as the commission has not been declined or has not yet been paid or marked as paid. Read below for more information on this.
Step 4: We Check For Updates Regularly
As stated before, if there are any updates to the order -- such as refunds or partial refunds -- the commission in Buzzbassador will be updated to reflect this, as long as the order update happened before the commission was either declined, marked as paid, or paid.
The most important thing to understand with this step is how refunds are factored in to Buzzbassador's commissions.
As explained in Step 2 and Step 3, we calculate commission by identifying the amount eligible for commission based on your program settings, and then multiplying that amount by the correct commission rate.
When an order's status is updated to "Refunded" or "Partially Refunded" and the Amount paid by the customer is updated in Shopify (noting that a refund occurred), Shopify sends us the updated order status and updated (final) order total, as well as an update on the individual line items (shipping, item(s), etc.). We then use this updated information to find the updated amount eligible for commission. Then, we take that updated amount and we calculate the updated commission.
Let's look at an example of a [Fully] Refunded order:
Order status: Refunded
ORIGINAL total item(s) price (not pictured): 28.00
FINAL total item(s) price (not pictured): 0.00
ORIGINAL order total: 34.79
FINAL order total: 0.00
As you can see, the Final order total (net payment) was updated to 0.00, and the order status was updated to "Refunded", signifying to Shopify (and consequently, to Buzzbassador) that there was a refund and the commission needed to be updated.
So, the commission in Buzzbassador was updated to 0.00.
Notes & Considerations:
Again, the Subtotal that you see in the details of each order in your Shopify admin is NOT the same thing as the total item(s) price. Subtotal includes discounts & sometimes tax, while item(s) price does not. However, we can still look at the subtotal for the sake of this example, as it confirms that the order was refunded; the item count was updated to 0 and the subtotal was updated to 0.00.
Again, the total item(s) price is not pictured as a line item in the Shopify admin. For the sake of the example, though, for this order the total item(s) price Shopify provided us was 28.00 before the refund. This amount can be confirmed by taking the original order total, subtracting shipping, and adding back discounts. 34.79 - 10.99 + 4.20 = 28.00.
It is important to note that there are some cases where an order a merchant considers refunded does not actually trigger a commission update in Buzzbassador, due to the correct Shopify refund method not being utilized. This edge case is explained below.
Important Note On Refunds:
In some cases, depending on how the order is refunded by the merchant, the line items in the order details will not be updated correctly after a refund.
For example, in the above screenshot we see that some sort of return or refund was processed to the customer, because the Subtotal updated to 0.00. However, the amount "Paid by customer" number (denoted as Final order total) stayed the same at 56.25. Additionally, the Order Status remained at "Paid" instead of "Refunded".
This is likely because when the merchant refunded the order, they either used a third-party app that did not correctly update the order status and final amount paid, or the merchant manually processed a refund to the customer without going through the normal refund process in the Shopify admin.
Because of that, Shopify is still recognizing that 56.25 was the final total paid by the customer, and that the order remained at "Paid" status -- which means Shopify did not send Buzzbassador any update about a refund.
Buzzbassador can only track and factor in the refund data that Shopify sends us, and Shopify only sends us refund data when:
The order status is updated.
The "Paid by customer" amount (in the case of refunds, called "Net payment) is updated.
If the above order's refund had been processed correctly, the status would be "Partially Refunded", and an additional "Net payment" line item would be added at the bottom, with the final paid by customer amount being 6.95.
How To Double-Check Buzzbassador's Order Data & Commission Calculations
Because there are so many factors affecting how commissions are calculated that differ on an order-by-order basis, there unfortunately is no simple/quick way to audit our calculations vs. the numbers you see in Shopify.
Some merchants try to compare the totals from certain Shopify reports (ex. the "Sales By Discount" report) to the totals they see in Buzzbassador, but that can cause confusion -- typically for 2 reasons:
Some Shopify reports can have a delay (typically 12-72 hours), while Buzzbassador is sent orders in real time (1 hour delay maximum)
Shopify reports don't take into account the very nuanced, differing factors that affect how commission each individual order is calculated in Buzzbassador, such as things we've already discussed:
How an order was refunded
When an order was refunded
How tax was factored in to the order
The unique commission settings that each order falls into (for merchants with multiple programs)
So, if you were to just pull up your Shopify report and compare the totals in Shopify to the totals you see in Buzzbassador, chances are, the numbers may not match. But that isn't a cause for concern! There are easily-explained reasons for the differences. For example:
The "Total Refunds" number in Shopify includes all refunds, while Buzzbassador only includes refunds that happened before an order was declined, marked as paid, or paid.
The "Total Net Sales" number in Shopify doesn't include refunds, discounts, shipping, or tax, whereas your commission in Buzzbassador may have factored in those line items, depending on the circumstances of each individual order.
With all that being said, the bottom line is:
Since Buzzbassador calculates the commission of each order on a case-by-case basis, for each individual order -- factoring each order's unique circumstances in terms of tax, refunds, etc. -- in order to audit the calculations, you must use the same method.
While that may not be the most efficient or quick way, it's the only way. We simply can't change the way Shopify's reporting is done. If Shopify ever introduces a way for us to generate custom reports that you can access in your Shopify admin based on the exact factors Buzzbassador uses to calculate commissions, we will definitely take advantage of that!
In the meantime, if you ever need to audit Buzzbassador's calculations, we recommend the following steps:
When it's time to pay out a batch of due commissions, figure out the dates of the earliest and latest orders from that batch
Go to Shopify and export your order history from that date range. Make sure that in the export, all the relevant line items are included that you'll need for the calculations:
Partially Refunded, Refunded, Paid, Cancelled, etc.
Total item(s) price
Price of just the items, not including discounts, taxes, shipping, etc.
Discount code used
This is important so that you know whether to add to (for tax that is not included) or subtract from (for tax that is included) the order subtotal
Refund date (if applicable)
Refund amount (if applicable)
Once you have the orders exported, filter out the orders that A) didn't have any discount code used, or B) had a discount code used that was not one of your ambassador's codes. This will ensure that you are only assessing the orders that are a part of your Due Payouts in Buzzbassador.
Sort the sheet by discount code used so that each ambassador's orders are grouped together
Pick the first ambassador code on the list, and pull up that ambassador's profile in Buzzbassador
Click on the "Ready Commissions" tab in their profile. This will show you the commissions that are currently due for that ambassador (so, the same ones included in the Due Payout batch)
Now, you can go through the ambassador's due commissions, order by order -- matching up the order numbers in Buzzbassador with the order numbers in your Shopify order export -- and follow the same process Buzzbassador did:
Identify the amount eligible for commission from each Shopify order. This will depend on your unique program settings. See step 2 of this article as an example.
Take the amount from 6.a. and apply the correct commission rate from your unique program settings to it. See step 3 of this article as an example.
Compare your commission calculation to the commission amount in Buzzbassador to make sure it is correct ✅
If you have any questions about how Buzzbassador handles commissions, order data, refunds, or anything else, please don't hesitate to reach out to us at [email protected]. Or, if you're a current customer, simply send us a chat from the bottom right-hand corner of your app window.