Develop WooCommerce

The official WooCommerce development blog

February 28th: Dev Chat #24 — February 15, 2019

February 28th: Dev Chat #24

January’s dev chat was a fantastic – we chatted about the new WooCommerce Admin ( aka wc-admin ), the WooCommerce Blocks, and Performance and Scalability Improvements. In case you missed the chat, you can checkout the backscroll here.

The next chat will be on Thursday February 28th at 16:00 UTC in the #core channel of the WooCommerce Community Slack. If you don’t already have access to the group, you can request an invite here.

For February’s dev chat, we will be talking about what is coming in WooCommerce 3.6 which is set to release in late March.

If you have any other questions, or topics you would like to chat about during Dev Chat #24, please drop a comment below.

See you all on the 28th!


wc-admin v0.7.0 release notes — February 14, 2019

wc-admin v0.7.0 release notes

We are happy to announce the availability of a new build of the wc-admin feature plugin! If this is the first time you have heard about wc-admin, it is a new JavaScript-driven interface for managing your WooCommerce stores that is focusing on creating new and improved reports, and a dashboard to monitor all the important key metrics of your site. You can read more about the background of the project in our Alpha announcement post – or watch the keynote from WooSesh.

And while the plugin isn’t quite ready yet to be run on production sites, we would love for you to install it on a staging or test instance and try it out. You can download version 0.7.0 right here. If you do test out the plugin, and have some feedback – please do open an issue in the GitHub repository, or reach out to us in the #core channel on WooCommerce slack.

0.7.0 Highlights

Product Comparison Report

With the addition of advanced segmentation support in the REST API, you can now compare different product ( and variation ) performance over a specified date range. This allows for store operators to perform highly customized analysis of their sales data.

Tabular Data Filtering

In many of the new reports ( Products, Categories, Coupons, Taxes and Customers ), a search field is shown at the top of the table. This search utility received some great improvements in v0.7.0 and now supports fuzzy searching for data contained within the table.

Analytics Settings + Transient Notifications

A new Settings section has been added to Analytics. Currently on this screen you can chose which order statuses to exclude from the totals in your reports. Interacting with this form also shows the new Transient Notifications ( aka “toast” style notifs ) system:

Feature Flags

We have also added the ability to create “feature flags” in the project. This allows us to omit certain features from our released .zip files while we are still finishing development of them. You will notice that in the v0.7.0 release, the Activity Panels are not shown as we are still developing those further.

REST API Updates

Analytics Updates

Thank You, and What’s Next?

First a big THANK YOU to everyone that has downloaded a release to test, and also to those of you who have reported bugs. Your input is extremely valuable to us, so please keep testing and let us know if we can help!

The next two weeks we are primarily focusing on testing and bug fixing – getting things cleaned up and ready for releasing the plugin to the WordPress.org repo! We are also performing tests of wc-admin against data from woocommerce.com to validate all works as expected on high-volume sites.

If you would like to see more details about what we are working on, please visit our project board on GitHub.

wc-admin v0.6.0 release notes — January 30, 2019

wc-admin v0.6.0 release notes

We are happy to announce the availability of a new build of the wc-admin feature plugin! If this is the first time you have heard about wc-admin, it is a new JavaScript-driven interface for managing your WooCommerce stores that is focusing on creating new and improved reports, and a dashboard to monitor all the important key metrics of your site. You can read more about the background of the project in our Alpha announcement post – or watch the keynote from WooSesh.

And while the plugin isn’t quite ready yet to be run on production sites, we would love for you to install it on a staging or test instance and try it out. You can download version 0.6.0 right here. If you do test out the plugin, and have some feedback – please do open an issue in the GitHub repository, or join in the developer chat tomorrow and ask any questions you have about wc-admin then!

0.6.0 Highlights

REST API Updates

  • Order statuses are now persisted in the order stats lookup table. This prevents needing to join on other tables to filter orders by status.
  • Customer status ( new vs returning customer flag ) is now being returned in the response of the order stats endpoint.
  • Endpoints have been updated to use /v4 throughout the REST API code and client-side logic.
  • The Store Performance indicators endpoint was updated to allow returning a link and name so the UI in the dashboard is now fully powered by the REST API – more on that below!
  • The stock report endpoint can now be sorted by stock_status
  • Summary numbers have been added to the customers endpoint.
  • Major progress has been made on the segmentation feature for the stats endpoints.

Performance Updates

  • Population of the stat lookup tables is now performed using Action Scheduler.
  • Removed dependency of react-world-flags which removed 3.4mb from the size of the js build.

Analytics Updates

  • Throughout all reports and dashboard components, WooCommerce settings are now used to display currency/prices. Decimal, currency position, number of decimals, and thousands separator are all supported.
  • Updated the Country autocompleter to allow for partial (fuzzy) matches of country names.
  • Updated the Stock report to sort by stock_status by default
  • Added an advanced filter to the Product Report to allow viewing product figures for a single category.
  • Date ranges are now persisted when clicking on a specific product while viewing the Orders report.

Dashboard Updates

As promised some major improvements to the Store Performance section have landed in this release.

REST-API Driven

The entire UI seen above is fully rendered using data returned from the REST API. From the labels in each Summary Number, the values between of two periods, and the link target for each statistic are all generated server side. For developers this means the feature is fully extensible right away and will allow for deep linking into Woo Analytics reports, or your own custom pages elsewhere.

User Configurable

Each store is unique and the Store Performance section allows users to configure which stats they would like to appear in this section. Preferences are persisted in user meta, so will stick between sessions and across their devices.

New Top Coupons Leaderboard

Rounding out the updates to the Dashboard in this release – a new leaderboard that displays the Top Coupons has been added.

Much like the Store Performance section, users can toggle the leaderboards on/off, and configure how many rows of data they would like to see in each table.

Changelog

The release also includes a number of bug fixes and enhancements throughout the code base:

  • Fixed a bug which was causing a conflict with the Gutenberg Product Blocks plugin.
  • Cleaned up duplicate dom elements that were being used to render a background on focus in the chart.
  • Fixed a bug with missing thousands separator in the Y-axis of the charts component.
  • Restricted the width of filters in wide viewports.
  • Removed legacy data layer code.
  • Bug that was preventing the chart from utilizing the full plotting area was fixed.
  • Enhancement to the chart component to center align the data point when only one item is plotted.
  • Summary Number selector now properly collapses after selecting a new number on narrow viewports/mobile.
  • Fixed a bug where unit tests were failing when launched at the end of an hour.
  • A bug which was causing the SummaryNumber example in the devdocs section to fail was fixed.

What’s Coming Next?

The next two weeks we will be working on more updates to the stats lookup table logic, exploring additional options for extensibility, creating a new transient notifications component, and bug fixes and performance enhancements.

If you would like to see more details about what we are working on, please visit our project board on GitHub.

wc-admin v0.5.0 release notes — January 16, 2019

wc-admin v0.5.0 release notes

We are happy to announce the availability of a new build of the wc-admin feature plugin! If this is the first time you have heard about wc-admin, it is a new JavaScript-driven interface for managing your WooCommerce stores that is focusing on creating new and improved reports, and a dashboard to monitor all the important key metrics of your site. You can read more about the background of the project in our Alpha announcement post – or watch the keynote from WooSesh.

And while the plugin isn’t quite ready yet to be run on production sites, we would love for you to install it on a staging or test instance and try it out. You can download version 0.5.0 right here. If you do test out the plugin, and have some feedback – please do open an issue in the GitHub repository, or reach out to me on WooCommerce slack!

0.5.0 Highlights

REST API Updates

  • Added a new v4 of the Orders endpoint which supports a variety of new query arguments.
  • A new Store Performance endpoint has also been added which allows for fetching of stats details from all stat endpoints in one combined request.
  • The Customers endpoint was also shipped in this release! This new endpoint is backed by a lookup table which allows for tracking of all customers – registered and non-registered – along with seeing how many orders they have placed along with average order value.
  • And finally another new endpoint added in this release provides stats for product Downloads. Download stats can be queried by date range, product, order number, and download IP address.

Customers Report

The new customers endpoint is fully hooked up and powering the new Customers Report. This report provides a powerful look into all customer data for a store. The table lists out all registered and un-registered customers along with pertinent data about each customer such as their email address, number of orders, lifetime spend, and average order value.

Additionally you can search the customer table by customer’s name, country, username, and email address. You are also able to segment the customer data by applying custom filters for things like number of orders, total spend, and average order value.

Known Issues: Some of the advanced filter and search tools are still being actively worked on, as are some performance enhancements for stores with a large number of customers.

Downloads Report

The Downloads report is now hooked up to the new REST endpoint! This report also boasts a number of advanced filters which allows store operators to lookup download data based upon product, username, order number and IP address.

Stock Report

Live data is now viewable within the Stock Report. The report also allows for filtering a store’s entire product catalog by products that are in stock, low stock, and out of stock.

Dashboard Updates

The new analytics dashboard also received a number of big updates in this release. The logic behind the Leaderboards ( i.e. Top Products ) was improved to allow for easier creation of additional leaderboard tables. And building upon that new logic, a new Top Categories leaderboard has been added in this release.

The charts on the dashboard also were updated with some nice new features. Clicking on any of the charts will load the associated report for deeper data analysis. Also you can now select a custom interval for the charts depending on the date range selected.

Changelog

The release also includes a number of bug fixes and enhancements throughout the code base:

  • Webpack: replaced extract-text-webpack-plugin with mini-css-extract-plugin
  • Performance: Initial state of user preferences hydrated on server side during the initial page load.
  • Components: New prop to disable ellipsis menu in TableCard component.
  • Filters: New Date advanced filter
  • Bug Fix: Chart tooltip showing NaN in Safari
  • Bug Fix: Removed decimals from Y-axis in chart
  • Bug Fix: Duplicated Y-axis values in chart
  • Bug Fix: Gross Revenue Summary Number in Categories Report
  • Bug Fix: Sorting by name in Categories Report
  • Bug Fix: Dashboard Charts Responsive
  • Bug Fix: Chart Plot >88 points in narrow viewport
  • Dashboard: Charts Update on Date Range Picker change
  • Components: Add loading indicator to charts
  • Bug Fix: Product Report chart truncated

What’s Coming Next?

Much of the next fortnight will be spent focusing on various enhancements and bug fixes in both the REST API, and Analytics sections of the plugin. A new segmentation querying option is close to being finalized in the REST API for Order Stats, so we hope to add enhanced reporting capabilities that leverage these new options too. Also look for some big enhancements to the dashboard Store Performance section.

If you would like to see more details about what we are working on, please visit our project board on GitHub.

wc-admin v0.4.0 release notes — December 28, 2018

wc-admin v0.4.0 release notes

Two weeks have flown by since our last release of wc-admin, so it is time for another release and a quick synopsis of all that has changed! If this is the first time you have heard about wc-admin, it is a new JavaScript-driven interface for managing your WooCommerce stores that is focusing on creating new and improved reports, a notifications system to help keep your store running smoothly, and a dashboard to monitor all the important key metrics of your site. You can read more about the background of the project in our Alpha announcement post – or watch the keynote from WooSesh.

The plugin isn’t quite ready yet to be run on production sites, but we would love for you to install it on a staging or test instance and try it out. You can download version 0.4.0 right here. If you do test out the plugin, and have some feedback – please do open an issue in the GitHub repository, or reach out to me on WooCommerce slack!

Release Highlights

Bug Fixes

  • Fixed issues with using wc-admin in IE11
  • Many improvements to the chart, in particular issues with the Y-axis ticks.
  • Fixed overflow issue with search box in advanced filters.
  • Fix for wrong order count on Products Report.
  • Average order value bug fixed.

REST API Updates:

  • Added reports/downloads endpoint
  • Added reports/coupons endpoint
  • Added reports/coupons/stats endpoint

Documentation Updates:

  • The Report Components now have their own dedicated section in our developer documentation.

Dashboard Charts:

  • You can now view charted data within the Dashboard. Fourteen different data points are available to chart on the dashboard, and you can toggle between line and bar charts.

Known Issues:

  • The dashboard chart selections are not persisting between page loads.
  • The charts do not respond to changes in the Dashboard date range picker yet.
  • Charts need to be linked to their corresponding reports to allow users to navigate easily to the full report.

Downloads Report:

  • In the Downloads Report we added support for Advanced Filters which will allow filtering of Downloads by Product, Username, Order Number, and IP Address.

Known Issues

  • The downloads report is still using test data, and is not hooked up to the REST API yet.

Advanced Filters:

A variety of new Advanced Filters were developed during the past few weeks to add functionality needed in the Customers Report.

  • Numeric Filters allow adding in filters to report that are based off of numeric inputs. The filter supports matches for more than, less than, and between inputs of numeric values.
  • Customer Name Filter is a new autocompleter filter that allows for creating filters based upon orders for a particular customer.
  • Email Filter is another autocompleter filter that is powered by the Customers REST API endpoint and will allow quick filtering of reports by customer email.
  • Country Filter is the last new autocompleter filter added in this release.

Single Date Picker Component:

Another need of the Customers Report is the ability to create a filter based upon a single date ( i.e. Registered on/before/after a certain date ). The new DatePicker component is built upon the WordPress core DatePicker and will soon be available to use as an Advanced Filter within the project.

Category Report & Categories Data:

The Categories Report table is now hooked up to live data! Also in both the Categories and Products reports, enhanced Category Data is now displayed for nested categories. For stores that use deeply nested categories, category names are now display a breadcrumb path:

Coupons Report:

The Coupons Report is now fully hooked up to live data via the REST API. The report also offers the ability to compare multiple coupon codes and quickly see values of how many orders used coupons, and the total amount discounted.

Taxes Report:

The Taxes Report is also now serving up live data from the API. Much like the Coupons Report, you can compare multiple Tax codes on this report, and access data around how much tax was collected for orders, and shipping.

Stock Report:

The Stock Report page is now available, but many of the underlying functionality is still in development.

Reviews Activity Panel:

The Reviews Activity Panel now shows real data for all product reviews that need moderation:

What is Coming Next?

During the next two weeks, the team will be focusing on the following items:

  • REST API
    • Finalizing endpoints for Customers, and Stock Report
    • Continued work on ability to Segment Data for better visualization of comparisons
    • Updates to the core Orders endpoint to add in needed query options for the Orders Report.
  • Analytics
    • Finalize Customers, Downloads, and Stock reports with live data.
  • Dashboard
    • Improvements to Chart Block
    • New Leaderboards Section and Blocks for Top Categories and Coupons
  • Report Lookup Tables
    • Enhancements to logic that populates the lookup tables that power the reports.