Woocommerce Analytics Revenue should be based on Paid date - woocommerce

I use Woocommerce to add orders from admin manually. Most of my clients pay after 15 to 90 days after order is created, in some cases longer than 90 days.
I notice that Woocommerce Analytics always shows revenue based on Order created date. I agree with it by one point of view as order was created on that day, so, the revenue belong there.
I think orders tab in Analytics shows it right, which is Date, Order, customer, amount, etc..
But I think Revenue should be based on order->get_paid_date() rather than created date as the money still comes in on the paid date. If Woocommerce changes the formula, it would make little to no difference for those whose orders are paid online immediately. And it will take care of those whose orders are paid later on.
Just curious, since logically Revenue is the money coming into account and Analytics>Orders tab shows Orders by created date well already.
Thanks for your input for me to understand how Woocommerce thinks.

Currently Woocommerce Analytics does not take paid date meta into account, it considers order creation date for revenue consideration.
It depends how one looks it, it's right and wrong.
For my use, where customers pay days or months later, it's wrong. but still the order was placed on the creation date, so, the revenue should still be linked to the creation date. so, it's right too.
One thing I did was from Analytics settings, I removed some custom status of the order to exclude from Analytics, that way until the order is actually either in Pending status or Completed status, it does not consider it in revenue. Not a perfect solution, but it helps me to exclude canceled and some custom status like Quotation not be included in Revenue.
I ended up programming my own custom admin page where I pulled all orders in completed status with paid date between start and end date and did the total manually to get my actual income for the year.
Just for someone else looking for similar question, it might help.

Related

Google Ads conversion tracking for different product categories, how?

The situation is quite complicated to me, let's say:
I have 3 product categories.
I only want to track purchases.
However, if you insert the tracking snippet into the thank you page, each product category will trigger the same tag.
customers who buy dresses and customers who buy guns may look totally different. so, if you use the same thank you page to track the conversions, the Google Ads AI will have trouble in optimizing your campaigns:
A. Dresses sales campaign
B. Guns sales campaign
When people buy a dress, the dress conversion and gun conversion will both increase by one, although the transaction amounts are different by default. This shows that the conversion is contaminating with another campaign (the gun sales campaign).
You need to fire the transaction event on your thank you page conditionally. That's up to you.
It sounds like you set up three different conversion actions in your account. That's not a problem, but you need to check yourself what the user is purchasing and fire the correct event off (the one containing the conversion ID) on the thank you page.

Google analytics - last tracking causes previous tracking records to change

We set up enhanced ecommerce tracking for our shop where we among other things track payment method for each order. In our shop, as a customer, I completed two orders with visa payment option, which can be seen in GA:
Two orders created with visa option, all fine (don't mind the duplicate records for now).
But then I create a third order in our shop with sofort banking (just another payment option) and look how things change:
All order payment methods were changed to sofort banking. Of course I've tried hard reload to see if caching is not involved and even waited a day to see if it changes anything but no, the records stay with sofort banking.
Now we come to the second problem - the duplication. For some reason when I filter with Secondary dimension: Checkout Options (as can be seen on the pics) I get for each tracked order 2 records in the table. Those two problems might be somehow connected.
The question is: Does anyone have an experience with this and knows where the problem might be? If you need additional info please let me know, as of now I don't know in which direction to elaborate.

Incorrect refund import by transactionId in Google Analytics

I have an issue with the refunds import through standard Property menu "data import". I use refund import only by ga:transactionId.
As i have read in help in this case there is no need to supply any additional information about transaction (sku, quantity, revenue, etc.).
Whole transaction will be refunded.
In fact i see in report Sales Performance that all refunds are linked with correct transactionId, but have different date, source / medium, etc.
For me it seems to be absolutely random attribution (except date may be, it's date of import)
For example, one transactionId.
Originally it happened at June, 28 in yamarket / cpc. And refund is linked to June, 30 and webvisor.com / referral. Date of refunds common for all transactions and it is date of import (today). Source / medium is absolutely random.
May be i need to wait one day, but i doubt that.
And due to different dates if i choose date range that does not include both dates i will receive only refund or only transaction payment.
Does system work correct?
If system works correct, can i unload all refunds back?
All work as it supposed to be. While it is strange logic for my opinion.
Google will change help content to cover this topics.
Refunds are always linked to date of import, not to date of initial transaction.
And, unexpectedly for me, to the last session of buyer on the moment of import. So this session does not necessarily coincide with the purchase session if buyer visited site after transaction.
That's why i get different source/medium for refund and transaction.

Firebase reporting on orders collection / sum values from nodes

I am investigating chances to use Firebase for my next project.I spent several days reading and building a "prove of concepts" project. In the demo project i build a shopping cart.In the admin section i can create products, and the client can buy it.When the client checks out i push to the closed-orders node a complex object which stores all data for the deal like this simplified version:
closed-orders
-order_id
-date
-client_id
-products
-product_id
-sale_price
-delivery_price
-qùantity
-product_id
-sale_price
-delivery_price
-quantity
....more products sold in this order
next order....
It is easy to do it that way and i can acces every different order and show it in the admin, but i want to make queries about the total sales, sales by product and a query about the profit.
Example question asked
1.What is the total quantites sold for every product from date1 to date2
2.What is the total turnover from date1 to date2
3.What is the profit for date1 to date2.
I want to answer this questions without downloading the whole dataset in the brwoser of course, because i do not think i can afford to pay for such bandwidth.Orders for one year could be tens of thousands:)
I wrote about Elastic search, keen.io but i am not sure exactly what functionality they offer and if it will answer my questions in a bandwidth friendly way.

Ubercart - Chosen Delivery Date to limit Shipping Options?

On the check out page I need users to choose a delivery date. Their needs to be multiple shipping options (that cost different amounts), but these are restricted based on what day you choose. Alternately if you choose a shipping method first, this will restrict what days you can choose for delivery.
One shipping option is ‘saturday’, and the delivery date must be a saturday.
Another shipping option is ‘next day’, the delivery must be the next day, and the order must be made before 2pm.
The final option is 'standard', which has no limitations except it cant be delivered on a saturday, and the delivery cant be the next day.
Also, I need to be able to restrict dates for delivery for all shipping options, as deliveries wont be made on bank holidays or the day after.
Im really struggling to do this so Id appreciate any pointers. If I can only achieve some of what I need that may be ok as a compromise.
Thanks
This sounds like a perfect case for using a calendar table to identify which dates are actually holidays. While I don't have specific experience with Ubercart, I've used calendar tables in a number of different solutions, and even wrote up a blog entry that details how to create and use a calendar table with a MySQL server. It's quite long, so rather than post the whole thing here, I'll just point you to the actual entry at http://www.brianshowalter.com/calendar_tables.

Resources