add: flatten collection title, tag value, and type value fields

This commit is contained in:
zakariaelas
2021-09-21 15:31:02 +01:00
parent c67ca16a9b
commit 560cc0de55
5 changed files with 29 additions and 23 deletions
@@ -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,
}
}
@@ -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,
}
}