Commit Graph

95 Commits

Author SHA1 Message Date
David Levin 52cb35f4de Correcting and clarifying analytics terms and calculations (https://github.com/woocommerce/woocommerce-admin/pull/3104)
* Relabel Net Revenue to Net Sales, revert previous refund work on Gross revenue and rename to total sales. Update the orer of all the things

* Add gross sales calculation to revenue stats endpoint.

* Restore coupon_total when updating order stats.

* Wire up gross sales to revenue report.

* Fix revenue report refunds calculation when there are no refunds.

* update net sales labels and cases in order, product and category tables

* Subtract refunded shipping and taxes from gross sales.

* pluses to minuses to fix the gross revenue and refund totals when refunding

* Add gross_sales to revenue stats orderby enum.

* Change refund labels to Returns

* Remove usage of defunct coupon_total column.

* Store refunded amount in stats table.

* Rename "gross_total" column to "total_sales".

* Net total for refund orders can be used instead of a new column.

* Rename gross_revenue to total_sales.

* Coalesce coupons total in order stats query.

SUM()ing all nulls gives null, not zero.

* Use segmentation selections to backfill missing data.

Fo when report columns and segmentation columns don't match.

* Remove errant gross_sales from expected interval test data.

* Fix gross sales tests for revenue/stats.

* Move missing segment fills back to their original locations.

* Fix remaining tests failing because of gross sales.

* Fix db upgrade function rename of gross_total column.

* Fix linter errors.
2019-11-22 10:06:14 -05:00
Jeff Stieler 17514872ad Decouple currency and numbers packages from `wcSettings`. (https://github.com/woocommerce/woocommerce-admin/pull/3277)
* Remove wcSettings dependency from currency and number packages.

Either take a configuration object in function calls or in a new class constructor.

* Use new Currency class and number format methods in client/.

Compose with store settings to keep the same API.

* Don't reintroduce lodash dependency to currency package.

* Add changelog entries to currency and number packages.

* Update docs, example, and changelog for AdvancedFilters component.

* Use precision-less formatValue() for integer report values.

* Make Currency instance immutable.
2019-11-21 16:51:52 -05:00
Joshua T Flowers 000d666096 Add tax filtering to orders data (https://github.com/woocommerce/woocommerce-admin/pull/3197)
* Add tax rates filter to orders report

* Add tax rate filters to orders data store

* Add tax rate query filters to order stats data store

* Add tax rate orders link to taxes table
2019-11-13 11:22:06 +08:00
Jeff Stieler 1ac8577fc2 Match server-side CSV export format to client-side (https://github.com/woocommerce/woocommerce-admin/pull/2987)
* Add "exportable" report interface for defining CSV export values.

* Define export values for Orders Report.

* Define export values for Products Report.

* Define export values for Categories Report.

* Define export values for Coupons Report.

* Allow commas and double quotes in CSV exported values.

* Fix in-browser export formatting of orders report products.

* Align server-side orders report export formatting with in-browser.

* Cover comma and double quote escaping in CSV export package tests.

* Define export values for Customers Report.

* Embed response links when requesting data for CSV exports.

* Define export values for Downloads Report.

* Move reusable report export functions to a trait.

* Define export values for Stock Report.

* Define export values for Taxes Report.

* Define export values for Variations Report.

* Define export values for Revenue Report.

* Always pass export row data through the filter.

* Fix formatting in test case for CSV coupon export.

* Quote escape CSV headers in client-side export.

Escape values with spaces as well.

* Check if inventory is managed at the product level before using the stock status/quantity.

* Prevent CSV injection in csv-export package.
2019-10-24 09:41:16 -07:00
Darren Ethier fee65dd6ac Decouple wcSettings from published packages. (https://github.com/woocommerce/woocommerce-admin/pull/3001)
* refactor wcSettings in components to use new api

* update test snapshot

* refactor wcSettings in other packages

* fix how defaults are set for setting

* decouple siteLocale from ReportsFilters and AdvancedFilters

* Decouple currency settings from packages

AdvancedFilters, ReportFilters, and NumberFilters now receive currency info as props.

* decouple currency settings from `ReportChart`

* decouple `wcAdminAssetsUrl` setting from `EmptyContent`

- also refactors to remove the need for `ImageAsset` component.

* decouple OrderStatus from wcSettings

* decouple wcAdminUrl setting from ProductImage component

- this also implements a SVG for default product image.

* remove export for image-asset that is no longer present

* remove console.log

* update test snapshots for ProductImage
2019-10-11 11:45:45 -04:00
Darren Ethier d728d38219 Refactor: Alternative approach to implementing extendable settings from the server (https://github.com/woocommerce/woocommerce-admin/pull/2917)
* integrate with new asset data registration (php side)

- includes back-compatibility.

* update js configuration and implement settings alias

- this aliases `@woocommerce/wc-admin-settings` to the settings api exposed via blocks (either the blocks plugin or core) and all the settings provided via the server.
- Adds fallback for back-compat if `wc.wcSettings` is not available in the environment (fallsback to `wcSettings`).

* initial pass to update all wcSettings direct usage to the new api

- this is just an initial pass, more can be done in separate pulls.

* missed one spot for adding new filter implementation

* fix incorrect jest config

* Avoid unnecessary assignment and directly return.

* Remove unnecessary defaults

* Fix inline comment text case.

Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>

* Remove unnecessary inline comment.

* use @todo instead of TODO

Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>

* fix incorrect reference in webpack config.

* add missing import and slightly delay dependency injection for scripts

* update get-setting and set-setting callbacks

* disable lint rule for console.error on dev doc builds
2019-09-23 17:47:08 -04:00
Jeff Stieler 2fed2f2467 Fix report column labels on client side. 2019-09-04 07:49:37 -07:00
Jeff Stieler 079748cbb2 Remove "filter" from the report charts filter names. 2019-08-28 07:55:55 -07:00
Jeff Stieler 7a28fbc0ff Add filters for all report filter configs. 2019-08-23 09:41:42 -07:00
Connor Jennings d44af04add Update client/analytics/report/orders/table.js
Co-Authored-By: Joshua T Flowers <joshuatf@gmail.com>
2019-08-20 09:15:55 -04:00
Connor Jennings 68a8012f57 CSV download of Orders now shows coupons in Coupon(s) column 2019-08-19 12:45:57 -04:00
Paul Sealock e32b5560c0 Advanced Filters: Add Tracks events 2019-06-28 12:34:41 +12:00
Paul Sealock 34aa71cfbb Dashboard Charts: simplify data 2019-05-21 08:09:49 +12: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 0ed477fc3c Fix customer type filter param in orders report (https://github.com/woocommerce/woocommerce-admin/pull/2169) 2019-05-07 13:17:43 +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 b29b232a46 pass in filters 2019-03-25 13:03:53 +13:00
Paul Sealock 6d5484aa87 Fix table links to internal reports 2019-03-19 14:27:31 +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
Joshua T Flowers 27acab72b8 Define extended_info in case query is filtered (https://github.com/woocommerce/woocommerce-admin/pull/1728) 2019-03-05 10:56:47 +08:00
Justin Shreve fce16ade7a Display order number on reports (https://github.com/woocommerce/woocommerce-admin/pull/1706)
* 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.
2019-02-28 09:14:21 -05:00
Albert Juhé Lluveras b61dff32f9 Sort tabular data when selecting a Summary Number (https://github.com/woocommerce/woocommerce-admin/pull/1564)
* Sort tabular data when selecting a Summary Number

* Fix 'orderby' param in orders endpoint
2019-02-15 11:54:41 +01:00
Tiago Noronha db2ed027c4 Add strings back to config.js files with title placeholders 2019-02-14 20:53:08 +00:00
Tiago Noronha 9d8ed29ea3 IE11: Move placeholders from config files to components and add span around title 2019-02-14 01:35:47 +00:00
Albert Juhé Lluveras 84ef5ffb89 Show empty table when search returns no results (https://github.com/woocommerce/woocommerce-admin/pull/1452)
* Show empty table when search returns no results

* Fix singular wrong string for 'orders'

Co-Authored-By: Aljullu <aljullu@gmail.com>

* Check if search returned 0 results inside table components instead of passing a prop
2019-02-05 13:00:37 +01:00
Timmy Crawford 10c6016d4c Update usage of lib/number to @woocommerce/number (https://github.com/woocommerce/woocommerce-admin/pull/1400)
* Remove usage of lib/number

* Remove formatNumber usage when currency is used.

* Add wc-number as a dependency of wc-currency.

* Add locutus as a dev dependency.

* Add number to test helper.
2019-01-29 08:48:46 -08:00
Albert Juhé Lluveras 95c21e0cc3 Move 'getLabels' functions into lib/async-requests (https://github.com/woocommerce/woocommerce-admin/pull/1379)
* Move labels loading logic into a lib

* Avoid making API calls when displaying Order labels

* Move lib/labels into lib/async-requests

* Rename 'getCustomerLabel' to 'getCustomerLabels'
2019-01-24 10:35:27 +01:00
Paul Sealock 35b3579632 Orders Report: Point table links to wc-admin reports with persisted query 2019-01-22 11:32:33 +13: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
Albert Juhé Lluveras 059cd0ef0d Set default order to 'desc' in time tables (https://github.com/woocommerce/woocommerce-admin/pull/1341) 2019-01-17 22:14:12 +01:00
Jeff Stieler 6ed8ea117a Refactor formatCurrency() to use store settings for formatting rather than store locale. 2019-01-17 00:04:57 -07:00
Albert Juhé Lluveras f009506a45 Makes table dates accessible (https://github.com/woocommerce/woocommerce-admin/pull/1274)
* Create 'Date' component to render accessible dates

* Add tests
2019-01-14 10:54:44 +01:00
Joshua T Flowers 80fe765657 Use a date instead of hour for single dates in report tables (https://github.com/woocommerce/woocommerce-admin/pull/1208)
* Use a date instead of hour for single dates in report tables

* Add hour to allowed list when day difference is less than 1

* Prioritize hour format over day and set day as default for tables

* Add default intervals for report tables

* Use explicit date format in report tables

* Add constant for default table format

* Restore allowed intervals for >1 && <7 days
2019-01-09 08:24:49 +08:00
Albert Juhé Lluveras 03adb993c9 Use <Link> instead of <a> for Orders table link 2018-12-18 10:44:43 +01:00
Albert Juhé Lluveras 501842a421 Rename 'isError' methods to 'getError' when they return an object instead of a boolean 2018-12-15 13:38:54 +01:00
Albert Juhé Lluveras f9533afdda Rename 'totalCount' to 'totalResults' (https://github.com/woocommerce/woocommerce-admin/pull/1093) 2018-12-14 15:56:52 -08:00
Kevin Killingsworth a7aed85244 Add column visibility prefs to all tables (https://github.com/woocommerce/woocommerce-admin/pull/1082)
* Add column prefs to the other tables

This adds column prefs to the other remaining report tables.

* Table columns: Override defaults with user prefs.

* table columns: Add remaining analytics tables

* user read/update operation: Combine responses

This combines the response handling for the read and update operations.
2018-12-13 14:34:23 -06:00
Albert Juhé Lluveras 96d930b119 Fix Orders table summary display 'order' in singular when it should be plural (https://github.com/woocommerce/woocommerce-admin/pull/1003) 2018-12-05 15:54:52 -06:00
Joshua T Flowers 755b9c94f7 Reduce order table net revenue by refund total (https://github.com/woocommerce/woocommerce-admin/pull/988)
* Reduce order table net revenue by refund total

* Use order utils to get refund total
2018-12-05 10:06:00 +08:00
Joshua T Flowers 9e1cb88dfa Add filters for order tables column headers/rows (https://github.com/woocommerce/woocommerce-admin/pull/781)
* Add filters for order tables column headers/rows

* Move filters inside rows

* Rename filter constants

* Apply filters directly to rows

* Rename Orders table filter to be more consistent with core

* Filter entire reports table
2018-12-05 09:44:32 +08:00
Peter Fabian 1acb9827e7 Merge branch 'master' into fix/749
# Conflicts:
#	includes/data-stores/class-wc-admin-reports-products-data-store.php
2018-12-03 16:21:04 +01:00
Albert Juhé Lluveras bda7d0a6ee Use ReportTable in Orders report (https://github.com/woocommerce/woocommerce-admin/pull/968)
* Use ReportTable in Orders report

* Get totalCount from hte X-WP-Total header

* Order props alphabetically

* Cleanup report table 'tableData' prop

* Use short-circuit evaluation
2018-12-02 21:40:57 -06:00
Albert Juhé Lluveras 293d58615d Add screen reader labels to table headers (https://github.com/woocommerce/woocommerce-admin/pull/964)
* Add screen reader labels to tables

* Add missing propType
2018-11-30 14:44:02 -06:00
Kevin Killingsworth 847131c6c9 Add wc-api and "Fresh Data" (https://github.com/woocommerce/woocommerce-admin/pull/833)
* data: Add @fresh-data/framework to package.json

* data: Add fresh-data and replace orders in table

This PR adds fresh-data with a WooCommerce API spec to fulfill order
information. It then replaces the existing selectors for the orders
table with the new selectors as a proof-of-concept.

* wc-api: Add temporary code for `withSelect`

This adds temporary code for a `withSelect` function outside of
`@wordpress/data` until the context PR is merged:

https://github.com/WordPress/gutenberg/pull/11460

* wc-api: Update fresh-data to 0.5.0
2018-11-29 09:57:49 -06:00
Paul Sealock 47291b3873 Filters: code -> coupon in config 2018-11-29 09:29:12 +13:00
Albert Juhé Lluveras 0acc43a551 Use numberFormat() to format all non-currency numbers in tables (https://github.com/woocommerce/woocommerce-admin/pull/913) 2018-11-25 21:31:38 -06:00
Albert Juhé Lluveras cc86233e0f Add Coupons report table (https://github.com/woocommerce/woocommerce-admin/pull/867)
* Add Coupons report table

* Fix propTypes warning in CouponsReportTable

* Remove unnecessary constructors from tables
2018-11-15 21:35:10 -06:00
Jonathan Belcher c102e78523 Creates a helper function to get selected chart (https://github.com/woocommerce/woocommerce-admin/pull/794)
* Creates a helper function to get selected chart

* remove console log

* Make sure charts is never empty

* Clarify docs
2018-11-07 12:19:59 -05:00