fix: strictly filter reviews by product_id in storefront api to ensure only matching product reviews are shown
This commit is contained in:
parent
341f98b6ef
commit
c572da5cbb
@ -53,7 +53,7 @@ export const loader = async ({ request }) => {
|
||||
|
||||
const query = `#graphql
|
||||
query getReviews($query: String!) {
|
||||
metaobjects(first: 50, type: "custom_product_review", query: $query) {
|
||||
metaobjects(first: 250, type: "custom_product_review", query: $query) {
|
||||
edges { node { fields { key value } } }
|
||||
}
|
||||
}
|
||||
@ -73,15 +73,18 @@ export const loader = async ({ request }) => {
|
||||
return jsonResponse([]);
|
||||
}
|
||||
|
||||
const reviews = (data.data?.metaobjects?.edges || []).map((edge) => {
|
||||
const reviews = (data.data?.metaobjects?.edges || [])
|
||||
.map((edge) => {
|
||||
const fields = {};
|
||||
edge.node.fields.forEach((f) => { fields[f.key] = f.value; });
|
||||
return {
|
||||
product_id: fields.product_id,
|
||||
name: fields.customer_name || "Anonymous",
|
||||
review: fields.content || "",
|
||||
rating: fields.rating || "5",
|
||||
};
|
||||
});
|
||||
})
|
||||
.filter((r) => String(r.product_id) === String(productId));
|
||||
|
||||
return jsonResponse(reviews);
|
||||
} catch (err) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user