* Make customer name extendable
* Update get_customer_name to favor user profile information
* Update customer name on profile update
* Add tests around customer name getting and setting
* Prefix customer name filter with woocommerce_reports_
* Add leaderboard controller and endpoint
* Add existing leaderboard stats to leaderboard endpoint
* Add persisted query to leaderboard params
* Add leaderboard endpoint tests
* Check if extended_info params are set before assigning
* Change number param input format to mixed inside wc_admin_number_format
* make is sortable true.
* Variations endpoint: Fix sorting by SKU when there is an active comparison
* Cleanup
* Extract FROM parameter logic to 'get_from_sql_params'
* Remove unnecessary 'get_order_by_sql_params' from Products and Variations data stores
* Separate notes controller request args and add collection params
* Fix page param var
* Fix collection params sanitization
* Allow array of note types to be queried
* Add order and orderby collection params to notes controller
* Allow sorting by order and orderby params in notes data store
* Make sure notes are ordered by date and unread matches inbox note types
* Allow status or type params to use an array of items
* Add tests for notes ordering
* Remove unnecessary query arg assignment in the notes data store
* Update get_notes_count to use array for status and type
* 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
* Move product low stock count to controller param instead of data store
* Add totalCount to items API
* Extract unread indicators to separate file and add unread stock
* Trim initial search variable in wp_query
* Parse low stock option as an absolute integer
* Fix low stock meta comparison with product specific low stock amount
* Make group by query function static
* Check for empty strings and null values for product low_stock_amount
* Add product search option REST API
* Remove product_name search in favor of sku and name searching
* Search by product search term instead of generic search in autocompleter
* Add product search option REST API
* Override existing search param instead of new param
* Remove product_name search in favor of sku and name searching
* Add product search param to variations controller
* Add group by to prevent duplicate variations in response
* Use product_search in variation autocompleter
* Trim whitespace in product_search query
* Change variation search placeholder
* Override search param instead of using new product_search param
* Add baseSearchQuery to prevent losing single_product filter in variations report
* Unset s param instead of setting to false
* Add product search option REST API
* Remove join and where filters for wp_query after rest response
* Remove product_name search in favor of sku and name searching
* Allow searching for products to compare by product sku
* Search by product search term instead of generic search in autocompleter
* Trim whitespace on product_search query
* Override existing search param instead of new param
* Use double quotes to avoid escaping search query
* Unset s param instead of setting to false
* Add coupon code search filtering to REST API
* Use search_code param in coupon search results
* Use search_code param in coupon autocompleter
* Override search param instead of adding search_code param
* 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".
* Add store notice around processing historical data.
* Cleanup
* Handle PR feedback.
* Clean up `add` logic and add empty content_data. Also add logic to get_notes_count so that we can hide unactioned statuses.
* Add the ability to update a note, and to also mark a status when an alert is clicked.
* Remove mark_actioned call on sync
* add missing todo
* Make categories endpoint return zero-value items
* Rename PHP variable to make it more specific
* Remove uneeded lines
* Make variations and coupons endpoints return zero-value items
* Remove second parameter from get_ids_table
* Make categories endpoint return zero-value items
* Rename PHP variable to make it more specific
* Remove uneeded lines
* Remove second parameter from get_ids_table
* Use menu_order to lower the claim priority of WC Admin scheduled actions.
* Use a ActionScheduler_Store subclass to modify menu_order.
* Check to make sure we’re overriding only AS’s built in WP Post data store.
* Make products endpoint return zero-value items
* Make rates endpoint return zero-value items
* Several fixes
* Add tests
* Simplify code
* Merge both queries into one to simplify code
* Rename 'get_outer_from_sql_params' to 'get_from_sql_params'
* Add button input type to analytics settings
* Add callback prop and disabled state to setting
* Add rebuild tool to settings page
* Re-enable setting if error is caught
* Remove rebuild tool from system tools page
* Move report build success message to API response
* Add back key for settings map
* Fix misspelled option group classname
* Conditionally add rebuild tool to non-wc-status page instead of removal hook
* Display order number on reports, and add to API response.
* Add method for getting order number, avoiding loading the data store if no filter is attached.
* Add post_title__like param to wp query
* Add product_name filter option to products rest controller
* Change autocomplete search to use product_name param
* Change add_wp_query_post_title_filter to static method
* Only add wp_query filter in the products rest controller
* Add code to collection params to allow searching
* Add include param to tax rest api
* Remove duplicate get_collection_params
* Revert to previous taxes getLabel config
* Add in hook to rest tax controller modify tax items query
* Modify query string for getting tax code items
* Add code to collection params to allow searching
* Change filter to use entire tax code without null values
* Hook up tax code filter to autocomplete search
* Overwrite get_items instead of using hooks for code filtering
* 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
* Execute all pending jobs when debug mode is enabled
* Only process single order jobs immediately
* Replace wp_debug condition with a filter
* Bypass scheduling and process the order on save_post
* Change hook name to include order
* Only show customer name if available
* Map customer data to extended_info in orders API response
* Add gross total and refund total to orders API response
* Hook up report orders endpoint to activity panel orders
* Add on-hold orders to activity panel orders
* Destructure extended_info in case of filtering
* Add customer link to orders panel
* Add the ability to search name, username, and email fields on the customer endpoint, update autocompletors, add in include parameter.
* Update the username to be returned in the download response, update download filtering based on customer id, and only rename include parameter on main customers endpoint.
* Add item and shipping refund calucations to taxes on order update
* Sync taxes on refund delete
* Fix up tax stats API testing
* Add refunds to tax stats API tests
* 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
* 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
Fixes the follow PHP error:
```
PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function WC_Admin_Reports_Data_Store::remove_extra_records(), 6 passed in wp-content/plugins/wc-admin/includes/data-stores/class-wc-admin-reports-taxes-stats-data-store.php on line 232
```
* Add manage_stock to stock controller response
* Add manage_stock property to stock report tests
* Add changelog entry
* Make stock quantity float instead of int
* Add manage_stock to the products API response
* Check for manage_stock in products table
* Add manage_stock property to product API tests
Product detail report and comparison
Code cleanup
Fix 404 on product variations endpoint after rebase
Fix up tests
Fix loading indicators and add some checks around malformed variation response
Add date filtering SQL bits to the variations query
Handle PR feedback: Fix viewport, fix duplicate product issue, fix legend display reset, fix bargraph overflow, fix some coding standards/whitespace, add extra variation santiziation.
Fix scroll on wide charts, and fix undefined prop getting passed into report chart render
* Add settings page routes
* Add control options for excluded statuses
* Add control options for excluded statuses
* Add excluded order statuses to rest api
* Add wc settings to wc-api
* Add wc settings to wc-api
* Split and validate multiselect values in settings controller
* Add wcAdminSettings to wcSettings global
* Set initial excluded statuses from serverside wcSettings data
* Add extensible filter for wcSettings global
* Split arrays into comma separated strings in wc-api
* Extract setting as separate component
* Extra settings to config file
* Add checkboxGroup option as input type
* Separate status types into default and custom groups
* Add setting option styling
* Add responsive styling for settings
* Fix wpClosedMenu and wpOpenMenu for settings page
* Add support for resetting to default values
* Only show checkbox group if options are available
* Add proptypes to Setting component
* Add extensible filter to analytics settings
* Add readme for settings config and extensibility
* Hook up excluded status settings to reports
* Pass object to settings API instead of comma delimited string
* Fix inpuType -> inputType typo
* Remove hasError from constructor
* Bump settings API to v4
* Use interpolateComponents instead of dangerously setting html
* Use empty array in initial excldued statuses setting value if none is retrieved
* Remove double check for refunded status in default order statuses
* Update settings wc-api to use namespace
* Add aria=labelledby to checkbox group
* Add namespace v4 for WC product/categories endpoint
* Update categories wc-api to use v4 namespace constant
* Add single product category filter to product categories report
* Add link to filtered product report from category report
* Use persistedQuery for category links
* Check if category is defined before displaying category link
* Remove selectedTags when filter does not match queried filter
* REST API: Allow sorting by stock_status in stocks endpoint
* Set stock_status as default orderby
* Sort by both stock status and quantity in meta query
* Use stock_status sort order by default in Stock table (https://github.com/woocommerce/woocommerce-admin/pull/1340)
* Reverse stock quantity order when sorting by stock status
* Add label and generated report URL to the performance indicator response.
* Hook up performance indicators to the REST API
* Handle PR feedback
* Fix setting default values
* 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>
* 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
* 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
* 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
* 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
* 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
* 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.
* 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
* Switched Average order value calculation from gross to net revenue.
* Updated tests to reflect switch of average order value from gross to net revenue.
* Add support for product cats in wp rest api
* Add categories to WC API
* Add category breadcrumbs component
* Increase per_page limit size for product cat API
* Use wc/v3 API to pull product categories
* Return category IDs in API
* Add categories to product reports
* Add category IDs test for REST API
* Switch to getResource instead of require for total count selector
* Fix product report data issue when issuing item refund
* Modify product order lookup stats when refund is given
* Remove products where orders are refunded
* Remove unused var and add comment about early return
* Reduce product revenue if quantity still remains after refund
* Fix subtotal array key and abs value for float
* Change product_gross_revenue to product_net_revenue
* Change product_gross_revenue to product_net_revenue
* Change product_gross_revenue to product_net_revenue in category data store
* Change to net_revenue in frontend category report
* Hook up taxes to endpoint
* Hook up tax stats endpoint
* Add default tax stat totals for empty results
* Create subtotals from intervals in API
* Change orders to orders_count to keep consistent naming
* Add Live Data to Reviews Panel
Adds the ability to embed the product in a product review response
* Clean up code needed to embed some product fields.
* Add API response tests
* Add taxes endpoint and data store
* Add sorting options and normalize orderby param
* Add report taxes unit tests
* Add tax rate to response
* Add country, state, priority, and name to response
* Fix tax codes query param
* Add class comment
* Add missing to record query
* Add comment about ambiguous column