From f873651930bad10202b32724ece491e08674e713 Mon Sep 17 00:00:00 2001 From: Prabhu Ram Date: Thu, 6 May 2021 11:01:34 -0500 Subject: [PATCH 1/3] Add Storefront properties for Product Attributes --- .../graph-ql/coverage/eav/EavGraphQl.graphqls | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 design-documents/graph-ql/coverage/eav/EavGraphQl.graphqls diff --git a/design-documents/graph-ql/coverage/eav/EavGraphQl.graphqls b/design-documents/graph-ql/coverage/eav/EavGraphQl.graphqls new file mode 100644 index 000000000..4bbd6e522 --- /dev/null +++ b/design-documents/graph-ql/coverage/eav/EavGraphQl.graphqls @@ -0,0 +1,42 @@ +# Copyright © Magento, Inc. All rights reserved. +# See COPYING.txt for license details. + +type Query { + customAttributeMetadata(attributes: [AttributeInput!]!): CustomAttributeMetadata @resolver(class: "Magento\\EavGraphQl\\Model\\Resolver\\CustomAttributeMetadata") @doc(description: "The customAttributeMetadata query returns the attribute type, given an attribute code and entity type") @cache(cacheable: false) +} + +type CustomAttributeMetadata @doc(description: "CustomAttributeMetadata defines an array of attribute_codes and entity_types") { + items: [Attribute] @doc(description: "An array of attributes") +} + +type Attribute @doc(description: "Attribute contains the attribute_type of the specified attribute_code and entity_type") { + attribute_code: String @doc(description: "The unique identifier for an attribute code. This value should be in lowercase letters without spaces.") + entity_type: String @doc(description: "The type of entity that defines the attribute") + attribute_type: String @doc(description: "The data type of the attribute") + input_type: String @doc(description: "The frontend input type of the attribute") + attribute_options: [AttributeOption] @resolver(class: "Magento\\EavGraphQl\\Model\\Resolver\\AttributeOptions") @doc(description: "Attribute options list.") + storefront_properties: StorefrontProperties +} + +type StorefrontProperties { + used_in_product_listing: Boolean + position: Int + visible_on_catalog_storefront: Boolean + use_in_layered_navigation: UseInLayeredNavigationOptions +} + +enum UseInLayeredNavigationOptions { + NO + FILTERABLE_WTH_RESULTS + FILTERABLE_NO_RESULT +} + +type AttributeOption @doc(description: "Attribute option.") { + label: String @doc(description: "Attribute option label.") + value: String @doc(description: "Attribute option value.") +} + +input AttributeInput @doc(description: "AttributeInput specifies the attribute_code and entity_type to search") { + attribute_code: String @doc(description: "The unique identifier for an attribute code. This value should be in lowercase letters without spaces.") + entity_type: String @doc(description: "The type of entity that defines the attribute") +} From 0294d2c4de0e320caed929edbbf7e7a6b1429e93 Mon Sep 17 00:00:00 2001 From: Prabhu Ram Date: Mon, 10 May 2021 11:44:11 -0500 Subject: [PATCH 2/3] Update EavGraphQl.graphqls --- .../graph-ql/coverage/eav/EavGraphQl.graphqls | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/design-documents/graph-ql/coverage/eav/EavGraphQl.graphqls b/design-documents/graph-ql/coverage/eav/EavGraphQl.graphqls index 4bbd6e522..fc26ec6a9 100644 --- a/design-documents/graph-ql/coverage/eav/EavGraphQl.graphqls +++ b/design-documents/graph-ql/coverage/eav/EavGraphQl.graphqls @@ -23,11 +23,13 @@ type StorefrontProperties { position: Int visible_on_catalog_storefront: Boolean use_in_layered_navigation: UseInLayeredNavigationOptions + use_in_search_results_layered_navigation: Boolean + use_in_search: Boolean } enum UseInLayeredNavigationOptions { NO - FILTERABLE_WTH_RESULTS + FILTERABLE_WITH_RESULTS FILTERABLE_NO_RESULT } @@ -40,3 +42,8 @@ input AttributeInput @doc(description: "AttributeInput specifies the attribute_c attribute_code: String @doc(description: "The unique identifier for an attribute code. This value should be in lowercase letters without spaces.") entity_type: String @doc(description: "The type of entity that defines the attribute") } + +# Additional changes made in CatalogGraphQl schema +type Aggregation @doc(description: "A bucket that contains information for each filterable option (such as price, category `UID`, and custom attributes).") { + position: Int @doc(description: "The position of attribute in layered navigation block.") +} From a9e590ec2c96ec1d18534261e8bc8b499233c08e Mon Sep 17 00:00:00 2001 From: Prabhu Ram Date: Tue, 11 May 2021 15:59:54 -0500 Subject: [PATCH 3/3] Updated based on review comments --- design-documents/graph-ql/coverage/eav/EavGraphQl.graphqls | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/design-documents/graph-ql/coverage/eav/EavGraphQl.graphqls b/design-documents/graph-ql/coverage/eav/EavGraphQl.graphqls index fc26ec6a9..a77a00b47 100644 --- a/design-documents/graph-ql/coverage/eav/EavGraphQl.graphqls +++ b/design-documents/graph-ql/coverage/eav/EavGraphQl.graphqls @@ -19,12 +19,11 @@ type Attribute @doc(description: "Attribute contains the attribute_type of the s } type StorefrontProperties { - used_in_product_listing: Boolean + use_in_product_listing: Boolean position: Int - visible_on_catalog_storefront: Boolean + visible_on_catalog_pages: Boolean use_in_layered_navigation: UseInLayeredNavigationOptions use_in_search_results_layered_navigation: Boolean - use_in_search: Boolean } enum UseInLayeredNavigationOptions {