diff --git a/src/_data/toc/graphql.yml b/src/_data/toc/graphql.yml
index a6a825c826e..875bc1760d2 100644
--- a/src/_data/toc/graphql.yml
+++ b/src/_data/toc/graphql.yml
@@ -82,7 +82,11 @@ pages:
url: /graphql/queries/company.html
edition: b2b-only
exclude_versions: ["2.3"]
-
+
+ - label: compareList query
+ url: /graphql/queries/compare-list.html
+ exclude_versions: ["2.3"]
+
- label: countries query
url: /graphql/queries/directory-countries.html
@@ -181,6 +185,10 @@ pages:
- label: addDownloadableProductsToCart mutation
url: /graphql/mutations/add-downloadable-products.html
+ - label: addProductsToCompareList mutation
+ url: /graphql/mutations/add-products-to-compare-list.html
+ exclude_versions: ["2.3"]
+
- label: addProductsToRequisitionList mutation
url: /graphql/mutations/add-products-to-requisition-list.html
edition: b2b-only
@@ -227,6 +235,10 @@ pages:
url: /graphql/mutations/apply-store-credit.html
edition: ee-only
+ - label: assignCompareListToCustomer mutation
+ url: /graphql/mutations/assign-compare-list-to-customer.html
+ exclude_versions: ["2.3"]
+
- label: changeCustomerPassword mutation
url: /graphql/mutations/change-customer-password.html
@@ -268,6 +280,10 @@ pages:
edition: b2b-only
exclude_versions: ["2.3"]
+ - label: createCompareList mutation
+ url: /graphql/mutations/create-compare-list.html
+ exclude_versions: [ "2.3" ]
+
- label: createCustomer mutation
url: /graphql/mutations/create-customer.html
@@ -320,6 +336,10 @@ pages:
edition: b2b-only
exclude_versions: ["2.3"]
+ - label: deleteCompareList mutation
+ url: /graphql/mutations/delete-compare-list.html
+ exclude_versions: [ "2.3" ]
+
- label: deleteCustomerAddress mutation
url: /graphql/mutations/delete-customer-address.html
@@ -371,6 +391,10 @@ pages:
url: /graphql/mutations/redeem-giftcard-balance.html
edition: ee-only
+ - label: removeProductsFromCompareList mutation
+ url: /graphql/mutations/remove-products-from-compare-list.html
+ exclude_versions: ["2.3"]
+
- label: removeCouponFromCart mutation
url: /graphql/mutations/remove-coupon.html
diff --git a/src/_includes/graphql/compare-list-output.md b/src/_includes/graphql/compare-list-output.md
new file mode 100644
index 00000000000..bbaba3d473b
--- /dev/null
+++ b/src/_includes/graphql/compare-list-output.md
@@ -0,0 +1,34 @@
+Attribute | Data Type | Description
+--- | --- | ---
+`attributes` | [[ComparableAttribute]](#comparableAttributeObjectOutput) | An array of attributes that can be used for comparing products
+`item_count` | Int! | The number of items in the compare lists
+`items` | [[ComparableItem]](#comparableItemObjectOutput) | An array of products to compare
+`uid` | ID! | The unique ID of a `CompareList` object
+
+### ComparableAttribute object {#comparableAttributeObjectOutput}
+
+The `ComparableAttribute` object outputs attributes which available to comparison:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`code` | String! | An attribute code that is enabled for product comparisons
+`label` | String! | The label of the attribute code.
+
+### ComparableItem object {#comparableItemObjectOutput}
+
+The `ComparableItem` object outputs items that have been added to compare list:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`attributes` | [[ProductAttribute]!](#productAttributeObjectOutput) | An array of product attributes that can be used to compare products
+`product` | [ProductInterface!]({{ page.baseurl }}/graphql/interfaces/product-interface.html) | Contains details about a product in a compare list
+`uid` | ID! | The unique ID of a `ComparableItem` object
+
+### ProductAttribute object {#productAttributeObjectOutput}
+
+The `ProductAttribute` object outputs item data from the corresponding attribute:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`code` | String! | The unique identifier for a product attribute code
+`label` | String! | The display value of the attribute
diff --git a/src/_includes/graphql/customer-output-24.md b/src/_includes/graphql/customer-output-24.md
index 282b0304627..c5d12fe8ab3 100644
--- a/src/_includes/graphql/customer-output-24.md
+++ b/src/_includes/graphql/customer-output-24.md
@@ -1,4 +1,5 @@
{% if page.url contains 'graphql/queries/customer.html' %}
+{% assign comparelist_text = " '[CompareList](#CompareList)' %}
{% assign customeraddress_text = '[CustomerAddress](#customerAddressOutput)' %}
{% assign customeroutput_text = '[CustomerOrders](#customerOrders)' %}
{% assign crossref_text = '. See [`orders` input attributes](#orders) for details' %}
@@ -6,6 +7,7 @@
{% assign rewardpoints_text = '[RewardPoints](#RewardPoints)' %}
{% assign wishlist_text = '[Wishlist](#Wishlist)!' %}
{% else %}
+{% assign comparelist_text = 'CompareList' %}
{% assign customeraddress_text = 'CustomerAddress' %}
{% assign customeroutput_text = '[CustomerOrders]' %}
{% assign crossref_text = '' %}
@@ -18,6 +20,7 @@ Attribute | Data Type | Description
--- | --- | ---
`addresses` | {{ customeraddress_text }} | An array containing the customer's shipping and billing addresses
`allow_remote_shopping_assistance` | Boolean! | Indicates whether the customer has enabled remote shopping assistance
+`compare_list` | CompareList | The contents of the customer's compare list
`created_at` | String | Timestamp indicating when the account was created
`date_of_birth` | String | The customer's date of birth. In keeping with current security and privacy best practices, be sure you are aware of any potential legal and security risks associated with the storage of customers’ full date of birth (month, day, year) along with other personal identifiers, such as full name, before collecting or processing such data.
`default_billing` | String | The ID assigned to the billing address
diff --git a/src/guides/v2.4/graphql/mutations/add-products-to-compare-list.md b/src/guides/v2.4/graphql/mutations/add-products-to-compare-list.md
new file mode 100644
index 00000000000..f6bf3865a26
--- /dev/null
+++ b/src/guides/v2.4/graphql/mutations/add-products-to-compare-list.md
@@ -0,0 +1,156 @@
+---
+group: graphql
+title: addProductsToCompareList mutation
+contributor_name: Atwix
+contributor_link: https://www.atwix.com/
+---
+
+The `addProductsToCompareList` mutation adds products to the comparison list.
+
+You must specify the unique ID of the compare list as well as a list of product IDs to be added to the comparison list.
+
+## Syntax
+
+```graphql
+mutation {
+ addProductsToCompareList(
+ input: AddProductsToCompareListInput
+ ) {
+ CompareList
+ }
+}
+```
+
+## Example usage
+
+The following example shows how to add two products into the existing comparison list with unique ID "sssXyGZkTFksdPnxNoK1ut6OiV4bbchD".
+
+**Request:**
+
+```graphql
+mutation {
+ addProductsToCompareList(
+ input: {
+ uid: "sssXyGZkTFksdPnxNoK1ut6OiV4bbchD",
+ products: ["3", "4"]
+ }
+ ) {
+ uid
+ item_count
+ attributes {
+ code
+ label
+ }
+ items {
+ uid
+ product {
+ sku
+ name
+ description {
+ html
+ }
+ }
+ }
+ }
+}
+```
+
+**Response:**
+
+```json
+{
+ "data": {
+ "addProductsToCompareList": {
+ "uid": "sssXyGZkTFksdPnxNoK1ut6OiV4bbchD",
+ "item_count": 4,
+ "attributes": [
+ {
+ "code": "sku",
+ "label": "SKU"
+ },
+ {
+ "code": "description",
+ "label": "Description"
+ },
+ {
+ "code": "short_description",
+ "label": "Short Description"
+ },
+ {
+ "code": "activity",
+ "label": "Activity"
+ }
+ ],
+ "items": [
+ {
+ "uid": "1",
+ "product": {
+ "sku": "24-MB01",
+ "name": "Joust Duffle Bag",
+ "description": {
+ "html": "
The sporty Joust Duffle Bag can't be beat - not in the gym, not on the luggage carousel, not anywhere. Big enough to haul a basketball or soccer ball and some sneakers with plenty of room to spare, it's ideal for athletes with places to go.
\n
\n- Dual top handles.
\n- Adjustable shoulder strap.
\n- Full-length zipper.
\n- L 29\" x W 13\" x H 11\".
\n
"
+ }
+ }
+ },
+ {
+ "uid": "2",
+ "product": {
+ "sku": "24-MB04",
+ "name": "Strive Shoulder Pack",
+ "description": {
+ "html": "Convenience is next to nothing when your day is crammed with action. So whether you're heading to class, gym, or the unbeaten path, make sure you've got your Strive Shoulder Pack stuffed with all your essentials, and extras as well.
\n\n- Zippered main compartment.
\n- Front zippered pocket.
\n- Side mesh pocket.
\n- Cell phone pocket on strap.
\n- Adjustable shoulder strap and top carry handle.
\n
"
+ }
+ }
+ },
+ {
+ "uid": "3",
+ "product": {
+ "sku": "24-MB03",
+ "name": "Crown Summit Backpack",
+ "description": {
+ "html": "The Crown Summit Backpack is equally at home in a gym locker, study cube or a pup tent, so be sure yours is packed with books, a bag lunch, water bottles, yoga block, laptop, or whatever else you want in hand. Rugged enough for day hikes and camping trips, it has two large zippered compartments and padded, adjustable shoulder straps.
\n\n- Top handle.
\n- Grommet holes.
\n- Two-way zippers.
\n- H 20\" x W 14\" x D 12\".
\n- Weight: 2 lbs, 8 oz. Volume: 29 L.
\n"
+ }
+ }
+ },
+ {
+ "uid": "4",
+ "product": {
+ "sku": "24-MB05",
+ "name": "Wayfarer Messenger Bag",
+ "description": {
+ "html": "Perfect for class, work or the gym, the Wayfarer Messenger Bag is packed with pockets. The dual-buckle flap closure reveals an organizational panel, and the roomy main compartment has spaces for your laptop and a change of clothes. An adjustable shoulder strap and easy-grip handle promise easy carrying.
\n\n- Multiple internal zip pockets.
\n- Made of durable nylon.
\n
"
+ }
+ }
+ }
+ ]
+ }
+ }
+}
+```
+
+## Input attributes
+
+The `AddProductsToCompareListInput` input object defines the product IDs to be compared within an existing comparison list.
+
+### AddProductsToCompareListInput attributes {#addProductsToCompareListInput}
+
+The `AddProductsToCompareListInput` object contains the following attributes:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`products` | [ID]! | An array of product IDs to add to the compare list
+`uid` | ID! | The unique ID of a `CompareList` object
+
+## Output attributes
+
+The `CompareList` output object contains the following attribute:
+
+{% include graphql/compare-list-output.md %}
+
+## Related topics
+
+* [compareList query]({{page.baseurl}}/graphql/queries/compare-list.html)
+* [assignCompareListToCustomer mutation]({{page.baseurl}}/graphql/mutations/assign-compare-list-to-customer.html)
+* [createCompareList mutation]({{page.baseurl}}/graphql/mutations/create-compare-list.html)
+* [deleteCompareList mutation]({{page.baseurl}}/graphql/mutations/delete-compare-list.html)
+* [removeProductsFromCompareList mutation]({{page.baseurl}}/graphql/mutations/remove-products-from-compare-list.html)
diff --git a/src/guides/v2.4/graphql/mutations/assign-compare-list-to-customer.md b/src/guides/v2.4/graphql/mutations/assign-compare-list-to-customer.md
new file mode 100644
index 00000000000..53d1d3d963a
--- /dev/null
+++ b/src/guides/v2.4/graphql/mutations/assign-compare-list-to-customer.md
@@ -0,0 +1,143 @@
+---
+group: graphql
+title: assignCompareListToCustomer mutation
+contributor_name: Atwix
+contributor_link: https://www.atwix.com/
+---
+
+The `assignCompareListToCustomer` mutation assigns the specified compare list to the logged-in customer. Use this mutation when a customer creates a compare list as a guest, but subsequently logs in.
+
+This mutation requires a valid [customer authentication token]({{page.baseurl}}/graphql/mutations/generate-customer-token.html).
+
+## Syntax
+
+```graphql
+mutation {
+ assignCompareListToCustomer(
+ uid: ID!
+ ) {
+ AssignCompareListToCustomerOutput
+ }
+}
+```
+
+## Example usage
+
+The following example assigns the compare list with a `uid` value of `sssXyGZkTFksdPnxNoK1ut6OiV4bbchD` to the logged-in customer.
+
+**Request:**
+
+```graphql
+mutation {
+ assignCompareListToCustomer(
+ uid: "sssXyGZkTFksdPnxNoK1ut6OiV4bbchD",
+ ) {
+ result
+ compare_list {
+ uid
+ item_count
+ attributes {
+ code
+ label
+ }
+ items {
+ uid
+ product {
+ sku
+ name
+ description {
+ html
+ }
+ }
+ }
+ }
+ }
+}
+```
+
+**Response:**
+
+```json
+{
+ "data": {
+ "assignCompareListToCustomer": {
+ "result": true,
+ "compare_list": {
+ "uid": "sssXyGZkTFksdPnxNoK1ut6OiV4bbchD",
+ "item_count": 2,
+ "attributes": [
+ {
+ "code": "sku",
+ "label": "SKU"
+ },
+ {
+ "code": "description",
+ "label": "Description"
+ },
+ {
+ "code": "short_description",
+ "label": "Short Description"
+ },
+ {
+ "code": "activity",
+ "label": "Activity"
+ }
+ ],
+ "items": [
+ {
+ "uid": "3",
+ "product": {
+ "sku": "24-MB03",
+ "name": "Crown Summit Backpack",
+ "description": {
+ "html": "The Crown Summit Backpack is equally at home in a gym locker, study cube or a pup tent, so be sure yours is packed with books, a bag lunch, water bottles, yoga block, laptop, or whatever else you want in hand. Rugged enough for day hikes and camping trips, it has two large zippered compartments and padded, adjustable shoulder straps.
\n\n- Top handle.
\n- Grommet holes.
\n- Two-way zippers.
\n- H 20\" x W 14\" x D 12\".
\n- Weight: 2 lbs, 8 oz. Volume: 29 L.
\n"
+ }
+ }
+ },
+ {
+ "uid": "4",
+ "product": {
+ "sku": "24-MB05",
+ "name": "Wayfarer Messenger Bag",
+ "description": {
+ "html": "Perfect for class, work or the gym, the Wayfarer Messenger Bag is packed with pockets. The dual-buckle flap closure reveals an organizational panel, and the roomy main compartment has spaces for your laptop and a change of clothes. An adjustable shoulder strap and easy-grip handle promise easy carrying.
\n\n- Multiple internal zip pockets.
\n- Made of durable nylon.
\n
"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+}
+```
+
+## Input attributes
+
+The `assignCompareListToCustomer` mutation requires the following input.
+
+Attribute | Data Type | Description
+--- | --- | ---
+`uid` | ID! | The unique ID of the compare list to assign
+
+## Output attributes
+
+The `AssignCompareListToCustomerOutput` object contains the result of the assigning process and comparison list.
+
+Attribute | Data Type | Description
+--- | --- | ---
+`compare_list` | CompareList | A value of `true` indicates the compare list has been assigned successfully, otherwise a value returns `false`
+`result` | Boolean! | A value of `true` indicates the compare list has been assigned successfully
+
+### CompareList attributes
+
+The `CompareList` output object contains the following attributes:
+
+{% include graphql/compare-list-output.md %}
+
+## Related topics
+
+* [compareList query]({{page.baseurl}}/graphql/queries/compare-list.html)
+* [addProductsToCompareList mutation]({{page.baseurl}}/graphql/mutations/add-products-to-compare-list.html)
+* [createCompareList mutation]({{page.baseurl}}/graphql/mutations/create-compare-list.html)
+* [deleteCompareList mutation]({{page.baseurl}}/graphql/mutations/delete-compare-list.html)
+* [removeProductsFromCompareList mutation]({{page.baseurl}}/graphql/mutations/remove-products-from-compare-list.html)
diff --git a/src/guides/v2.4/graphql/mutations/create-compare-list.md b/src/guides/v2.4/graphql/mutations/create-compare-list.md
new file mode 100644
index 00000000000..1fef3017a20
--- /dev/null
+++ b/src/guides/v2.4/graphql/mutations/create-compare-list.md
@@ -0,0 +1,134 @@
+---
+group: graphql
+title: createCompareList mutation
+contributor_name: Atwix
+contributor_link: https://www.atwix.com/
+---
+
+The `createCompareList` mutation creates a new compare list that contains products with IDs specified in the `input` attribute.
+
+Luma uses a widget to display the product name, price, and other information. If you want to present this information without a widget, you can set the product attributes to be comparable at **Stores** > Attributes > **Product**.
+
+## Syntax
+
+```graphql
+mutation {
+ createCompareList(
+ input: CreateCompareListInput
+ ) {
+ CompareList
+ }
+}
+```
+
+## Example usage
+
+The following example shows how to create a comparison list containing two products.
+
+**Request:**
+
+```graphql
+mutation {
+ createCompareList(
+ input: {
+ products: ["1", "2"]
+ }
+ ) {
+ uid
+ item_count
+ attributes {
+ code
+ label
+ }
+ items {
+ uid
+ product {
+ sku
+ name
+ description {
+ html
+ }
+ }
+ }
+ }
+}
+```
+
+**Response:**
+
+```json
+{
+ "data": {
+ "createCompareList": {
+ "uid": "sssXyGZkTFksdPnxNoK1ut6OiV4bbchD",
+ "item_count": 2,
+ "attributes": [
+ {
+ "code": "sku",
+ "label": "SKU"
+ },
+ {
+ "code": "description",
+ "label": "Description"
+ },
+ {
+ "code": "short_description",
+ "label": "Short Description"
+ },
+ {
+ "code": "activity",
+ "label": "Activity"
+ }
+ ],
+ "items": [
+ {
+ "uid": "1",
+ "product": {
+ "sku": "24-MB01",
+ "name": "Joust Duffle Bag",
+ "description": {
+ "html": "The sporty Joust Duffle Bag can't be beat - not in the gym, not on the luggage carousel, not anywhere. Big enough to haul a basketball or soccer ball and some sneakers with plenty of room to spare, it's ideal for athletes with places to go.
\n
\n- Dual top handles.
\n- Adjustable shoulder strap.
\n- Full-length zipper.
\n- L 29\" x W 13\" x H 11\".
\n
"
+ }
+ }
+ },
+ {
+ "uid": "2",
+ "product": {
+ "sku": "24-MB04",
+ "name": "Strive Shoulder Pack",
+ "description": {
+ "html": "Convenience is next to nothing when your day is crammed with action. So whether you're heading to class, gym, or the unbeaten path, make sure you've got your Strive Shoulder Pack stuffed with all your essentials, and extras as well.
\n\n- Zippered main compartment.
\n- Front zippered pocket.
\n- Side mesh pocket.
\n- Cell phone pocket on strap.
\n- Adjustable shoulder strap and top carry handle.
\n
"
+ }
+ }
+ }
+ ]
+ }
+ }
+}
+```
+
+## Input attributes
+
+The `CreateCompareListInput` input object defines the product IDs for comparing.
+
+### CreateCompareListInput attributes {#CreateCompareListInput}
+
+The `CreateCompareListInput` object contains the following attributes:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`products` | [ID!] | An array of product IDs to add to the compare list
+
+## Output attributes
+
+The `CompareList` output object contains the following attributes:
+
+{% include graphql/compare-list-output.md %}
+
+## Related topics
+
+* [compareList query]({{page.baseurl}}/graphql/queries/compare-list.html)
+* [addProductsToCompareList mutation]({{page.baseurl}}/graphql/mutations/add-products-to-compare-list.html)
+* [assignCompareListToCustomer mutation]({{page.baseurl}}/graphql/mutations/assign-compare-list-to-customer.html)
+* [deleteCompareList mutation]({{page.baseurl}}/graphql/mutations/delete-compare-list.html)
+* [removeProductsFromCompareList mutation]({{page.baseurl}}/graphql/mutations/remove-products-from-compare-list.html)
diff --git a/src/guides/v2.4/graphql/mutations/delete-compare-list.md b/src/guides/v2.4/graphql/mutations/delete-compare-list.md
new file mode 100644
index 00000000000..694f8fb2fb8
--- /dev/null
+++ b/src/guides/v2.4/graphql/mutations/delete-compare-list.md
@@ -0,0 +1,72 @@
+---
+group: graphql
+title: deleteCompareList mutation
+contributor_name: Atwix
+contributor_link: https://www.atwix.com/
+---
+
+The `deleteCompareList` mutation deletes the specified compare list.
+
+## Syntax
+
+```graphql
+mutation {
+ deleteCompareList(
+ uid: ID!
+ ) {
+ DeleteCompareListOutput
+ }
+}
+```
+
+## Example usage
+
+The following example deletes the comparison list that has a `uid` value of `sssXyGZkTFksdPnxNoK1ut6OiV4bbchD`.
+
+**Request:**
+
+```graphql
+mutation {
+ deleteCompareList(
+ uid: "sssXyGZkTFksdPnxNoK1ut6OiV4bbchD"
+ ) {
+ result
+ }
+}
+```
+
+**Response:**
+
+```json
+{
+ "data": {
+ "deleteCompareList": {
+ "result": true
+ }
+ }
+}
+```
+
+## Input attributes
+
+The `deleteCompareList` mutation requires the following input.
+
+Attribute | Data Type | Description
+--- | --- | ---
+`uid` | ID! | The unique ID of the compare list to delete
+
+## Output attributes
+
+The `DeleteCompareListOutput` object returns a Boolean value that indicates whether the operation was successful.
+
+Attribute | Data Type | Description
+--- | --- | ---
+`result` | Boolean! | A value of `true` indicates the compare list has been deleted successfully. Otherwise, the value is `false`
+
+## Related topics
+
+* [compareList query]({{page.baseurl}}/graphql/queries/compare-list.html)
+* [addProductsToCompareList mutation]({{page.baseurl}}/graphql/mutations/add-products-to-compare-list.html)
+* [assignCompareListToCustomer mutation]({{page.baseurl}}/graphql/mutations/assign-compare-list-to-customer.html)
+* [createCompareList mutation]({{page.baseurl}}/graphql/mutations/create-compare-list.html)
+* [removeProductsFromCompareList mutation]({{page.baseurl}}/graphql/mutations/remove-products-from-compare-list.html)
diff --git a/src/guides/v2.4/graphql/mutations/remove-products-from-compare-list.md b/src/guides/v2.4/graphql/mutations/remove-products-from-compare-list.md
new file mode 100644
index 00000000000..7f46c972d35
--- /dev/null
+++ b/src/guides/v2.4/graphql/mutations/remove-products-from-compare-list.md
@@ -0,0 +1,136 @@
+---
+group: graphql
+title: removeProductsFromCompareList mutation
+contributor_name: Atwix
+contributor_link: https://www.atwix.com/
+---
+
+The `removeProductsFromCompareList` mutation removes products from a compare list.
+
+You must specify the unique ID of a compare list along with the list of product IDs to be removed from the compare list.
+
+## Syntax
+
+```graphql
+mutation {
+ removeProductsFromCompareList(
+ input: RemoveProductsFromCompareListInput
+ ) {
+ CompareList
+ }
+}
+```
+
+## Example usage
+
+The following example removes two products from the compare list with the unique ID "sssXyGZkTFksdPnxNoK1ut6OiV4bbchD".
+
+**Request:**
+
+```graphql
+mutation {
+ removeProductsFromCompareList(
+ input: {
+ uid: "sssXyGZkTFksdPnxNoK1ut6OiV4bbchD",
+ products: ["1", "2"]
+ }
+ ) {
+ uid
+ item_count
+ attributes {
+ code
+ label
+ }
+ items {
+ uid
+ product {
+ sku
+ name
+ description {
+ html
+ }
+ }
+ }
+ }
+}
+```
+
+**Response:**
+
+```json
+{
+ "data": {
+ "removeProductsFromCompareList": {
+ "uid": "sssXyGZkTFksdPnxNoK1ut6OiV4bbchD",
+ "item_count": 2,
+ "attributes": [
+ {
+ "code": "sku",
+ "label": "SKU"
+ },
+ {
+ "code": "description",
+ "label": "Description"
+ },
+ {
+ "code": "short_description",
+ "label": "Short Description"
+ },
+ {
+ "code": "activity",
+ "label": "Activity"
+ }
+ ],
+ "items": [
+ {
+ "uid": "3",
+ "product": {
+ "sku": "24-MB03",
+ "name": "Crown Summit Backpack",
+ "description": {
+ "html": "The Crown Summit Backpack is equally at home in a gym locker, study cube or a pup tent, so be sure yours is packed with books, a bag lunch, water bottles, yoga block, laptop, or whatever else you want in hand. Rugged enough for day hikes and camping trips, it has two large zippered compartments and padded, adjustable shoulder straps.
\n\n- Top handle.
\n- Grommet holes.
\n- Two-way zippers.
\n- H 20\" x W 14\" x D 12\".
\n- Weight: 2 lbs, 8 oz. Volume: 29 L.
\n"
+ }
+ }
+ },
+ {
+ "uid": "4",
+ "product": {
+ "sku": "24-MB05",
+ "name": "Wayfarer Messenger Bag",
+ "description": {
+ "html": "Perfect for class, work or the gym, the Wayfarer Messenger Bag is packed with pockets. The dual-buckle flap closure reveals an organizational panel, and the roomy main compartment has spaces for your laptop and a change of clothes. An adjustable shoulder strap and easy-grip handle promise easy carrying.
\n\n- Multiple internal zip pockets.
\n- Made of durable nylon.
\n
"
+ }
+ }
+ }
+ ]
+ }
+ }
+}
+```
+
+## Input attributes
+
+The `RemoveProductsFromCompareListInput` input object defines the comparison list to be modified.
+
+### RemoveProductsFromCompareListInput attributes {#removeProductsFromCompareListInput}
+
+The `RemoveProductsFromCompareListInput` object contains the following attributes:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`products` | [ID]! | An array of product IDs to remove from the compare list
+`uid` | ID! | The unique identifier of the compare list to modify
+
+## Output attributes
+
+The `CompareList` output object contains the following attributes:
+
+{% include graphql/compare-list-output.md %}
+
+## Related topics
+
+* [compareList query]({{page.baseurl}}/graphql/queries/compare-list.html)
+* [addProductsToCompareList mutation]({{page.baseurl}}/graphql/mutations/add-products-to-compare-list.html)
+* [assignCompareListToCustomer mutation]({{page.baseurl}}/graphql/mutations/assign-compare-list-to-customer.html)
+* [createCompareList mutation]({{page.baseurl}}/graphql/mutations/create-compare-list.html)
+* [deleteCompareList mutation]({{page.baseurl}}/graphql/mutations/delete-compare-list.html)
diff --git a/src/guides/v2.4/graphql/queries/compare-list.md b/src/guides/v2.4/graphql/queries/compare-list.md
new file mode 100644
index 00000000000..c22a774f604
--- /dev/null
+++ b/src/guides/v2.4/graphql/queries/compare-list.md
@@ -0,0 +1,122 @@
+---
+group: graphql
+title: compareList query
+contributor_name: Atwix
+contributor_link: https://www.atwix.com/
+---
+
+The `compareList` query retrieves information about a list of products so that the shopper can compare those products.
+
+## Syntax
+
+```graphql
+compareList(
+ uid: ID!
+): CompareList
+```
+
+## Example usage
+
+The following query returns the information about products in the comparison list with the unique ID of "sssXyGZkTFksdPnxNoK1ut6OiV4bbchD":
+
+**Request:**
+
+```graphql
+{
+ compareList(
+ uid: "sssXyGZkTFksdPnxNoK1ut6OiV4bbchD"
+ ) {
+ uid
+ item_count
+ attributes {
+ code
+ label
+ }
+ items {
+ uid
+ product {
+ sku
+ name
+ description {
+ html
+ }
+ }
+ }
+ }
+}
+```
+
+**Response:**
+
+```json
+{
+ "data": {
+ "compareList": {
+ "uid": "sssXyGZkTFksdPnxNoK1ut6OiV4bbchD",
+ "item_count": 2,
+ "attributes": [
+ {
+ "code": "sku",
+ "label": "SKU"
+ },
+ {
+ "code": "description",
+ "label": "Description"
+ },
+ {
+ "code": "short_description",
+ "label": "Short Description"
+ },
+ {
+ "code": "activity",
+ "label": "Activity"
+ }
+ ],
+ "items": [
+ {
+ "uid": "3",
+ "product": {
+ "sku": "24-MB03",
+ "name": "Crown Summit Backpack",
+ "description": {
+ "html": "The Crown Summit Backpack is equally at home in a gym locker, study cube or a pup tent, so be sure yours is packed with books, a bag lunch, water bottles, yoga block, laptop, or whatever else you want in hand. Rugged enough for day hikes and camping trips, it has two large zippered compartments and padded, adjustable shoulder straps.
\n\n- Top handle.
\n- Grommet holes.
\n- Two-way zippers.
\n- H 20\" x W 14\" x D 12\".
\n- Weight: 2 lbs, 8 oz. Volume: 29 L.
\n"
+ }
+ }
+ },
+ {
+ "uid": "4",
+ "product": {
+ "sku": "24-MB05",
+ "name": "Wayfarer Messenger Bag",
+ "description": {
+ "html": "Perfect for class, work or the gym, the Wayfarer Messenger Bag is packed with pockets. The dual-buckle flap closure reveals an organizational panel, and the roomy main compartment has spaces for your laptop and a change of clothes. An adjustable shoulder strap and easy-grip handle promise easy carrying.
\n\n- Multiple internal zip pockets.
\n- Made of durable nylon.
\n
"
+ }
+ }
+ }
+ ]
+ }
+ }
+}
+```
+
+## Input attributes
+
+The `compareList` query requires the following input:
+
+Attribute | Data Type | Description
+--- | --- | ---
+`uid` | ID! | The unique ID of the compare list
+
+## Output attributes
+
+The `CompareList` output object contains the following attributes:
+
+{% include graphql/compare-list-output.md %}
+
+## Related topics
+
+* [addProductsToCompareList mutation]({{page.baseurl}}/graphql/mutations/add-products-to-compare-list.html)
+* [assignCompareListToCustomer mutation]({{page.baseurl}}/graphql/mutations/assign-compare-list-to-customer.html)
+* [createCompareList mutation]({{page.baseurl}}/graphql/mutations/create-compare-list.html)
+* [deleteCompareList mutation]({{page.baseurl}}/graphql/mutations/delete-compare-list.html)
+* [removeProductsFromCompareList mutation]({{page.baseurl}}/graphql/mutations/remove-products-from-compare-list.html)
diff --git a/src/guides/v2.4/graphql/queries/customer.md b/src/guides/v2.4/graphql/queries/customer.md
index a0691eddb74..be4242895e4 100644
--- a/src/guides/v2.4/graphql/queries/customer.md
+++ b/src/guides/v2.4/graphql/queries/customer.md
@@ -665,6 +665,12 @@ The `customer` object can contain the following attributes:
{% include graphql/customer-output-24.md %}
+### CompareList attributes {#CompareList}
+
+The `CompareList` object can contain the following attributes:
+
+{% include graphql/compare-list-output.md %}
+
### CustomerAddress attributes {#customerAddressOutput}
The values assigned to attributes such as `firstname` and `lastname` in this object may be different from those defined in the `Customer` object.