How to Create a Product Page - P5 - Using Meta Box and Gutenberg
Tags: tutorial, customfields, gutenberg, productpage
Published: 2022-11-01 02:14:23

To continue the series about creating a product page, we have a new way to do it using MB Views only. It's a Meta Box's extension. If you are using a theme without any page builders or just using only Gutenberg, this tutorial will work.

As in the previous part of this series, I also take a detailed page about car rental as an example.

![Example of a product page](https://i.imgur.com/tVV72cn.png)

Video Version
-------------

https://youtu.be/DnKcWGkyhEQ

Before Getting Started
----------------------

The product is a kind of custom post type. In this case, each car for rent will be a post in that post type. The product's name and its descriptions are the title and content of the post. We'll need some extra information about the cars such as price, image gallery, type of fuel, etc. So, we use custom fields to save that data.

![The product is a kind of custom post type](https://i.imgur.com/yv2kOpa.png)

To create custom post types and custom fields, we use the [Meta Box core plugin](https://wordpress.org/plugins/meta-box/). It's free and available on [wordpress.org.](https://wordpress.org/plugins/meta-box/)

For more advanced features, we also need some Meta Box extensions. You can use **Meta Box AIO** or install the following extensions individually:

-   [MB Custom Post Type](https://metabox.io/plugins/custom-post-type/): to create custom post types;
-   [Meta Box Builder](https://metabox.io/plugins/meta-box-builder/): to have a UI on the back end to create custom fields easily;
-   [MB Views](https://metabox.io/plugins/mb-views/): to create a template for the product page without touching the theme file.

Step 1: Create a New Custom Post Type
-------------------------------------

Go to **Meta Box** > **Post Types** > **New Post Type** to create a new custom post type.

![Create a new custom post type](https://i.imgur.com/uQhCt4b.png)

Step 2: Create Custom Fields
----------------------------

Go to **Meta Box** > **Custom Fields**, then create fields as you want.

![Create custom fields](https://i.imgur.com/7DGGaUi.png)

In this tutorial, I just take a typical example of car rental with some common fields. They are all very simple and don't require any particular setting. Here are the fields that I created.

![The created fields](https://i.imgur.com/jRCpmfY.png)

Next, move to the **Settings** tab > **Location** > choose **Post Type** as **Car Rental** to apply these fields to this post type.

![Set Location for the Post type](https://i.imgur.com/zXyF1Bu.png)

In the post editor, you will see all of the newly created custom fields.

![Newly created custom fields show in the post editor](https://i.imgur.com/mIGtsRv.png)

Step 3: Create a Template
-------------------------

To display the product's details, you normally have to go to the theme's files to add code or use a page builder. However, you have another way with the **MB Views** extension to create templates without touching the theme's files.

Go to **Meta Box** > **Views** to create a new template. Instead of typing code into the box in the **Template** tab, you can insert fields to get their data.

![Create a Template and insert fields to get data](https://i.imgur.com/8TrA6p9.png)

Just click the **Insert Field** button and choose which one you want.

First, I'll create a slider with many product images, so insert the **Gallery** field and choose an image size for it.

![To create a slider with many product images, insert Gallery field and choose an image size](https://i.imgur.com/qiuJz3y.png)

Next, insert the product name and its description. They are the default fields of WordPress.

In terms of the fuel, door, and gearbox information, because they are **select** fields, you'll have a setting where you can choose the output of the options as **Value** or **Label**.

![For Select fields, choose the output of options](https://i.imgur.com/AA92obr.png)

Moving on, I'll insert the remaining fields as usual.

![Insert the remaining fields](https://i.imgur.com/KWEMpxQ.png)

In the **Settings** section of the view, set the **Type** section as **Singular** to assign this template to a single post page. Then, add a rule in the **Location** section to apply it to the Car Rental page only.

![In the Settings section of the view, set the Type section as Singular and add rule in the Location section](https://i.imgur.com/o277okt.png)

Now, go to the product page, all the product information is displayed already.

![All the product information is displayed in the product page](https://i.imgur.com/SrnDUqe.png)

It is so messy now. We'll need some JS and CSS to make it more beautiful with a better layout.

Step 4: Style the Page
----------------------

Before styling, let's add some **div** tags to separate the page into different sections for easier styling.

![To style easier, add some div tags](https://i.imgur.com/DMVE3Bp.png)

Next, go to the CSS tab, add some code.

![Go to the CSS tab, add some code](https://i.imgur.com/TapZkUJ.png)

Also add some code in the JavaScript tab. This is to create a slider for the gallery.

![Go to the JavaScript tab, add some code](https://i.imgur.com/a5wBuDh.png)

All of these codes are available on [Github](https://github.com/wpmetabox/tutorials/tree/master/create-a-product-page-with-MB-Views), you can refer to it.

After updating the template, you'll see the new look of the page on the frontend.

![The created product page in the frontend](https://i.imgur.com/tVV72cn.png)

Last Words
----------

Hopefully, all the following steps above could 'help you a hand' in creating an advanced product page. In case, you plan to build your own product page using other page builders besides Gutenberg, there are some interesting options for you [here](https://metabox.io/series/product-page/). Keep track and send us your ideas if you wish for more tutorials. Good fortune!