All 14 Bulk Editor sections
Display settings
Per editor and per user: which columns to show or hide, their order (drag, or Move up and Move down), rows per page (1–200), sort field and direction, wrap long text, keep filters. For products also whether variations are listed under their parent and whether filters apply to variations too. Column widths are remembered when you drag a column edge.
Sorting the list#
The list is sorted on the server, across every page of it, not only the rows on screen: page 1 sorted by stock holds the lowest stock in the whole list, filters included. Choose the sort in Display with Sort by and Direction, or press the arrow button in a column's heading. A column that can sort the list has that button; the others (images, categories, descriptions, attributes and the like) have none. The first press sorts the way that column is usually read, newest or highest first for dates, Units sold and ratings, lowest first or A to Z for the rest, and the next press reverses it. The arrow shows the direction, and Display shows the same choice, so saving Display keeps it and a saved view keeps it too. A heading's own press, beside the button, still selects the column for the bulk tools. With edits not yet saved, the button asks first, as moving to another page does, and Cancel keeps your edits and the order.
Direction names its two ways for the kind of value chosen: newest or oldest first for dates and IDs, highest or lowest first for numbers, A to Z or Z to A for text.
What each editor can sort by:
- Products: ID, name, SKU, price (the price a customer pays, which no column shows, so it is in Sort by only), regular price, sale price, stock, units sold, average rating, review count, publish date, last modified, menu order, weight, length, width, height, and custom fields shown as Text, Number or Date.
- Orders: ID, order date and order total, on either order storage.
- Coupons: ID, code, created, amount, expiry and usage count.
- Reviews: ID, date and rating.
A record without a value (no stock tracked, no sale price, a custom field left empty, a product nobody has rated, a coupon that never expires, a reply, which has no rating) comes last, whichever way the list runs, and stays in the list: sorting never hides a record. Records with the same value keep one order from page to page, by their ID, so paging through a sorted list meets each record once while the values stay as they are. A value that changes between two pages (an order taking stock from a product while the list is sorted by stock, say) moves that record, so going from page to page in the grid can then show it twice or not at all; reload to see the list as it is now. A change to All N records in this list reads the list by ID whatever it is sorted by (see Bulk tools), and an export takes the list's order once, when it starts (see Exporting what you are looking at), so both meet each record once. Variations stay under their product. A variable product sorts by its own row: it has no regular or sale price of its own and usually no stock (its variations have them), so it comes after the products that do when the list is sorted by those; by price it sorts by its lowest variation price when the list runs up and its highest when it runs down, as WooCommerce's own shop pages do. Stock, units sold and average rating are sorted by WooCommerce's product lookup table, which WooCommerce keeps up to date as products are saved and orders placed; the columns show the product's own figures. Stock or sales written straight into the database (by some import tools, say) do not reach that table, so the order can then disagree with the figures in the column: run WooCommerce > Status > Tools > Product lookup tables > Regenerate to bring it up to date.
Sorting by a value that is not a column of the record itself (a price, a SKU, a custom field, an order's total, a coupon's amount, expiry or usage, a review's rating) reads that value for every record in the list for each page, so on a shop with a very large number of records it takes longer than sorting by ID or date. An export reads it once, when it starts, and a change to every record in the list not at all, as it reads the list by ID.
Units sold, average rating, review count and last modified#
Products has four more columns, all read only: Units sold (WooCommerce's own count, its total sales: it adds an order's items when the order is processing, on hold or completed, and takes them off when the order is cancelled, binned or deleted; a refund does not take them off), Average rating and Review count (from the product's approved reviews, as WooCommerce counts them; a product nobody has rated has an empty Average rating), and Last modified (when the product was last saved, in your site's date and time format). WooCommerce keeps the first three for the product as a whole, so a variation's cells in them are empty. They are locked on every row, so no bulk tool and no Paste a list writes them, and they are in the export file when they are showing.
They are hidden until you pick them, so no grid changes on its own: with Columns to show empty, which shows every column, these four are left out. Pick any of them in Columns to show: picked on their own they are added to every other column, and picked with other columns they show with those.
On Products, rows per page counts products; their variations are listed under them on top of that. A page's variations are loaded together, up to 500 variation rows a page (developers can change this with the trbe_variation_rows_per_page filter). A page with more says how many variations it left out: show fewer rows per page to list them all. The toolbar counts products, "1–20 of 230", and gives the number of rows beside it when variations are listed.
Unless you have set your own column order, product prices and stock come straight after the SKU, before the descriptions, gallery and attributes.
Some columns always come first and cannot be moved: ID, Parent, Name and Type on products, Order on orders, ID and Code on coupons, ID and Type on reviews.
Still stuck? Ask the developers who wrote it. We aim to reply within one business day.