With the launch of the new Crocoblock plugin, JetProductTables, many users have wondered whether it’s better to use it or the Dynamic Tables Builder module by JetEngine.
Let’s figure out which plugin is best suited for specific use cases.
Table of Contents
JetProductTables: When to Use?
The JetProductTables plugin is created for cases when you need to display WooCommerce products or particular product variations as a table without spending too much time on very specific customization and setting up very specific queries.
However, you can add filters, make columns sortable, set up colors and fonts, and choose particular taxonomies or product IDs/SKUs to display only these products.
You can add one of the many column types, including custom meta fields, product attributes, and, of course, an action button column.
Talking about buttons: there are two types of them:
- with attributes selector (if it’s a variable product) and “Add to Cart”;
- default “Read more” button for variable products if you want to redirect customers to the product page.
You can also add something to the default value and show or hide the quantity selector.
NOTE
If product variations have different prices, depending on the attribute combination, the accurate price will be automatically displayed next to the “Add to Cart” button when you select the attributes.
Product tables for Archive/Category/Storefront or any other page type
If you want to display products as a table on any page, create all the settings, generate the shortcode, and insert it where you want to see it. This method works equally well for the main shop page, particular category pages, and even if you want to display only selected products.
All the native WooCommerce product query methods are available for selecting products, so you can choose exactly what you want.
This is the query settings:
If you want to reuse the settings that you’ve created once, save them as a preset and then use them multiple times while generating a new shortcode.
Product variation tables for the Product page template
One more very cool use case is when the JetProductTables can really be helpful in creating the variation table for individual product templates.
It’s a very practical case, by the way, and if you want to know what I mean – this is my explanation. So, you have a product page for a variable product. By default, it has some Select dropdowns to choose from a list of different attributes, and when you match them, you will get a price.
What if you want to show all of them at once in one table? Well, this is the case for the Product variation table by JetProductTable. In this case, choose the “Product Variations” option in the Query Type field while creating a shortcode.
As you can see, there are just a few settings in the Query tab, and the most frequently used option is “Current product” here, as it allows you to generate a variation table for any product by using one shortcode in the Product page template. You can add filters and columns and customize a design, just like with the product tables I’ve already described earlier.
By the way, creating custom product page templates is very straightforward with JetWooBuilder. All you need to do is to insert a shortcode where you want to see the variation table in the product layout.
Learn more about the JetProductTables plugin:
JetProductTables use cases: summary
The JetProductTables plugin is a perfect solution for WooCommerce product tables, and it’s an all-in-one solution that includes querying instruments and filters.
You can also use it to build variation tables and display them either on a product template or as a list of products and their variations.
The plugin is lightweight and well-coded, with constant updates and improvements.
Dynamic Tables Builder by JetEngine: When to Use?
Dynamic Tables Builder is one of the modules in the JetEngine plugin. Using it, you can create dynamic tables for any content entity a WordPress website can have: default posts and pages, custom post types, custom content types, taxonomy terms, users, comments, and, of course, WooCommerce products.
But that’s not all! You can work with custom SQL queries and REST API endpoints.
You can make such tables filterable, but you will need the JetSmartFilters plugin.
Custom queries for Dynamic Tables Builder
Any dynamic table created by JetEngine is based on the custom query. Don’t worry if this sounds a bit overwhelming; I will explain it in simple terms.
There are two main steps here:
- First, you choose what exactly you want to display in the table: post types, terms, order, some particular posts, and so on. The Query Builder allows you to adjust every little detail.
- Then, create a table based on this query.
You can modify the query at any time or even assign another query for the table – the design settings and placement of the table will remain the same. This is handy, and the table widget is not overloaded with dozens of setting controls.
One more advantage of using custom queries is that you can reuse them and create not only dynamic tables based on them but also Listing templates or add these custom queries in Listing grids.
You can create a very simple query, e.g., to display all the products and then show them in the table. But to demonstrate a bit more, in the video below, I will query products with such parameters:
- WooCommerce products with the price over 50;
- the default display order: from cheapest to most expensive;
- from product category: Woman’s Collections;
- products posted earlier than 2025.
There are many more options you can use to opt for the query, and you can also use macros by clicking the database icon (for example, to choose “today” as a date, “current user,” and other dynamic values).
Also, there’s a dedicated query type for WooCommerce – WC Product Query.
NOTE
You can display any post type, quantity, and combination of them (e.g., posts, pages, products, etc.) in one query.
Using the Custom Callbacks feature in Dynamic Table Builder
Another advantage is that you can use custom callbacks with any field.
In simple terms, custom callbacks are a way to modify the way data that are dynamically fetched from any field is displayed. For example, you have image IDs saved in the meta fields. But you need to display images, not IDs. By using the “Get image by ID” callback, the IDs will turn into images.
Another example that is demonstrated in the video below is how to turn IDs of related products (cross-sale) into active links:
Callbacks are not only about turning IDs into something more concise – JetEngine offers a list of over 30 different callbacks, from formatting dates to turning hierarchical arrays (Checkbox/Select fields) into lists or executing shortcodes.
So, as you can see, there are a lot of options to manipulate the data dynamically and display it exactly the way you want.
- If you want to display custom meta fields created by JetEngine, copy meta field keys from JetEngine > Post Types > [your post type].
- If you want to display custom WooCommerce fields, you can copy them there, too, or in the Meta Boxes area (read this article to learn more about creating custom fields for Woo).
- If you need default WooCommerce fields, this list will be helpful:
- _upsell_ids – the “You may also like” products;
- _crosssell_ids – the “You may be interested in” products;
- _price: the product price;
- _regular_price – the regular price of the product;
- _sale_price – the sale price of the product (if on sale);
- _sku – the product’s SKU;
- _stock_status – the stock status (“instock” or “outofstock”);
- _manage_stock – whether stock management is enabled (“yes” or “no”);
- _stock – the stock quantity;
- _weight – the weight of the product;
- _length, _width, _height – dimensions of the product;
- _virtual – whether the product is virtual (“yes” or “no”);
- _downloadable – whether the product is downloadable (“yes” or “no”);
- _downloadable_files – serialized data of downloadable files;
- _featured – whether the product is featured (“yes” or “no”);
- _product_url – the external URL for external products;
- _button_text – the button text for external products;
- _tax_class – the tax class for the product;
- _sale_price_dates_from, _sale_price_dates_to – the date range for the sale price.
Using the Customize Column Output control
In addition to callbacks, you can use the Customize Column Output control to modify the way the data looks and behaves.
For example, you can wrap a value in an HTML wrapper to apply styles or use link attributes. Also, you can add custom texts or symbols before and after the item.
It’s particularly useful for buttons, and one of the cases I use it is creating an “Add to Cart” button. To do it, choose the Post ID field for the column and the value with the action code:
<a href="?add-to-cart=%s&redirect=checkout" class="button quick-buy">Add to cart</a>
The value is represented by the %s macro.
One more cool feature of Dynamic Tables by JetEngine is that column content can be a Raw Value (just data) or a template (JetEngine > Listings) created using Elementor, Block Builder, or Bricks. In case you use a template, you can add the “Add to Cart” button as a widget and enjoy other perks of visual builders.
💡 Read more about creating templates in this article (it’s about Elementor, but for other builders, you can use the same logic).
Dynamic Tables Builder by JetEngine use cases: summary
You can create dynamic tables for any WordPress post type, including WooCommerce products, using the Dynamic Tables Builder module by JetEngine.
The main advantage of this module is that you use custom queries as a data source for the table. This means that you have control over every little detail there. You can even use SQL or REST API queries and combine different post types.
Another advantage of using this method is that you can use custom callback functionality to modify the way the data is displayed.
However, if you need filterable tables, you will need the JetSmartFilters plugin.
The module is lightweight and well-coded, and it’s a part of a very powerful JetEngine plugin. As it has a modular structure, for the sake of performance, you can switch this module on and off and other modules.
FAQ
Use the JetProductTables plugin, which has all the instruments for displaying and filtering products. However, if you need a very custom selection of products, the Dynamic Tables Builder module by JetEngine will be a better option.
No, everything can be built visually by selecting the corresponding fields and values.
Wrapping Up
In this article, I demonstrate how you can build WordPress dynamic tables and focus on WooCommerce products. Crocoblock offers at least two powerful instruments for creating them: the JetProductTables plugin and the Dynamic Tables Builder module by JetEngine.
Depending on the goal, you can choose one or both, and the article highlights the main use cases for each method.