diff --git a/packages/medusa-plugin-meilisearch/README.md b/packages/medusa-plugin-meilisearch/README.md index 27b07007d2..1063118052 100644 --- a/packages/medusa-plugin-meilisearch/README.md +++ b/packages/medusa-plugin-meilisearch/README.md @@ -12,8 +12,8 @@ Meilisearch Plugin for Medusa to search for products. [indexName]: [meilisearch settings passed to meilisearch's `updateSettings()` method] // example products: { - searchableAttributes: ["title", "description", "sku"], - displayedAttributes: ["title", "description", "sku"], + searchableAttributes: ["title", "description", "variant_sku", "type_value"], + displayedAttributes: ["title", "description", "variant_sku", "type_value"], } } } diff --git a/packages/medusa-plugin-meilisearch/src/loaders/index.js b/packages/medusa-plugin-meilisearch/src/loaders/index.js index 33e24d2468..190287c647 100644 --- a/packages/medusa-plugin-meilisearch/src/loaders/index.js +++ b/packages/medusa-plugin-meilisearch/src/loaders/index.js @@ -1,4 +1,4 @@ -import { transformProduct } from "../utils/transform-products" +import { transformProduct } from "../utils/transform-product" const INDEX_NS = "medusa-commerce" diff --git a/packages/medusa-plugin-meilisearch/src/subscribers/product-search.js b/packages/medusa-plugin-meilisearch/src/subscribers/product-search.js index aa932afadc..9981118926 100644 --- a/packages/medusa-plugin-meilisearch/src/subscribers/product-search.js +++ b/packages/medusa-plugin-meilisearch/src/subscribers/product-search.js @@ -1,4 +1,4 @@ -import { transformProduct } from "../utils/transform-products" +import { transformProduct } from "../utils/transform-product" class ProductSearchSubscriber { constructor( diff --git a/packages/medusa-plugin-meilisearch/src/utils/transform-product.js b/packages/medusa-plugin-meilisearch/src/utils/transform-product.js new file mode 100644 index 0000000000..137f6bd483 --- /dev/null +++ b/packages/medusa-plugin-meilisearch/src/utils/transform-product.js @@ -0,0 +1,25 @@ +const variantKeys = ["sku", "title", "upc", "ean", "mid_code", "hs_code"] +const prefix = `variant` + +export const transformProduct = (product) => { + const initialObj = variantKeys.reduce((obj, key) => { + obj[`${prefix}_${key}`] = [] + return obj + }, {}) + + const flattenedVariantFields = product.variants.reduce((obj, variant) => { + variantKeys.forEach( + (k) => variant[k] && obj[`${prefix}_${k}`].push(variant[k]) + ) + return obj + }, initialObj) + + product.type_value = product.type && product.type.value + product.collection_title = product.collection && product.collection.title + product.tags_value = product.tags.map((t) => t.value) + + return { + ...product, + ...flattenedVariantFields, + } +} diff --git a/packages/medusa-plugin-meilisearch/src/utils/transform-products.js b/packages/medusa-plugin-meilisearch/src/utils/transform-products.js deleted file mode 100644 index c50302d444..0000000000 --- a/packages/medusa-plugin-meilisearch/src/utils/transform-products.js +++ /dev/null @@ -1,19 +0,0 @@ -const keys = ["sku", "title", "upc", "ean", "mid_code", "hs_code"] -const prefix = `variant` - -export const transformProduct = (product) => { - const initialObj = keys.reduce((obj, key) => { - obj[`${prefix}_${key}`] = [] - return obj - }, {}) - - const flattenedFields = product.variants.reduce((obj, variant) => { - keys.forEach((k) => variant[k] && obj[`${prefix}_${k}`].push(variant[k])) - return obj - }, initialObj) - - return { - ...product, - ...flattenedFields, - } -}