From 7f5b9fc5fa47e8e73c7afe54aa1bde4dd035086e Mon Sep 17 00:00:00 2001
From: Kasper Fabricius Kristensen
<45367945+kasperkristensen@users.noreply.github.com>
Date: Fri, 22 Aug 2025 07:50:59 +0200
Subject: [PATCH] feat(medusa,dashboard): Add metadata UI to product tags
domain + retrieve metadata by default (#13272)
---
.changeset/smooth-shoes-cover.md | 6 +++++
.../dashboard-app/routes/get-route.map.tsx | 7 +++++
.../product-tag-detail/product-tag-detail.tsx | 1 +
.../product-tag-metadata/index.ts | 1 +
.../product-tag-metadata.tsx | 26 +++++++++++++++++++
.../api/admin/product-tags/query-config.ts | 1 +
6 files changed, 42 insertions(+)
create mode 100644 .changeset/smooth-shoes-cover.md
create mode 100644 packages/admin/dashboard/src/routes/product-tags/product-tag-metadata/index.ts
create mode 100644 packages/admin/dashboard/src/routes/product-tags/product-tag-metadata/product-tag-metadata.tsx
diff --git a/.changeset/smooth-shoes-cover.md b/.changeset/smooth-shoes-cover.md
new file mode 100644
index 0000000000..303eddee06
--- /dev/null
+++ b/.changeset/smooth-shoes-cover.md
@@ -0,0 +1,6 @@
+---
+"@medusajs/dashboard": patch
+"@medusajs/medusa": patch
+---
+
+fix(medusa,dashboard): Retrieve `metadata` for product_tags by default and add metadta UI to product tag domain in admin dashboard
diff --git a/packages/admin/dashboard/src/dashboard-app/routes/get-route.map.tsx b/packages/admin/dashboard/src/dashboard-app/routes/get-route.map.tsx
index 1a0012a2a9..9643cb5114 100644
--- a/packages/admin/dashboard/src/dashboard-app/routes/get-route.map.tsx
+++ b/packages/admin/dashboard/src/dashboard-app/routes/get-route.map.tsx
@@ -1329,6 +1329,13 @@ export function getRouteMap({
lazy: () =>
import("../../routes/product-tags/product-tag-edit"),
},
+ {
+ path: "metadata/edit",
+ lazy: () =>
+ import(
+ "../../routes/product-tags/product-tag-metadata"
+ ),
+ },
],
},
],
diff --git a/packages/admin/dashboard/src/routes/product-tags/product-tag-detail/product-tag-detail.tsx b/packages/admin/dashboard/src/routes/product-tags/product-tag-detail/product-tag-detail.tsx
index 784e317436..39c88ee711 100644
--- a/packages/admin/dashboard/src/routes/product-tags/product-tag-detail/product-tag-detail.tsx
+++ b/packages/admin/dashboard/src/routes/product-tags/product-tag-detail/product-tag-detail.tsx
@@ -40,6 +40,7 @@ export const ProductTagDetail = () => {
before: getWidgets("product_tag.details.before"),
}}
showJSON
+ showMetadata
data={product_tag}
>
diff --git a/packages/admin/dashboard/src/routes/product-tags/product-tag-metadata/index.ts b/packages/admin/dashboard/src/routes/product-tags/product-tag-metadata/index.ts
new file mode 100644
index 0000000000..1e126af25f
--- /dev/null
+++ b/packages/admin/dashboard/src/routes/product-tags/product-tag-metadata/index.ts
@@ -0,0 +1 @@
+export { ProductTagMetadata as Component } from "./product-tag-metadata"
diff --git a/packages/admin/dashboard/src/routes/product-tags/product-tag-metadata/product-tag-metadata.tsx b/packages/admin/dashboard/src/routes/product-tags/product-tag-metadata/product-tag-metadata.tsx
new file mode 100644
index 0000000000..42e9d59d39
--- /dev/null
+++ b/packages/admin/dashboard/src/routes/product-tags/product-tag-metadata/product-tag-metadata.tsx
@@ -0,0 +1,26 @@
+import { useParams } from "react-router-dom"
+import { MetadataForm } from "../../../components/forms/metadata-form/metadata-form"
+import { useProductTag, useUpdateProductTag } from "../../../hooks/api"
+
+export const ProductTagMetadata = () => {
+ const { id } = useParams()
+
+ const { product_tag, isPending, isError, error } = useProductTag(id!)
+
+ const { mutateAsync, isPending: isMutating } = useUpdateProductTag(
+ product_tag?.id!
+ )
+
+ if (isError) {
+ throw error
+ }
+
+ return (
+
+ )
+}
diff --git a/packages/medusa/src/api/admin/product-tags/query-config.ts b/packages/medusa/src/api/admin/product-tags/query-config.ts
index 79b5ebef5e..391b51b5b2 100644
--- a/packages/medusa/src/api/admin/product-tags/query-config.ts
+++ b/packages/medusa/src/api/admin/product-tags/query-config.ts
@@ -3,6 +3,7 @@ export const defaultAdminProductTagFields = [
"value",
"created_at",
"updated_at",
+ "metadata",
]
export const retrieveProductTagTransformQueryConfig = {