fix: replace {{productName}} template in product page keywords
Some checks failed
Build and Deploy / build (push) Has been cancelled
Some checks failed
Build and Deploy / build (push) Has been cancelled
- Add template replacement logic for product keywords
- Replace {{productName}} with actual product.name
- Keywords now show correct product name instead of template variable
This commit is contained in:
@@ -51,6 +51,11 @@ export async function generateMetadata({ params }: ProductPageProps): Promise<Me
|
||||
const localized = getLocalizedProduct(product, saleorLocale);
|
||||
const keywords = getPageKeywords(validLocale as Locale, 'product');
|
||||
|
||||
// Replace template variables in keywords
|
||||
const replaceTemplate = (str: string) => str.replace(/\{\{productName\}\}/g, product.name);
|
||||
const primaryKeywords = keywords.primary.map(replaceTemplate);
|
||||
const secondaryKeywords = keywords.secondary.map(replaceTemplate);
|
||||
|
||||
// Build canonical URL
|
||||
const localePrefix = validLocale === DEFAULT_LOCALE ? "" : `/${validLocale}`;
|
||||
const canonicalUrl = `${baseUrl}${localePrefix}/products/${slug}`;
|
||||
@@ -61,7 +66,7 @@ export async function generateMetadata({ params }: ProductPageProps): Promise<Me
|
||||
return {
|
||||
title: localized.name,
|
||||
description: localized.seoDescription || localized.description?.slice(0, 160),
|
||||
keywords: [...keywords.primary, ...keywords.secondary].join(', '),
|
||||
keywords: [...primaryKeywords, ...secondaryKeywords].join(', '),
|
||||
alternates: {
|
||||
canonical: canonicalUrl,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user