Commit Graph

53 Commits

Author SHA1 Message Date
Jeff Stieler f75e3c7820 Check for good WC_Orders before using instance methods. 2019-06-20 08:31:10 -06:00
Joshua T Flowers ee81663f99 Prevent duplicate customer imports (https://github.com/woocommerce/woocommerce-admin/pull/2428)
* Get customer ID from existing order ID if present

* Use get_report_customer_id method in order for both orders and refunds
2019-06-20 12:03:55 +08:00
Albert Juhé Lluveras 8bc2261c8a Add date_created_gmt property to orders endpoint (https://github.com/woocommerce/woocommerce-admin/pull/2086)
* Add date_created_gmt property to orders enpoint

* Make date_created properties of type date-time and improve descriptions
2019-06-12 11:21:56 +02:00
Joshua T Flowers c87ab4eed7 Update how refunds are displayed in tables (https://github.com/woocommerce/woocommerce-admin/pull/2102)
* Add customer functions to order and refund classes

* Use parent order for refund order number

* Add renderCurrency method to format negative currencies

* Allow negative number of items for refund fields in database
2019-05-16 13:04:37 +08:00
Joshua T Flowers c6a6e737c4 Add refund filtering to order reports (https://github.com/woocommerce/woocommerce-admin/pull/2179)
* Add customer functions to order and refund classes

* Extract shared order and refund methods to trait

* Add refund filter to advanced filters in orders report

* Filter refund types in orders data store

* Extract refunds subquery to parent report data store method

* Add refund subquery filtering to order stats data store

* Add tests around refund type filtering

* Change the default option for the refunds filter
2019-05-10 14:56:57 +08:00
Joshua T Flowers 3382fb7011 Record refunds separate from order entries (https://github.com/woocommerce/woocommerce-admin/pull/2083)
* Sync refunds on order sync

* Separate order and refund class extensions

* Add customer functions to order and refund classes

* Change products store to work with refund amounts

* Return early for refunds in coupon data store

* Allow refund processing in tax data store

* Remove unused refund amounts from tables and data stores

* Change order counts to parse out refund entries

* Include refunded orders in default queried statuses

* Only process order number filter on shop order post types

* Extract shared order and refund methods to trait

* Fix renamed schedule_single_order_import method

* Bump PHP and WP version requirements
2019-05-10 14:39:25 +08:00
Joshua T Flowers 753780bf7b Onboarding: Add levels REST API (https://github.com/woocommerce/woocommerce-admin/pull/1938)
* Add levels rest controller

* Add default levels

* Add onboarding level API tests

* Drop all since tags

* Make pre-response levels array associative for easier formatting

* Fix level tests for associative array
2019-04-05 10:35:30 +08:00
Joshua T Flowers 0c5c1c3db4 Remove coupon_total from order stats table (https://github.com/woocommerce/woocommerce-admin/pull/1975)
* Remove coupons_total from order stats table

* Replace discount amount with coupon objects in stat tests
2019-04-03 09:37:17 +08:00
Joshua T Flowers b03362da68 Cast order totals as floats when calculating net total (https://github.com/woocommerce/woocommerce-admin/pull/1945) 2019-04-02 13:43:12 +08:00
Joshua T Flowers 42ddfc0108 Add coupons count to data store and hook up to summary numbers in orders report (https://github.com/woocommerce/woocommerce-admin/pull/1912)
* Change coupons sum to distinct coupon count in REST API

* Hook up unique coupon count to orders summary numbers

* Add coupons count to order segmenting

* Add coupons count to expected stats in order test and revenue tests
2019-04-01 10:16:57 +08:00
Paul Sealock f9ab21e745 Sync: Avoid infinite loop when REPLACE-ing SQL rows 2019-03-28 16:19:11 +13:00
Jeff Stieler bfe5a75e98 Update text domain. (https://github.com/woocommerce/woocommerce-admin/pull/1795)
* Translation call text domain change from “wc-admin” to “woocommerce-admin”.

* Fix .pot file generation.

* Fix errantly closed array item in /revenue/stats controller.

* Rename plugin zip, main file, and repo name to "woocommerce-admin".
2019-03-13 11:14:02 -06:00
Peter Fabian 1b90296bba Updated timezone handling to be in line with other WC code. 2019-02-25 20:05:25 +01:00
Peter Fabian 3f9a43fdd0 Added timezone to datetime to correctly identify first order(s).
If default PHP timezone is UTC, then any order between first order and positive UTC offset is identified as 'first', which is incorrect.
2019-02-23 18:38:45 +01:00
Peter Fabian 3ce686e6cd Updated is_returning_customer definition to use refactored function. 2019-02-22 22:06:21 +01:00
Joshua T Flowers aef11ef586 Refactor customer ID creation (https://github.com/woocommerce/woocommerce-admin/pull/1619)
* Fix indendtation for table creations

* Refactor how customers are created on order update

* Check if user has a role of customer or previous orders before storing

* Add tests for user creation

* Allow null emails for customers

* Only select customer_id in guest ID query
2019-02-20 10:30:00 +08:00
Joshua T Flowers 44604bcd02 Reduce net order total by refunded amount less tax and shipping refunds (https://github.com/woocommerce/woocommerce-admin/pull/1600)
* Reduce net order total by refunded amount less tax and shipping refunds

* Fix net_totals in tests with refunds
2019-02-20 09:39:42 +08:00
Peter Fabian f7d0d2379f Merge branch 'master' into fix/489-date_date_gmt
# Conflicts:
#	includes/class-wc-admin-api-init.php
2019-02-15 17:07:38 +01:00
Joshua T Flowers cba9ab61b2 Update returning customer values to respect excluded statuses (https://github.com/woocommerce/woocommerce-admin/pull/1557)
* Excluded statuses from customers oldest orders

* Fix tests for returning customer where excluded statuses are used

* Remove save_post hook used for testing

* Extract conditions for first order swapping
2019-02-15 10:09:16 +08:00
Joshua T Flowers 746d062f09 Check and update customer first orders to fix returning_customers (https://github.com/woocommerce/woocommerce-admin/pull/1517)
* Add get_oldest_orders function to customer data store

* Check if is first order in is_returning_customer()

* Check if the customers first order has changed and update all orders respectively

* Fix check for empty oldest_orders array

* Change avg_items_per_order to number instead of integer

* Fix failing tests for new/returning customers

Only the first orders with product 1 and without coupons should be new per each customer

* Remove sleep functions from tests

* Assign second order to a variable for legibility

* Fix second order assignment and check if set
2019-02-14 11:14:01 +08:00
Peter Fabian a6761fc606 Merge branch 'master' into fix/489-date_date_gmt 2019-02-10 17:24:54 +01:00
Peter Fabian d71225d7d1 Use default after and before parameter values if no values are provided by the user. 2019-02-10 17:16:43 +01:00
Peter Fabian b3c3aca973 Centralized default before and after parameters. 2019-02-10 17:07:45 +01:00
Peter Fabian 5fbf5b62d7 Normalize datetimes before doing any further processing with the input from the user.
Also, passing DateTime objects around instead of string so that timezone info can be easily attached to it.
2019-02-08 18:11:04 +01:00
Joshua T Flowers 2b0c8089c0 Try: Fix failing returning customer test (https://github.com/woocommerce/woocommerce-admin/pull/1496)
* Don't check against same order when checking for returning customer

* Sleep between order creation

* Add todo removal comments for sleep functions
2019-02-07 15:49:56 +08:00
Joshua T Flowers b7379def1b Format todo comments to match WC Core format (https://github.com/woocommerce/woocommerce-admin/pull/1474)
* Format todo comments to match WC Core format

* Remove variations todo comment
2019-02-06 14:41:53 +08:00
Claudio Sanches d26e82b526 Merge branch 'master' into fix/1307 2019-02-05 16:20:08 -02:00
Peter Fabian ff129d948c Merge pull request woocommerce/woocommerce-admin#1383 from woocommerce/fix/1012-2
Fixes for ordering and zero-filling.
2019-02-05 19:08:06 +01:00
Claudio Sanches 10f40d4cf3 Merge branch 'master' into fix/1307 2019-02-05 15:48:59 -02:00
Claudio Sanches e0004eb461 Merge branch 'master' into feature/754 2019-02-05 15:42:34 -02:00
Peter Fabian b69d2aa2ab Merge branch 'master' into fix/1012-2
# Conflicts:
#	tests/reports/class-wc-tests-reports-orders-stats.php
2019-02-05 18:34:15 +01:00
Claudio Sanches 58cdf6a7f9 Fixed hook names 2019-02-04 16:02:49 -02:00
Claudio Sanches a1976bc1bc Improve action/hook naming 2019-02-04 15:58:37 -02:00
Jeff Stieler 11d18a8b5b Queue individual order syncing instead of handling immediately. 2019-02-04 09:18:49 -07:00
Jeff Stieler 9f3c95ae63 Rework lookup table data store sync methods to return a meaningful status. 2019-02-04 09:09:44 -07:00
Claudio Sanches 8c0c01a3da Merge branch 'master' into feature/754 2019-02-01 18:27:23 -02:00
Claudio Sanches 31e8dc9332 Merge branch 'master' into fix/1307 2019-02-01 18:24:26 -02:00
Claudio Sanches 707067e255 Docblocks 2019-02-01 17:02:15 -02:00
Claudio Sanches 68e0c98828 New action name: woocommerce_delete_reports_order_stats 2019-02-01 16:10:00 -02:00
Claudio Sanches 07f3f33566 Introduced new hooks for jetpack sync 2019-02-01 15:43:24 -02:00
Claudio Sanches 766fdeeada Remove extra validation 2019-01-29 18:50:44 -02:00
Claudio Sanches 272203b879 Introduced new woocommerce_reports_orders_stats_data_deleted hook 2019-01-29 18:50:15 -02:00
Peter Fabian e56009cfdc Updated todo format to be in line with the rest of WooCommerce. 2019-01-29 13:29:50 +01:00
Peter Fabian 33f1240987 Fix to remove extra intervals correctly. 2019-01-23 17:18:39 +01:00
Peter Fabian 507ee13825 Merge branch 'master' into fix/1035
# Conflicts:
#	client/analytics/report/customers/table.js
#	includes/api/class-wc-admin-rest-reports-orders-stats-controller.php
#	tests/reports/class-wc-tests-reports-orders-stats.php
2019-01-23 10:13:55 +01: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
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 ffe11650a8 Remove now-defunct order stats background process. 2019-01-16 09:45:50 -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