Shop Page Template in WooCommerce
Well, as you probably know, WooCommerce creates a whole bunch of its system pages after the plugin installation, for example: “Cart”, “Checkout”, “My Account”, and “Shop”.
When you need to edit, let’s say a cart page in WooCommerce, everything is kind of obvious – for classic themes we have a [woocommerce_cart] shortcode, for block themes – a cart block.
But what if want to create a custom shop page template or at least make some changes to it?
Let’s figure it out in this tutorial.
First things first – everything depends on whether you’re using a block theme or a classic WordPress theme.
For example, for block themes everything is pretty straightforward, you just need to go to the Appearance > Editor, then to Templates, where you can find a “Product Catalog” template which is exactly a shop page template in WooCommerce.

Seems simple enough, but what about classic WordPress themes? Where to find a WooCommerce shop page template in them?
Let’s go straight to the WooCommerce plugin folder and then to the templates folder. Here you can find a PHP file archive-product.php – that’s what we need. This file is used to display the product loop for:
- the Shop page,
- product category, and tag pages,
- product attribute archive pages.
Great, now we found it, the next question is how to override the WooCommerce shop page template.
All you need to do is to copy this file and paste it into your current theme, inside the woocommerce folder. Example:

woocommerce folder inside the Twenty Twenty theme folder and put a copy of archive-product.php inside.What you need to keep in mind as well:
- You need to keep in mind that from time to time, in new versions of WooCommerce, its template files are updated. So you need to check the files you copied after every WooCommerce update. A solution to this – try to use hooks instead whenever possible.
- If you going to make some changes to the
archive-products.phptemplate, by default, all your changes are going to be applied to product category, tag, and attribute archive pages. To avoid that, you would probably need to replace thetaxonomy-product-cat.phpfile, etc.
Guys, if you gave any questions, please let me know in the comments.
Misha Rudrastyh
Hey guys and welcome to my website. For more than 15 years I've been doing my best to share with you some superb WordPress guides and tips for free.
Need some developer help? Contact me