Justin Shreve
01b96ebea5
Hook up performance indicators to the REST API
2019-01-18 08:19:19 -05:00
Justin Shreve
96fc10747f
Add label and generated report URL to the performance indicator response.
2019-01-18 08:16:52 -05:00
Peter Fabian
e8f264c346
Moved common code to parent class.
2019-01-18 14:08:34 +01:00
Peter Fabian
ea2f5ca5d9
Fixed number of parameters for product lookup update.
2019-01-18 13:07:19 +01:00
Peter Fabian
caea199852
Updated revenue/stats REST controller to include segmentation options/fields.
2019-01-18 13:06:40 +01:00
Peter Fabian
128f52fdc8
Restrict products/stats only to supported segmentby options.
2019-01-18 12:28:12 +01:00
Peter Fabian
1d79714295
Added segmenting to products/stats.
2019-01-18 11:41:15 +01:00
Joshua T Flowers
7cdbbf87e8
Update all wc-admin endpoints to v4 ( https://github.com/woocommerce/woocommerce-admin/pull/1298 )
...
* Update all wc-admin endpoints to v4
* Add namespace for products and customers controllers
* Include product quantity in orders data store
* Add coupons to extended data in the orders data store
* Format order statuses response from database
* Hook up orders table to orders endpoint
* Add namespace to data endpoint controller
* Add namespaces to remaining extended controllers
* Use NAMESPACE var in place of wc/v4
* Update product links in orders table to products reports
* Add coupons rest controller override
* Format coupon code in response
Co-Authored-By: joshuatf <joshuatf@gmail.com>
2019-01-18 10:52:58 +08:00
Jeff Stieler
4407e05bc4
Merge pull request woocommerce/woocommerce-admin#1342 from woocommerce/fix/1090-currency-settings-formatting
...
Honor WooCommerce Settings When Formatting Currency/Price
2019-01-17 17:06:13 -07:00
Peter Fabian
25bb5e06df
Factor out the segmentation code so that it's more reusable and clutters orders/stats data store less.
2019-01-17 12:14:24 +01:00
Jeff Stieler
ddae6d3955
Add currency symbol to orders endpoint response.
2019-01-17 00:01:09 -07:00
Joshua T Flowers
da22cbdc9d
Update returning customer data to use customer ID ( https://github.com/woocommerce/woocommerce-admin/pull/1180 )
...
* Change check for returning customers to check customer_id
* Count distinct returning and new customers in totals
* Fix priority action misplacement and order date timestamp
* Change expected num returning/new customers to fix failing tests
Previously these included references to number of returning vs new orders. Update to refer to the newly updated customer count.
* Use new get_customer_id_by_user_id() to get customer ID
* Fix 0 returning customers expectation
* Move returning customer function to order stats data store
* Sync order stats on order delete
* Change date compare for is_returning_customer
* Add test case for returning customer order
* Add references to instead of 2
2019-01-17 10:47:30 +08:00
Jeff Stieler
149ee08f4b
Include all users in customer lookup table generation.
2019-01-16 10:20:11 -07:00
Jeff Stieler
11cb74cccd
Fix variable name nitpick.
2019-01-16 09:45:52 -07:00
Jeff Stieler
a2f94c11ba
Add coupons and taxes lookup table generation to reports rebuild.
2019-01-16 09:45:51 -07:00
Jeff Stieler
84732137bc
Bail out of creating batches for customers and orders if there are none.
2019-01-16 09:45:51 -07:00
Jeff Stieler
ffe11650a8
Remove now-defunct order stats background process.
2019-01-16 09:45:50 -07:00
Jeff Stieler
763cc972a7
Regenerate all reports from rebuild stats endpoint.
2019-01-16 09:45:04 -07:00
Jeff Stieler
5c6174066e
Add tests for report regeneration batch queuing methods.
2019-01-16 09:45:04 -07:00
Jeff Stieler
4786938bdf
Fix customers report tests.
2019-01-16 09:45:03 -07:00
Jeff Stieler
6eca20c5fd
Reports regenerate: add mechanism to queue an action after another completes - use to queue orders lookup init after customers lookup.
2019-01-16 09:45:03 -07:00
Jeff Stieler
4740f93985
Reports regenerate: use queue to update order stats and products lookup table.
2019-01-16 09:45:02 -07:00
Jeff Stieler
3b9a4ef4a1
Report regeneration: allow batch sizes to differ between actions.
2019-01-16 09:45:02 -07:00
Jeff Stieler
fabc1dc70b
Reports regenerate: use queue to update customers lookup table.
2019-01-16 09:45:02 -07:00
Jeff Stieler
c361119a0d
Report table generation: add method for enqueuing a large number of batch jobs with a limited batch size.
2019-01-16 09:45:01 -07:00
Peter Fabian
05c7670090
Merge branch 'master' into fix/1035
...
# Conflicts:
# includes/class-wc-admin-reports-interval.php
# includes/data-stores/class-wc-admin-reports-data-store.php
# includes/data-stores/class-wc-admin-reports-products-data-store.php
2019-01-16 12:51:23 +01:00
Joshua T Flowers
33a7cfa1b0
Store all order statuses ( https://github.com/woocommerce/woocommerce-admin/pull/1285 )
...
* Store all orders regardless of status in wc_order_stats
* Only query select statuses if status_is or status_is_not is not set
* Fix order stats example query
* Filter category store by default order statuses
* Add table_name to interval functions to avoid ambiguity
* Filter coupon store by default order statuses
* Fix interval stats by adding table_name to interval function
* Filter products store by default order statuses
* Remove unused order_status in coupons data store
* Store products with any order status
* Fix ambiguous order by call in products data store
* Apply status filter after other filters to avoid logical OR matching
* Store all coupon data regardless of order status
* Filter taxes by default order statuses
* Filter customer stats by default order status
* Filter default order statuses in variations data store
* Use excluded statuses to filter reports by default
* DRY up default excluded statuses query
* Fix up new orders data store after rebase
2019-01-16 10:23:00 +08:00
Peter Fabian
c324157483
Merge branch 'master' into fix/1035
...
# Conflicts:
# includes/data-stores/class-wc-admin-reports-orders-data-store.php
# includes/data-stores/class-wc-admin-reports-orders-stats-data-store.php
2019-01-15 11:39:39 +01:00
Peter Fabian
2fc9de0bb0
Preparation for merge of a moved file.
2019-01-15 11:36:56 +01:00
Peter Fabian
d067c2148d
Added sorting of segments so that they have predictable order.
2019-01-15 11:13:43 +01:00
Peter Fabian
ea2d5bfe35
Removed double refund subtracting.
2019-01-15 11:11:58 +01:00
Peter Fabian
93b331243b
Corrected JSON response in case no fields are selected in $query_params.
2019-01-15 11:11:14 +01:00
Peter Fabian
b593163dff
Added more general function for sorting array of arrays based on subarray's key.
2019-01-15 11:08:23 +01:00
Joshua T Flowers
14f8f08edf
Add v4 orders endpoint ( https://github.com/woocommerce/woocommerce-admin/pull/1246 )
...
* Rename orders controllers and data store to order stats
* Add orders data store and controller
* Add coupon, product, and status filters
* Add customer type query filter
* Add extended info for products and categories
* Bump API namespace to v4
* Add missing schema properties
* Set default customer_type and extended_info params
* Add orders endpoint tests
* Only use one JOIN if both excluded and included queries are used
* Optimize query calls to get product and category data
* Split product and category fetch and limit to product_cat taxonomy
2019-01-15 09:53:02 +08:00
Peter Fabian
13ec8e2851
FOrmula for shipping distribution among line items updated to reflect qty, so that sum of shipping per line item equals total shipping amount.
2019-01-14 16:10:13 +01:00
Peter Fabian
562e21ff54
Replace time interval keys with numeric ones to format REST response correctly.
2019-01-11 18:20:43 +01:00
Peter Fabian
26925872ec
Corrected return types so that no segmented queries work fine.
2019-01-11 15:25:17 +01:00
Peter Fabian
ebe76c2d43
Added missing parameter to new data stores.
2019-01-11 15:23:13 +01:00
Peter Fabian
7308aa415b
Schema updates.
2019-01-11 15:22:19 +01:00
Peter Fabian
5edc60d30b
Added refund_total also to intervals (to be able to calculate net_total correctly).
2019-01-11 11:32:59 +01:00
Peter Fabian
ff6b4ffb26
Added refund_total to unique orders table to be able to calculate net_total correctly.
2019-01-11 11:31:21 +01:00
Peter Fabian
d14426cbc1
Corrected type of parameter in the docblock.
2019-01-11 11:30:43 +01:00
Peter Fabian
69f63f48d2
Ain't Nobody Got Time for That.
2019-01-11 11:25:49 +01:00
Peter Fabian
250c0910a1
Merge branch 'master' into fix/1035
2019-01-11 11:16:01 +01:00
Peter Fabian
411ff59788
WIP on orders/stats segmenting.
2019-01-11 11:11:23 +01:00
Jeff Stieler
adf8bbeb23
Merge pull request woocommerce/woocommerce-admin#1260 from woocommerce/fix/1239-handle-between-rest-api-param
...
Handle *_between params in Reports controllers
2019-01-10 10:52:08 -07:00
Justin Shreve
350e296d2c
Allow sorting by title and SKU to report tables ( https://github.com/woocommerce/woocommerce-admin/pull/1266 )
2019-01-10 12:10:31 -05:00
Jeff Stieler
2246a1e075
Expect array value for _between params.
...
Add param validation method and normalize to min/max based by comparing values.
2019-01-09 14:19:37 -07:00
Justin Shreve
d46ce1df7a
Add store performance indicator endpoint ( https://github.com/woocommerce/woocommerce-admin/pull/1255 )
...
* Add store performance REST API endpoint
* Clean up validation, add list of allowed stats to OPTIONS endpoint, and rename endpoint to performance-indicators
* Add tests
* Add additional filters to make extending the performance indiciators area easier.
* Add docblocks for filters
2019-01-09 16:08:39 -05:00
Jeff Stieler
06763cc3a5
Don’t cast date values to strings in customers report data store since they’re allowed to be null.
...
NULL column values resulted in NOW() in the response.
2019-01-08 18:49:49 -07:00
Jeff Stieler
6e369bd145
Handle *_between parameters in Customers Report endpoint controller.
2019-01-08 17:41:48 -07:00
Jeff Stieler
b15a4bc804
Add utility method to normalize numeric “between” parameters in REST API requests.
2019-01-08 17:41:24 -07:00
Jeff Stieler
d9fd8568df
Customers report: perform a LEFT JOIN on the order stats table to include customers that have not yet placed an order.
2019-01-08 10:47:19 -07:00
Jeff Stieler
46b503dd54
Update customers report lookup table when customers/users are updated.
2019-01-08 10:33:17 -07:00
Jeff Stieler
154482acc9
Derive orders_count, total_spend, avg_order_value, and date_late_order for customer reports from the order stats report table.
2019-01-08 10:33:17 -07:00
Jeff Stieler
8105ddb38a
Add new guest customers to lookup when syncing the order stats report table.
2019-01-08 10:33:16 -07:00
Jeff Stieler
1a90840e97
Add customer_id to order stats report table to reference with customer lookup.
2019-01-08 10:30:16 -07:00
Jeff Stieler
d42e04cd59
Short circuit registered customer data update when the given ID is bad.
2019-01-08 10:29:44 -07:00
Jeff Stieler
a1317f2152
Customer lookup table: allow registration date to be null (for guests).
2019-01-08 10:29:43 -07:00
Jeff Stieler
c337944cf6
Backfill guests into customer report lookup table using order data and billing email.
2019-01-08 10:29:43 -07:00
Jeff Stieler
fa3379e62f
Customer report data store: fix handling of ‘name’ parameter in WHERE clause.
2019-01-08 10:29:42 -07:00
Jeff Stieler
714c1ee030
Customer report data store: fix comparison operator for date param “after” where clause.
2019-01-08 10:29:42 -07:00
Jeff Stieler
737331dd3b
Add missing _gmt date fields to customers report response items.
2019-01-08 10:29:41 -07:00
Jeff Stieler
04a30e668b
Customer report data store: fix SQL when where clauses are empty.
2019-01-08 10:29:40 -07:00
Jeff Stieler
1832450fd1
Update customer lookup table when orders (with registered customers) are created, updated, or refunded.
2019-01-08 10:29:40 -07:00
Jeff Stieler
2ea61e9a86
Move registered customer lookup update logic into data store class.
2019-01-08 10:29:40 -07:00
Jeff Stieler
d0e2c5162f
Place a UNIQUE constraint on the user_id key for the customer report lookup table.
2019-01-08 10:29:39 -07:00
Jeff Stieler
dd87522a5e
Customers report endpoint: only include customer link if they’re a registered user.
2019-01-08 10:29:39 -07:00
Jeff Stieler
fc20d2bb1b
Remove unnecessary subquery from customer reports data store records count query.
2019-01-08 10:29:38 -07:00
Jeff Stieler
a75a33c32f
Handle match parameter in customers report data store.
...
Note: before/after and min/max ranges are always ‘AND’.
2019-01-08 10:29:38 -07:00
Jeff Stieler
97e6f795e9
Fix copy-pasta in customers report REST controller.
2019-01-08 10:29:38 -07:00
Jeff Stieler
a180566c2f
Set default parameters for customers report query.
2019-01-08 10:29:37 -07:00
Jeff Stieler
0c919add5d
Fix query params in customers report controller.
2019-01-08 10:29:37 -07:00
Jeff Stieler
6e5fef2f7b
Include customers report files.
2019-01-08 10:29:37 -07:00
Jeff Stieler
746120e254
Change customer report lookup table columns to match API parameters.
2019-01-08 10:29:36 -07:00
Jeff Stieler
9670719fc6
Add customers report query endpoint implementation.
2019-01-08 10:29:36 -07:00
Jeff Stieler
b9f0d9fe5f
Update customers report endpoint item schema to match (visual) table designs.
2019-01-08 10:29:35 -07:00
Jeff Stieler
56beada220
Update customers report endpoint parameters to match new lookup table filters.
2019-01-08 10:29:35 -07:00
Jeff Stieler
a2154daa4c
Register customer report lookup table with core WC.
2019-01-08 10:29:35 -07:00
Jeff Stieler
281c06a5d4
Add username column to customer report lookup table.
2019-01-08 10:29:34 -07:00
Jeff Stieler
9131932910
First pass at initializing the customer lookup table with existing registered customer data.
2019-01-08 10:29:34 -07:00
Jeff Stieler
a5cf136037
Add customer report lookup table creation to initialization query.
2019-01-08 10:29:33 -07:00
Justin Shreve
f37b9319e1
Download Report API: Add path to response, fix ordering, and fix schema typo ( https://github.com/woocommerce/woocommerce-admin/pull/1248 )
...
* Add download_path to download report endpoint and fix schema typo
* Fix ordering and add tests
2019-01-08 09:51:28 -05:00
Joshua T Flowers
d9e7e1b952
Remove unused show_product_categories_in_rest function ( https://github.com/woocommerce/woocommerce-admin/pull/1235 )
2019-01-08 09:53:02 +08:00
Joshua T Flowers
f3346e9298
Add the order status column to lookup table ( https://github.com/woocommerce/woocommerce-admin/pull/1211 )
...
* Add the order status column to lookup table
* Fix order status filter for order stats
* Fix normalize order status and make static function
2019-01-08 09:16:10 +08:00
Albert Juhé Lluveras
6ca0c628b2
Connect Downloads report to REST API ( https://github.com/woocommerce/woocommerce-admin/pull/1238 )
...
* Connect downloads chart and table to REST API
* Display date picker in Downloads report
* Fix missing value for 'days' in Downloads table summary
* Fix download_count being a string instead of a number
* Minor date packages comment fixes
* Fix filters in Downloads report
* Add back empty line
* JSDoc comments style fixes
* Fix username filter not working
* Fix days counter off by 1
* Fix alignment issue
2019-01-07 12:54:42 +01:00
Justin Shreve
e3e9ccb6a4
Add `reports/downloads/stats` REST API Endpoint ( https://github.com/woocommerce/woocommerce-admin/pull/1142 )
...
* First pass at downloads REST API
* Add reports/downloads/stats endpoint.
* Add tests
* Update cache key
2019-01-03 13:00:48 -05:00
Peter Fabian
13022fee4f
WIP on orders/stats segmenting.
2019-01-03 18:59:07 +01:00
Peter Fabian
6bceabe095
Fixed extra parameters after refactoring.
2019-01-02 15:40:47 +01:00
Peter Fabian
52e1ed920f
Added placeholders for new db columns.
2019-01-02 15:29:43 +01:00
Peter Fabian
4cc042ebd8
Added back updates to product lookup update routine after wc-admin-order-functions.php was removed and code moved to individual data stores.
2019-01-02 15:26:33 +01:00
Peter Fabian
1e39bc0756
Merge branch 'master' into fix/1035
...
# Conflicts:
# includes/wc-admin-order-functions.php
2019-01-02 14:08:23 +01:00
Peter Fabian
4eaa5d911f
WIP on segmenting for orders/stats.
2019-01-02 13:35:40 +01:00
Peter Fabian
a9a0ccd185
Added refund_amount to products lookup as it needs to be reported on product level.
2019-01-02 11:33:05 +01:00
Peter Fabian
1931f3bf48
Added table name to time limit clauses.
2019-01-02 11:31:48 +01:00
Joshua T Flowers
7bbdd78bde
Add missing intervals to product reports ( https://github.com/woocommerce/woocommerce-admin/pull/1200 )
...
* Add missing intervals to product reports
* Fix failing tests for product stats API
Before and after query should be within today's date since missing intervals for other days will be filled in with remaining dates.
2018-12-31 13:20:22 +08:00
Joshua T Flowers
3f388028ac
Sort default category response by category ID ( https://github.com/woocommerce/woocommerce-admin/pull/1201 )
2018-12-28 09:50:58 -08:00
Joshua T Flowers
e0596ea249
Add 404 response to REST response for invalid note ID ( https://github.com/woocommerce/woocommerce-admin/pull/1194 )
2018-12-28 09:51:22 +08:00
Joshua T Flowers
b3979ff984
Fix order status product sync ( https://github.com/woocommerce/woocommerce-admin/pull/1151 )
...
* Move order product sync to product data store
* Move order taxes sync to taxes data store
* Move order coupons sync to coupons data store
* Use table_name constant in data syncs
* Remove order data for incomplete order statuses
* Fix report rebuild tool
* Update comments to describe create/update entry reference
* Fix data_store_init function name change
2018-12-27 11:49:00 +08:00
Joshua T Flowers
987929da83
Filter by categories query param in categories data store ( https://github.com/woocommerce/woocommerce-admin/pull/1179 )
2018-12-27 11:31:08 +08:00