← All posts

Managing variable products without wp-admin

Attributes, terms, and generate-all-variations - the whole variable-product workflow from the frontend dashboard.

Guides Md Aminur Islam

Variable products are the feature most frontend dashboards either skip or sell separately. This is the complete workflow in StoreSuite, start to finish.

1. Create the global attributes first

Go to Products → Attributes. Create the attribute (Size), then add its terms (S, M, L). Doing this before you touch the product means the terms are available as checkboxes rather than something you type twice.

Attributes created here are WooCommerce global attributes - the same ones wp-admin uses. Nothing is StoreSuite-specific, so anything you build here still works if you deactivate the plugin.

2. Set the product type

On the product edit screen, set Product type to Variable. The Variations panel appears alongside Attributes.

3. Attach attributes and mark them for variations

Add Size to the product, select the terms this particular product uses, and tick Used for variations. An attribute that isn’t ticked still shows on the product page as information - it just won’t generate variations.

4. Generate

Generate all variations creates every combination of the ticked attributes at once. For two attributes with three and four terms, that’s twelve variations in one click.

WooCommerce caps a single generate run at 50 variations by default (the woocommerce_max_linked_variations filter raises it). Products past that limit need their variations added in batches.

5. Fill in the variation data

Each variation row expands to its own price, sale price, SKU, stock, weight, dimensions, and image. Bulk actions across the top set a field on every variation at once - a base price, then adjustments on the handful that differ, is usually the fastest path.

6. Check it on the storefront

The dashboard writes standard WooCommerce data, so the product page, the cart, and any reporting extension you already run all behave exactly as they would if you had done this in wp-admin.