Firebase reporting on orders collection / sum values from nodes - firebase

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.

Related

Woocommerce Analytics Revenue should be based on Paid date

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.

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.

Configuring WooCommerce Bookings for a purchasing a preset number of sessions/hours

I'm developing a site for a tutoring service and they have 3 types of services they sell:
Hourly Tutoring
Package Deals (Buy 10 hours, get a reduced hourly price, customer chooses when to use each of the 10 hours)
Study Courses (Signup for a class with 10 preset meeting dates, customer doesn't get to choose dates, they are already set).
WCB works great already for Service 1, where people can just pick an hour or more and book it.
I'm wondering if someone could give me any insight as to the best way to setup service 2 where someone can buy a set number of hours and then request dates for them.
And for service 3, can this be done through WCB or would it be better to just make a WooCommerce product and put the dates in the product description?
I'm new to WCB and it seems like it can do this, having someone book 10 sessions/hours and then schedule them at a later date.
I'm just not sure the best way to do it. Thanks in advance for any help!

icCube with incremental rows Inserted/Updated/Deleted

Our web application manages Employee entries on their own activities, and will show dashboards with isCube.
During the day, all the Employee will have to insert data on web application, and the dashboards will have to show real data, every time that incremental load will be scheduled.
All Employee will insert details of their own activity during the day, what they do, the projects on which they worked, the output they produced (for example how many insurance policy they have done) and so on.
During the day it is possible that Employee will have to update and delete their own datas.
So this is the reason why we would like to have incremental rows Inserted/Updated/Deleted.
Is there a way to do this or we have to schedule Full Load during the night?
Thank you
BR
Maria
This is not really a development questions, better to handle this in the standard icCube forum

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