From aee115d9f967f3a5fe0dfba494a7106de2178a8c Mon Sep 17 00:00:00 2001 From: Pedro Dalla Bernardina Date: Wed, 9 Aug 2023 17:19:56 -0300 Subject: [PATCH] feat(recommendations): add "quantity" param to similars resolver --- CHANGELOG.md | 4 ++++ docs/README.md | 7 +++++-- graphql/schema.graphql | 1 + graphql/types/Product.graphql | 13 ++++++++++++- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 601911a..7860679 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] +### Added +- `groupByProduct` to `productRecommendations` query. +- `quantity` to `Recommendation.similars` resolver. + ## [0.54.0] - 2023-08-03 ### Added diff --git a/docs/README.md b/docs/README.md index bf4814d..d9f0962 100644 --- a/docs/README.md +++ b/docs/README.md @@ -143,7 +143,7 @@ Pagination item end If true, uses isAvailablePerSalesChannel_ parameter on query with segment's sales channel. Will override any given salesChannel arg simulationBehaviorSimulationBehavior If you want faster searches and do not care about most up to date prices and promotions, use skip value. -productRecommendations[Product]identifierProductUniqueIdentifiertypeCrossSelingInputEnumproductsByIdentifier[Product]fieldProductUniqueIdentifierField!values[ID!]salesChannelString +productRecommendations[Product]identifierProductUniqueIdentifiertypeCrossSelingInputEnumgroupByProductBooleanproductsByIdentifier[Product]fieldProductUniqueIdentifierField!values[ID!]salesChannelString Filter by availability at a specific sales channel. facetsFacets Returns facets category @@ -536,7 +536,7 @@ Indicates how the search-engine will deal with the fullText if there is more tha
FieldArgumentTypeDescription
fromFloat
toFloat
### Recommendation -
FieldArgumentTypeDescription
buy[Product]
view[Product]
similars[Product]
+
FieldArgumentTypeDescription
buy[Product]
view[Product]
similars[Product]
quantitySimilarProductsQuantityEnum
### Reference
FieldArgumentTypeDescription
KeyString
ValueString
@@ -730,6 +730,9 @@ Returns all available items. Returns first if no item is available. ### SORT
ValueDescription
ASC
DESC
+### SimilarProductsQuantityEnum +
ValueDescription
ALL_AVAILABLEReturns all similar products by setting "groupByProduct" param to `false`
DEFAULTReturns 12 similar products by default
+ ### SimulationBehavior
ValueDescription
default Does simulation on catalog as usual diff --git a/graphql/schema.graphql b/graphql/schema.graphql index 3f17e11..c651a19 100644 --- a/graphql/schema.graphql +++ b/graphql/schema.graphql @@ -241,6 +241,7 @@ type Query { productRecommendations( identifier: ProductUniqueIdentifier type: CrossSelingInputEnum + groupByProduct: Boolean ): [Product] @cacheControl(scope: SEGMENT, maxAge: SHORT) @withSegment productsByIdentifier( diff --git a/graphql/types/Product.graphql b/graphql/types/Product.graphql index b6f076f..37cbe98 100644 --- a/graphql/types/Product.graphql +++ b/graphql/types/Product.graphql @@ -179,12 +179,23 @@ type Seller { addToCartLink: String sellerDefault: Boolean commertialOffer: Offer +} + +enum SimilarProductsQuantityEnum { + """ + Returns all similar products by setting "groupByProduct" param to `false` + """ + ALL_AVAILABLE + """ + Returns 12 similar products by default + """ + DEFAULT } type Recommendation { buy: [Product] view: [Product] - similars: [Product] + similars(quantity: SimilarProductsQuantityEnum): [Product] } type SKU {