flamingo.me/flamingo-commerce/v3@v3.11.0/product/interfaces/graphql/schema.graphql (about) 1 interface Commerce_Product { 2 type: String! 3 marketPlaceCode: String! 4 identifier: String! 5 media: Commerce_Product_Media!, 6 price: Commerce_Product_PriceInfo!, 7 availablePrices: [Commerce_Product_PriceInfo!], 8 title: String! 9 categories: Commerce_Product_Categories! 10 description: String! 11 shortDescription: String! 12 meta: Commerce_Product_Meta! 13 loyalty: Commerce_Product_Loyalty! 14 attributes: Commerce_Product_Attributes! 15 badges: Commerce_Product_Badges! 16 } 17 18 """ 19 A simple product, that has no variable attributes and therefore no relation to other products 20 """ 21 type Commerce_Product_SimpleProduct implements Commerce_Product { 22 type: String! 23 marketPlaceCode: String! 24 identifier: String! 25 media: Commerce_Product_Media!, 26 price: Commerce_Product_PriceInfo!, 27 availablePrices: [Commerce_Product_PriceInfo!], 28 title: String! 29 categories: Commerce_Product_Categories! 30 description: String! 31 shortDescription: String! 32 meta: Commerce_Product_Meta! 33 loyalty: Commerce_Product_Loyalty! 34 attributes: Commerce_Product_Attributes! 35 badges: Commerce_Product_Badges! 36 } 37 38 """ 39 A configurable product defines the possible variations of a product. It only contains 40 information about product variants but has no active variant itself. 41 """ 42 type Commerce_Product_ConfigurableProduct implements Commerce_Product { 43 type: String! 44 marketPlaceCode: String! 45 identifier: String! 46 media: Commerce_Product_Media!, 47 price: Commerce_Product_PriceInfo!, 48 availablePrices: [Commerce_Product_PriceInfo!], 49 title: String! 50 categories: Commerce_Product_Categories! 51 description: String! 52 shortDescription: String! 53 meta: Commerce_Product_Meta! 54 loyalty: Commerce_Product_Loyalty! 55 attributes: Commerce_Product_Attributes! 56 """ 57 Contains all possible combinations of variation attributes that point to a variant, 58 as well as all possible variations to render in the frontend. 59 """ 60 variantSelection: Commerce_Product_VariantSelection! 61 badges: Commerce_Product_Badges! 62 } 63 64 type Commerce_Product_VariantSelection { 65 variants: [Commerce_Product_VariantSelection_Match!]! 66 attributes: [Commerce_Product_VariantSelection_Attribute!]! 67 } 68 69 type Commerce_Product_VariantSelection_Attribute { 70 label: String! 71 code: String! 72 options: [Commerce_Product_VariantSelection_Attribute_Option!]! 73 } 74 75 type Commerce_Product_VariantSelection_Attribute_Option { 76 label: String! 77 unitCode: String 78 otherAttributesRestrictions: [Commerce_Product_VariantSelection_Option_OtherAttributesRestriction!]! 79 } 80 81 type Commerce_Product_VariantSelection_Option_OtherAttributesRestriction { 82 code: String! 83 availableOptions: [String!]! 84 } 85 86 type Commerce_Product_VariantSelection_Match { 87 attributes: [Commerce_Product_VariantSelection_Match_Attributes!] 88 variant: Commerce_Product_VariantSelection_Match_Variant! 89 } 90 91 type Commerce_Product_VariantSelection_Match_Attributes { 92 key: String! 93 value: String! 94 } 95 96 type Commerce_Product_VariantSelection_Match_Variant { 97 marketplaceCode: String! 98 } 99 100 """ 101 An active variant is one of many concrete variants that a configurable provides. All data relates to one active variant 102 and not the the configurable. It also contains information about it´s siblings (other variants on the same configurable) 103 """ 104 type Commerce_Product_ActiveVariantProduct implements Commerce_Product { 105 type: String! 106 "The marketPlaceCode of the 'configurable' product. See also 'variantMarketPlaceCode' for the variant marketPlaceCode" 107 marketPlaceCode: String! 108 identifier: String! 109 media: Commerce_Product_Media!, 110 price: Commerce_Product_PriceInfo!, 111 availablePrices: [Commerce_Product_PriceInfo!], 112 title: String! 113 categories: Commerce_Product_Categories! 114 description: String! 115 shortDescription: String! 116 meta: Commerce_Product_Meta! 117 loyalty: Commerce_Product_Loyalty! 118 attributes: Commerce_Product_Attributes! 119 "The marketPlaceCode of the actual variant" 120 variantMarketPlaceCode: String! 121 "Contains information about other available product variations" 122 variationSelections: [Commerce_Product_VariationSelection!] 123 "Convenience property to access the active variant labels easily" 124 activeVariationSelections: [Commerce_Product_ActiveVariationSelection!] 125 badges: Commerce_Product_Badges! 126 } 127 128 """ 129 A bundle product, that consists of basic products. 130 """ 131 type Commerce_Product_BundleProduct implements Commerce_Product { 132 type: String! 133 marketPlaceCode: String! 134 identifier: String! 135 media: Commerce_Product_Media!, 136 price: Commerce_Product_PriceInfo!, 137 availablePrices: [Commerce_Product_PriceInfo!], 138 title: String! 139 categories: Commerce_Product_Categories! 140 description: String! 141 shortDescription: String! 142 meta: Commerce_Product_Meta! 143 loyalty: Commerce_Product_Loyalty! 144 attributes: Commerce_Product_Attributes! 145 badges: Commerce_Product_Badges! 146 choices: [Commerce_Product_Choice!] 147 } 148 149 150 "A group of attributes. E.g. 'size'" 151 type Commerce_Product_VariationSelection { 152 code: String! 153 label: String! 154 "All possible variations for that attribute. E.g. 'M', 'L', 'XL'" 155 options: [Commerce_Product_VariationSelection_Option] 156 } 157 158 "Easy-to-access property to display attribute information about an active variant" 159 type Commerce_Product_ActiveVariationSelection { 160 code: String! 161 label: String! 162 value: String! 163 unitCode: String! 164 } 165 166 "An option for a group of attributes" 167 type Commerce_Product_VariationSelection_Option { 168 label: String! 169 unitCode: String! 170 state: Commerce_Product_VariationSelection_OptionState! 171 """ 172 Contains information about a product that matches this option. 173 Depending on if there is an active variant or not, it tries to include the variant, 174 that best matches the current option. 175 """ 176 variant: Commerce_Product_VariationSelection_OptionVariant!, 177 } 178 179 "Information about the underlying variant" 180 type Commerce_Product_VariationSelection_OptionVariant { 181 marketPlaceCode: String! 182 } 183 184 "The state of an option related to the currently active variant" 185 enum Commerce_Product_VariationSelection_OptionState { 186 "The currently active variant has this exact attribute + all other active variant attributes" 187 ACTIVE 188 "A variant (other than the active variant) exists, that matches this exact attribute + all other active variant attributes" 189 MATCH 190 "No variant exists, that matches this exact attribute + all other active variant attributes." 191 NO_MATCH 192 } 193 194 "Wrapper that includes main category and all categories" 195 type Commerce_Product_Categories { 196 main: Commerce_Product_CategoryTeaser! 197 all: [Commerce_Product_CategoryTeaser!] 198 } 199 200 "Meta information about the product" 201 type Commerce_Product_Meta { 202 keywords: [String!] 203 } 204 205 "Loyalty information about this product" 206 type Commerce_Product_Loyalty { 207 price: Commerce_Product_Loyalty_PriceInfo 208 availablePrices: [Commerce_Product_Loyalty_PriceInfo!] 209 earning: Commerce_Product_Loyalty_EarningInfo 210 } 211 212 type Commerce_Product_Loyalty_PriceInfo { 213 type: String! 214 default: Commerce_Price! 215 isDiscounted: Boolean! 216 discounted: Commerce_Price! 217 discountText: String! 218 minPointsToSpent: Float! 219 maxPointsToSpent: Float! 220 context: Commerce_Product_PriceContext! 221 } 222 223 "Shows the type and the points earned" 224 type Commerce_Product_Loyalty_EarningInfo { 225 "The type of the LoyaltyEarningInfo, e.g. MilesAndMore" 226 type: String! 227 "The value of the LoyaltyEarningInfo, currency can be e.g. points or miles" 228 default: Commerce_Price! 229 } 230 231 type Commerce_Product_PriceContext { 232 customerGroup: String! 233 deliveryCode: String! 234 channelCode: String! 235 locale: String! 236 } 237 238 type Commerce_Product_Media { 239 all: [Commerce_Product_MediaItem!] 240 getMedia(usage: String!): Commerce_Product_MediaItem! 241 } 242 243 type Commerce_Product_MediaItem { 244 type: String! 245 mimeType: String! 246 usage: String! 247 title: String! 248 reference: String! 249 } 250 251 type Commerce_Product_Attributes { 252 attributeKeys: [String!] 253 attributes: [Commerce_Product_Attribute!] 254 hasAttribute(key: String!): Boolean 255 getAttribute(key: String!): Commerce_Product_Attribute 256 getAttributesByKey(keys: [String!]): [Commerce_Product_Attribute!] 257 } 258 259 type Commerce_Product_Attribute { 260 "Code of the attribute e.g. `productWeight`" 261 code: String! 262 "Human-readable code e.g. `The Product Weight`" 263 codeLabel: String! 264 "Human-readable label of a single value" 265 label: String! 266 "Value of the selected attribute" 267 value: String! 268 "Unit of the attribute e.g. `kg`" 269 unitCode: String! 270 "Values of a multi value attribute" 271 values: [String!] 272 "Human-readable labels of a multi value attribute" 273 labels: [String!] 274 } 275 276 type Commerce_Product_CategoryTeaser { 277 code: String! 278 path: String! 279 name: String! 280 parent: Commerce_Product_CategoryTeaser 281 } 282 283 type Commerce_Product_PriceInfo { 284 default: Commerce_Price! 285 discounted: Commerce_Price! 286 discountText: String! 287 activeBase: Commerce_Price! 288 activeBaseAmount: Float! 289 activeBaseUnit: String! 290 isDiscounted: Boolean! 291 campaignRules: [String!] 292 denyMoreDiscounts: Boolean! 293 context: Commerce_Product_PriceContext! 294 taxClass: String! 295 } 296 297 298 type Commerce_Product_SearchResult { 299 products: [Commerce_Product!] 300 facets: [Commerce_Search_Facet!]! 301 suggestions: [Commerce_Search_Suggestion!] 302 searchMeta: Commerce_Search_Meta! 303 hasSelectedFacet: Boolean! 304 promotion: Commerce_Search_Promotion 305 actions: [Commerce_Search_Action!] 306 } 307 308 type Commerce_Product_Badges { 309 all: [Commerce_Product_Badge!] 310 first: Commerce_Product_Badge 311 } 312 313 type Commerce_Product_Badge { 314 code: String! 315 label: String! 316 } 317 318 type Commerce_Product_Choice { 319 identifier: String! 320 required: Boolean! 321 label: String! 322 options: [Commerce_Product_Option!] 323 active: Commerce_Product @deprecated(reason: "use activeOption instead") 324 activeOption: Commerce_Product_Option 325 } 326 327 type Commerce_Product_Option { 328 product: Commerce_Product! 329 qty: Int! 330 } 331 332 input Commerce_Product_ChoiceConfigurationInput { 333 identifier: String! 334 marketplaceCode: String! 335 variantMarketplaceCode: String 336 qty: Int! 337 } 338 339 extend type Query { 340 Commerce_Product(marketPlaceCode: String!, variantMarketPlaceCode: String, bundleConfiguration: [Commerce_Product_ChoiceConfigurationInput!]): Commerce_Product 341 Commerce_Product_Search(searchRequest: Commerce_Search_Request!): Commerce_Product_SearchResult! 342 }