Skip to content

Commit

Permalink
feat: possibility to choose how to group products in recommendations
Browse files Browse the repository at this point in the history
  • Loading branch information
iago1501 committed Mar 8, 2024
1 parent 92f3a60 commit cdb4c84
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 11 deletions.
2 changes: 1 addition & 1 deletion node/resolvers/search/product.ts
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ export const resolvers = {

recommendations: (product: SearchProduct, args: any) => {
const { groupBy } = args
return {product, groupBy}
return { product, groupBy }
},

description: formatTranslatableProp<SearchProduct, 'description', 'productId'>(
Expand Down
44 changes: 34 additions & 10 deletions node/resolvers/search/recommendation.ts
Original file line number Diff line number Diff line change
@@ -1,40 +1,64 @@
import { GroupByCrossSellingTypes, SearchCrossSellingTypes } from './utils'

interface RecommendationParentProps {
product: SearchProduct,
product: SearchProduct
groupBy: string
}

export const resolvers = {
Recommendation: {
buy: (
{ product: {productId} , groupBy = GroupByCrossSellingTypes.PRODUCT}: RecommendationParentProps,
{ product: {productId},
groupBy = GroupByCrossSellingTypes.PRODUCT
}: RecommendationParentProps,
_: any,
{ clients: { search } }: Context
) =>
{
const groupByProduct = groupBy === GroupByCrossSellingTypes.PRODUCT ? true : false
return search.crossSelling(productId, SearchCrossSellingTypes.whoboughtalsobought, groupByProduct)
const groupByProduct =
groupBy === GroupByCrossSellingTypes.PRODUCT ? true : false

return search.crossSelling(
productId,
SearchCrossSellingTypes.whoboughtalsobought,
groupByProduct
)
},

similars: (
{ product: {productId} , groupBy = GroupByCrossSellingTypes.PRODUCT}: RecommendationParentProps,
{ product: {productId},
groupBy = GroupByCrossSellingTypes.PRODUCT
}: RecommendationParentProps,
_: any,
{ clients: { search } }: Context
) =>
{
const groupByProduct = groupBy === GroupByCrossSellingTypes.PRODUCT ? true : false
return search.crossSelling(productId, SearchCrossSellingTypes.similars, groupByProduct)
const groupByProduct =
groupBy === GroupByCrossSellingTypes.PRODUCT ? true : false

return search.crossSelling(
productId,
SearchCrossSellingTypes.similars,
groupByProduct
)
},

view: (
{ product: {productId} , groupBy = GroupByCrossSellingTypes.PRODUCT}: RecommendationParentProps,
{ product: {productId},
groupBy = GroupByCrossSellingTypes.PRODUCT
}: RecommendationParentProps,
_: any,
{ clients: { search } }: Context
) =>
{
const groupByProduct = groupBy === GroupByCrossSellingTypes.PRODUCT ? true : false
return search.crossSelling(productId, SearchCrossSellingTypes.whosawalsosaw, groupByProduct)
const groupByProduct =
groupBy === GroupByCrossSellingTypes.PRODUCT ? true : false

return search.crossSelling(
productId,
SearchCrossSellingTypes.whosawalsosaw,
groupByProduct
)
},
},
}

0 comments on commit cdb4c84

Please sign in to comment.