EU Custom Code Reform Advances on March 26: What Cross-Border Sellers Should Know
Reading Time: 3 minutes On March 26, 2026, the European Parliament and the Council reached…
Let’s imagine walking into a clothing store. What is the first thing that will grab your attention? It is most likely to be the product that stands out amongst the rest. Similarly, when you visit a webpage, the banner image will grab your attention first. Magento allows you to use different texts and images to make banners that are visually appealing to your customers. Learning how to add a banner on the category page in Magento PWA studio is something you should know.
This is the second blog in the series dedicated to Magento PWA Studio, the first one being how to add a newsletter to the footer in Magento PWA studio.
Banner images are a great way to connect with your audience. It helps to create a positive impression on the visitors. Magento PWA studio includes different illustrations, backgrounds, and videos to make your banner images appealing.
Without wasting much time, let’s have a look at how it’s done.
Let us help you create your own PWA to stay ahead of the game
The first step to follow on how to add a banner on the category page in PWA Studio is that you need to create a Venia project through scaffolding
https://magento.github.io/pwa-studio/pwa-buildpack/scaffolding/
yarn create @magento/pwa
Once you have your scaffolded Venia project Then go inside your project directory.
First, we need to add our custom component for the category banner in the category root component.
For this we need to add our code in:
local-intercept.js [YOUR_PROJECT_NAME/local-intercept.js]
function localIntercept(targets) {
const { Targetables } = require('@magento/pwa-buildpack');
const targetables = Targetables.using(targets);
// load the component to be customized
const CategoryContentComponent = targetables.reactComponent(
'@magento/venia-ui/lib/RootComponents/Category/categoryContent.js'
);
// import the custom component in the component to be modified
const CategoryBanner = CategoryContentComponent.addImport(
"CategoryBanner from '/src/components/CategoryBanner/categoryBanner.js'"
);
// insert the custom component that renders category banner
CategoryContentComponent.insertBeforeJSX(
' <Breadcrumbs categoryId={categoryId} />',
`<${CategoryBanner} categoryId={categoryId} />`
);
}
module.exports = localIntercept;
Interesting reads-
PWA for eCommerce: Why Magento Merchants need to go for it?
ROI of PWA for eCommerce businesses: Profits, growth and sustainability
The second step to follow on how to add a banner on the category page in PWA Studio is that we need to add our component inside src directory
Click here to get a free demo of our theme!
index.js [YOUR_PROJECT_NAME/src/components/CategoryBanner/index.js]
export { default } from ‘./CategoryBanner’;
categoryBanner.js [YOUR_PROJECT_NAME/src/components/CategoryBanner/categoryBanner.js]
import React from 'react';
import { GET_CATEGORY_BANNER } from './categoryBanner.gql';
import { useCategoryBanner } from '../../peregrine/talons/CategoryBanner/useCategoryBanner';
import Image from '@magento/venia-ui/lib/components/Image';
const IMAGE_WIDTH = 1240;
const IMAGE_HEIGHT = 400;
const CategoryBanner = props => {
const { categoryId } = props;
const { bannerData } = useCategoryBanner({
query: GET_CATEGORY_BANNER,
categoryId
});
console.log(bannerData);
return (
<div>
{bannerData && bannerData.image && (
<Image
alt={name}
height={IMAGE_HEIGHT}
resource={bannerData.image}
width={IMAGE_WIDTH}
/>
)}
</div>
);
};
export default CategoryBanner;
The third step to follow on how to add a banner on the category page in PWA Studio is:
Click here to get a free demo of our theme!
categoryBanner.gql.js [YOUR_PROJECT_NAME/src/components/CategoryBanner/categoryBanner.gql.js]
import { gql } from '@apollo/client';
export const GET_CATEGORY_BANNER = gql`
query getCategoryBanner($id: Int!) {
category(id: $id) {
image
}
}
`;
The fourth step to follow on how to add a banner on the category page in PWA Studio is:
useCategoryBanner.js [YOUR_PROJECT_NAME/src/peregrine/lib/talons/CategoryBanner/useCategoryBanner.js]
import { useCallback, useEffect, useState } from 'react';
import { useQuery } from '@apollo/client';
export const useCategoryBanner = props => {
const { query, categoryId } = props;
const { data: bannerData } = useQuery(query, {
variables: {
id: categoryId
},
fetchPolicy: 'cache-and-network',
nextFetchPolicy: 'cache-first'
});
return {
bannerData: bannerData && bannerData.category
};
};
After that run your project
yarn build
yarn start
Embrace the technological evolution with our Magento 2 PWA Theme For ECommerce
This is what your end result should look like:
I hope this blog on how to add banners on category pages in Venia has been of help to you. Banner images play an important role in making conversions happen. They attract customers and positively impact them to make a purchase decision.
You are most welcome to drop your queries and share your thoughts and you can also contact us for any additional information. CedCommerce will be more than happy to help you.
Reading Time: 3 minutes On March 26, 2026, the European Parliament and the Council reached…
Reading Time: 4 minutes Kanzen Skincare and six other brands are preparing for what is…
Reading Time: 5 minutes When a seller expands to a new Walmart market, the first…
Reading Time: 10 minutes What if reaching hundreds of millions of Amazon customers didn’t mean…
Reading Time: 2 minutes Alibaba’s latest update shows that AI is becoming a much bigger…
Reading Time: 2 minutes A new industry study shows that agentic commerce is moving from…
Reading Time: 2 minutes Amazon has introduced new 1-hour and 3-hour delivery options for customers…
Reading Time: 16 minutes How to find, quantify, and validate winning Amazon products? Amazon product…
Reading Time: 2 minutes Amazon is rolling out a significant update that will directly impact…
Reading Time: 3 minutes Ulta Beauty is preparing to launch a curated storefront on TikTok…
Reading Time: 2 minutes Until now, falling below the 90% OTDR (On-time Delivery Requirement) could…
Reading Time: 5 minutes Amazon has formally expanded its Multi-Channel Fulfillment (MCF) operations in Europe…
Reading Time: 4 minutes Amazon has announced that Sponsored Products prompts and Sponsored Brands prompts…
Reading Time: 4 minutes Amazon has expanded access to its healthcare-focused AI assistant, Health AI,…
Reading Time: 4 minutes Amazon has officially launched its Spring Deal Days shopping event, offering…
Reading Time: 4 minutes eBay UK has announced a new partnership with global embedded finance…
Reading Time: 4 minutes TikTok Shop has officially launched its first-ever Fine Art category, marking…
Reading Time: 2 minutes eBay has temporarily paused international sales from the United States to…
Reading Time: 3 minutes Walmart Marketplace has expanded its Review Accelerator program with a new…
Reading Time: 3 minutes A significant policy change is coming to Amazon Wish Lists that…