diff --git a/src/_data/toc/graphql.yml b/src/_data/toc/graphql.yml
index 4dc3eeca68e..31a6fb85cba 100644
--- a/src/_data/toc/graphql.yml
+++ b/src/_data/toc/graphql.yml
@@ -465,7 +465,7 @@ pages:
- label: CategoryInterface attributes
url: /graphql/interfaces/category-interface.html
- - label: CustomizableOptionInterface
+ - label: CustomizableOptionInterface attributes
url: /graphql/interfaces/customizable-option-interface.html
- label: Bundle product data types
@@ -489,6 +489,10 @@ pages:
- label: Virtual product data types
url: /graphql/interfaces/virtual-product.html
+ - label: CartItemInterface attributes and implementations
+ url: /graphql/interfaces/cart-item-interface.html
+ exclude_versions: ["2.3"]
+
- label: CreditMemoItemInterface attributes and implementations
url: /graphql/interfaces/credit-memo-item-interface.html
exclude_versions: ["2.3"]
diff --git a/src/_includes/graphql/cart-item-input-24.md b/src/_includes/graphql/cart-item-input-24.md
new file mode 100644
index 00000000000..7e0b1a69fc0
--- /dev/null
+++ b/src/_includes/graphql/cart-item-input-24.md
@@ -0,0 +1,7 @@
+Attribute | Data Type | Description
+--- | --- | ---
+`entered_options` | [EnteredOptionInput!] | An array of entered options for the base product, such as personalization text
+`parent_sku` | String | For child products, the SKU of its parent product
+`quantity` | Float! | The quantity of the item to add to the cart
+`selected_options` | [ID!] | The selected options for the base product, such as color or size, using the unique ID for a customizable or configurable object such as `CustomizableRadioOption`, `CustomizableDropDownOption`, or `ConfigurableProductOptionsValues`
+`sku` | String! | The sku of the product to be added to the cart
\ No newline at end of file
diff --git a/src/_includes/graphql/cart-object-24.md b/src/_includes/graphql/cart-object-24.md
index 12923b79227..28c7245b489 100644
--- a/src/_includes/graphql/cart-object-24.md
+++ b/src/_includes/graphql/cart-object-24.md
@@ -12,7 +12,7 @@ Attribute | Data Type | Description
`gift_message` | [GiftMessage][GiftMessage] | A gift message added to the cart
`gift_receipt_included` | Boolean! | Indicates if the customer requested a gift receipt for the cart
`gift_wrapping` | [GiftWrapping][GiftWrapping] | The selected gift wrapping for the cart
-`id` | ID! | The ID of the cart
+`id` | ID! | The unique ID of the cart
`is_virtual` | Boolean! | Indicates whether the cart contains only virtual products
`items` | [[CartItemInterface]][CartItemInterface] | Contains the items in the customer's cart
`prices` | [CartPrices][CartPrices] | Contains subtotals and totals
diff --git a/src/_includes/graphql/category-filter-input.md b/src/_includes/graphql/category-filter-input.md
index 20ec00f4ffd..c78e235b9c9 100644
--- a/src/_includes/graphql/category-filter-input.md
+++ b/src/_includes/graphql/category-filter-input.md
@@ -2,9 +2,10 @@ The `CategoryFilterInput` object defines the filters to be used in this query.
Attribute | Data type | Description
--- | --- | ---
-`ids` | FilterEqualTypeInput | Filters by the specified category IDs
+`category_uid` | FilterEqualTypeInput | Filters by the unique category ID for a `CategoryInterface` object
+`ids` | FilterEqualTypeInput | Deprecated. Use `category_uid` instead. Filters by the specified category IDs
`name` | FilterMatchTypeInput | Filters by the display name of the category
-`parent_id` | FilterEqualTypeInput | Filters by parent category ID
+`parent_id` | FilterEqualTypeInput | Filters by the unique parent category ID for a `CategoryInterface` object
`url_key` | FilterEqualTypeInput | Filters by the part of the URL that identifies the category
`url_path` | FilterEqualTypeInput | Filters by the URL path for the category
diff --git a/src/_includes/graphql/customer-orders-output.md b/src/_includes/graphql/customer-orders-output.md
index c3a932eaa4f..26dcb1ba377 100644
--- a/src/_includes/graphql/customer-orders-output.md
+++ b/src/_includes/graphql/customer-orders-output.md
@@ -50,7 +50,7 @@ Attribute | Data type | Description
`gift_message` | [GiftMessage](#GiftMessage) | The entered gift message for the order
`gift_receipt_included` | Boolean! | Indicates if the customer requested a gift receipt for the order
`gift_wrapping` | [GiftWrapping](#GiftWrapping) | The selected gift wrapping for the order
-`id` | ID! | Unique identifier for the order
+`id` | ID! | The unique ID for a `CustomerOrder` object
`increment_id` | String | Deprecated. Use the `id` attribute instead
`invoices` | [[Invoice]](#Invoice)! | Contains a list of invoices for the order
`items` | [[OrderItemInterface]](#OrderItemInterface) | An array containing the items purchased in this order
@@ -73,9 +73,9 @@ The `CreditMemo` object contains details about credit memos applied to an order.
Attribute | Data type | Description
--- | --- | ---
-`comments` | [[SalesCommentItem]](#SalesCommentItem) | Comments on the credit memo
-`id` | ID! | The unique ID of the credit memo
-`items` | [[CreditMemoItemInterface]](#CreditMemoItemInterface) | An array containing details about refunded items
+`comments` | [[SalesCommentItem](#SalesCommentItem)] | Comments on the credit memo
+`id` | ID! | The unique ID of the `CreditMemo` object
+`items` | [[CreditMemoItemInterface](#CreditMemoItemInterface)] | An array containing details about refunded items
`number` | String! | The sequential credit memo number
`total` | [CreditMemoTotal](#CreditMemoTotal) | Contains details about the total refunded amount
@@ -126,9 +126,9 @@ The `Invoice` object provides details about a customer invoice.
Attribute | Data type | Description
--- | --- | ---
-`comments` | [[SalesCommentItem]](#SalesCommentItem) | Comments on the invoice
-`id` | ID! | The internal ID of the invoice
-`items` | [[InvoiceItemInterface]](#InvoiceItemInterface)! | Contains details about invoiced products
+`comments` | [[SalesCommentItem](#SalesCommentItem)] | Comments on the invoice
+`id` | ID! | The internal ID of the `Invoice` object
+`items` | [[InvoiceItemInterface](#InvoiceItemInterface)]! | Contains details about invoiced products
`number` | String! | The sequential number of the invoice
`total` | [InvoiceTotal](#InvoiceTotal)! | Invoice total amount details
@@ -163,7 +163,7 @@ The ItemSelectedBundleOption object contains a list of bundle options that are a
Attribute | Data type | Description
--- | --- | ---
-`id` | ID! | The unique identifier of the option
+`id` | ID! | The unique identifier of the ItemSelectedBundleOption object
`label` | String! | The label of the option
`values` | [[ItemSelectedBundleOptionValue!](#ItemSelectedBundleOptionValue)]! | A list of products that represent the values of the parent option
@@ -171,7 +171,7 @@ Attribute | Data type | Description
Attribute | Data type | Description
--- | --- | ---
-`id` | ID! | The unique identifier of the option
+`id` | ID! | The unique identifier of the ItemSelectedBundleOptionValue object
`price` | Money! | The price of the child bundle product
`product_name` | String! | The name of the child bundle product
`product_sku` | String! | The SKU of the child bundle product
@@ -227,9 +227,9 @@ Attribute | Data type | Description
Attribute | Data type | Description
--- | --- | ---
-`comments` | [[SalesCommentItem]](#SalesCommentItem) | Comments added to the shipment
-`id` | ID! | The unique ID of the shipment
-`items` | [[ShipmentItemInterface]](#ShipmentItemInterface) | Contains items included in the shipment
+`comments` | [[SalesCommentItem](#SalesCommentItem)] | Comments added to the shipment
+`id` | ID! | The unique ID of the OrderShipment object
+`items` | [[ShipmentItemInterface](#ShipmentItemInterface)] | Contains items included in the shipment
`number` | String! | The sequential credit shipment number
`tracking` | [[ShipmentTracking]](#ShipmentTracking) | Contains shipment tracking detail
diff --git a/src/_includes/graphql/customizable-option-input-24.md b/src/_includes/graphql/customizable-option-input-24.md
new file mode 100644
index 00000000000..3e0e6eea548
--- /dev/null
+++ b/src/_includes/graphql/customizable-option-input-24.md
@@ -0,0 +1,4 @@
+Attribute | Data Type | Description
+--- | --- | ---
+`id` | Int | A unique ID assigned to the customizable option
+`value_string` | String! | A value assigned to the customizable option
\ No newline at end of file
diff --git a/src/_includes/graphql/downloadable-items-links.md b/src/_includes/graphql/downloadable-items-links.md
index 0ee816ac7c0..69a6fa1904b 100644
--- a/src/_includes/graphql/downloadable-items-links.md
+++ b/src/_includes/graphql/downloadable-items-links.md
@@ -6,4 +6,4 @@ Attribute | Data type | Description
--- | --- | ---
`sort_order` | Int | A number indicating the sort order
`title`| String | The display name of the link
-`uid` | ID! | A string that encodes option details
\ No newline at end of file
+`uid` | ID! | The unique ID for a `DownloadableItemsLinks` object
\ No newline at end of file
diff --git a/src/_includes/graphql/entered-option-input.md b/src/_includes/graphql/entered-option-input.md
index b3a84b11175..cb853c52cf5 100644
--- a/src/_includes/graphql/entered-option-input.md
+++ b/src/_includes/graphql/entered-option-input.md
@@ -2,5 +2,5 @@ The `EnteredOptionInput` object must contain the following attributes.
Attribute | Data Type | Description
--- | --- | ---
-`uid` | ID! | An encoded ID
+`uid` | ID! | The unique ID for a specific `CustomizableOptionInterface` object, such as a `CustomizableFieldOption`, `CustomizableFileOption`, or `CustomizableAreaOption` object
`value` | String! | Text the customer entered
diff --git a/src/_includes/graphql/gift-wrapping.md b/src/_includes/graphql/gift-wrapping.md
index 878fd99db5b..e20abd8ce9e 100644
--- a/src/_includes/graphql/gift-wrapping.md
+++ b/src/_includes/graphql/gift-wrapping.md
@@ -3,9 +3,10 @@ The `GiftWrapping` object can contain the following attributes.
Attribute | Data Type | Description
--- | --- | ---
`design` | String! | The name of the gift wrapping design
-`id` | ID! | The unique identifier for the gift wrapping option
+`id` | ID! | Deprecated. Use `uid` instead. The unique identifier for the gift wrapping option
`image` | [GiftWrappingImage](#GiftWrappingImage) | The preview image for the gift wrapping option
`price` | Money! | The price of the gift wrapping option
+`uid` | ID! | The unique identifier for the `GiftWrapping` object
### GiftWrappingImage object {#GiftWrappingImage}
diff --git a/src/_includes/graphql/grouped-product-sample-24.md b/src/_includes/graphql/grouped-product-sample-24.md
new file mode 100644
index 00000000000..6ded084da50
--- /dev/null
+++ b/src/_includes/graphql/grouped-product-sample-24.md
@@ -0,0 +1,80 @@
+```graphql
+{
+ products(filter:
+ {sku: {eq: "24-WG085_Group"}}
+ )
+ {
+ items {
+ uid
+ name
+ sku
+ __typename
+ ... on GroupedProduct {
+ items{
+ qty
+ position
+ product{
+ sku
+ name
+ __typename
+ url_key
+ }
+ }
+ }
+ }
+ }
+}
+```
+
+{% collapsible Response %}
+
+```json
+{
+ "data": {
+ "products": {
+ "items": [
+ {
+ "uid": "NDU=",
+ "name": "Set of Sprite Yoga Straps",
+ "sku": "24-WG085_Group",
+ "__typename": "GroupedProduct",
+ "items": [
+ {
+ "qty": 0,
+ "position": 0,
+ "product": {
+ "sku": "24-WG085",
+ "name": "Sprite Yoga Strap 6 foot",
+ "__typename": "SimpleProduct",
+ "url_key": "sprite-yoga-strap-6-foot"
+ }
+ },
+ {
+ "qty": 0,
+ "position": 1,
+ "product": {
+ "sku": "24-WG086",
+ "name": "Sprite Yoga Strap 8 foot",
+ "__typename": "SimpleProduct",
+ "url_key": "sprite-yoga-strap-8-foot"
+ }
+ },
+ {
+ "qty": 0,
+ "position": 2,
+ "product": {
+ "sku": "24-WG087",
+ "name": "Sprite Yoga Strap 10 foot",
+ "__typename": "SimpleProduct",
+ "url_key": "sprite-yoga-strap-10-foot"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+}
+```
+
+{% endcollapsible %}
\ No newline at end of file
diff --git a/src/_includes/graphql/item-selected-bundle-option.md b/src/_includes/graphql/item-selected-bundle-option.md
index dc8814a8711..bbcee5feaa6 100644
--- a/src/_includes/graphql/item-selected-bundle-option.md
+++ b/src/_includes/graphql/item-selected-bundle-option.md
@@ -4,16 +4,18 @@ The ItemSelectedBundleOption object contains a list of bundle options that are a
Attribute | Data type | Description
--- | --- | ---
-`id` | ID! | The unique identifier of the option
+`id` | ID! | Deprecated. Use `uid` instead. The unique identifier of the option
`label` | String! | The label of the option
+`uid` | ID! | The unique ID for a `ItemSelectedBundleOption` object
`values` | [[ItemSelectedBundleOptionValue](#ItemSelectedBundleOptionValue)] | A list of products that represent the values of the parent option
#### ItemSelectedBundleOptionValue attributes {#ItemSelectedBundleOptionValue}
Attribute | Data type | Description
--- | --- | ---
-`id` | ID! | The unique identifier of the option
+`id` | ID! | Deprecated. Use `uid` instead. The unique identifier of the option
`price` | Money! | The price of the child bundle product
`product_name` | String! | The name of the child bundle product
`product_sku` | String! | The SKU of the child bundle product
`quantity` | Float! | Indicates how many of this bundle product were ordered
+`uid` | ID! | The unique identifier of the option
diff --git a/src/_includes/graphql/store-config.md b/src/_includes/graphql/store-config.md
index 417e1964787..00e6d4358b2 100644
--- a/src/_includes/graphql/store-config.md
+++ b/src/_includes/graphql/store-config.md
@@ -72,7 +72,8 @@ Attribute | Data Type | Description | Default or example value
`product_reviews_enabled` | String | Indicates whether product reviews are enabled. Possible values: 1 (Yes) and 0 (No) | 1
`product_url_suffix` | String | The suffix applied to product pages, such as `.htm` or `.html` | `.html`
`required_character_classes_number` | String | The number of different character classes required in a password (lowercase, uppercase, digits, special characters).
Configuration path: customer/password/required_character_classes_number | 2
-`root_category_id` | Int | The ID of the root category | 2
+`root_category_id` | Int | Deprecated. Use `root_category_uid` instead. The ID of the root category | 2
+`root_category_uid` | Int | The unique ID for the root category object implementing `CategoryInterface` | 2
`sales_fixed_product_tax_display_setting` | [FixedProductTaxDisplaySettings](#FixedProductTaxDisplaySettings) | Corresponds to the **Display Prices In Sales Modules** field. It indicates how Fixed Product Taxes information is displayed on cart, checkout, and order pages | FPT_DISABLED
`sales_gift_wrapping` | String | Indicates if gift wrapping prices are displayed on the Orders page. Possible values: 1 (Yes) and 0 (No) | 1
`sales_printed_card` | String | Indicates if printed card prices are displayed on the Orders page. Possible values: 1 (Yes) and 0 (No) | 1
diff --git a/src/guides/v2.4/graphql/interfaces/bundle-product.md b/src/guides/v2.4/graphql/interfaces/bundle-product.md
index 44dfe60f201..ee171089e73 100644
--- a/src/guides/v2.4/graphql/interfaces/bundle-product.md
+++ b/src/guides/v2.4/graphql/interfaces/bundle-product.md
@@ -32,14 +32,14 @@ The `BundleItem` object contains the following attributes:
Attribute | Type | Description
--- | --- | ---
-`option_id` | Int | An ID assigned to each type of item in a bundle product
+`option_id` | Int | Deprecated. Use `uid` instead. An ID assigned to each type of item in a bundle product
`options` | [BundleItemOption] | An array of additional options for this bundle item
`position` | Int | The relative position of this item compared to the other bundle items
`required` | Boolean | Indicates whether the item must be included in the bundle
`sku` | String | The SKU of the bundle product
`title` | String | The display name of the item
`type` | String | The input type that the customer uses to select the item. Examples include radio button and checkbox.
-
+`uid` | ID | The unique ID for a `BundleItem` object
## BundleItemOption object
The `BundleItemOption` object contains the following attributes:
@@ -47,7 +47,7 @@ The `BundleItemOption` object contains the following attributes:
Attribute | Type | Description
--- | --- | ---
`can_change_quantity` | Boolean | Indicates whether the customer can change the number of items for this option
-`id` | Int | The ID assigned to the bundled item option
+`id` | Int | Deprecated. Use `uid` instead. The ID assigned to the bundled item option
`is_default` | Boolean | Indicates whether this option is the default option
`label` | String | The text that identifies the bundled item option
`position` | Int | When a bundle item contains multiple options, the relative position of this option compared to the other options
@@ -56,7 +56,7 @@ Attribute | Type | Description
`product` | [ProductInterface]({{page.baseurl}}/graphql/interfaces/product-interface.html) | Contains details about this product option
`qty` | Float | Deprecated. Use `quantity` instead
`quantity` | Float | Indicates the quantity of this specific bundle item
-`uid` | ID! | A string that encodes option details
+`uid` | ID! | The unique ID for a `BundleItemOption` object
## Sample Query
@@ -71,7 +71,7 @@ The following query returns information about bundle product `24-WG080`, which i
items{
sku
__typename
- id
+ uid
name
... on BundleProduct {
dynamic_sku
@@ -80,14 +80,13 @@ The following query returns information about bundle product `24-WG080`, which i
price_view
ship_bundle_items
items {
- option_id
+ uid
title
required
type
position
sku
options {
- id
uid
quantity
position
@@ -97,7 +96,7 @@ The following query returns information about bundle product `24-WG080`, which i
can_change_quantity
label
product {
- id
+ uid
name
sku
__typename
@@ -120,7 +119,7 @@ The following query returns information about bundle product `24-WG080`, which i
{
"sku": "24-WG080",
"__typename": "BundleProduct",
- "id": 46,
+ "uid": "NDY=",
"name": "Sprite Yoga Companion Kit",
"dynamic_sku": true,
"dynamic_price": true,
@@ -129,7 +128,7 @@ The following query returns information about bundle product `24-WG080`, which i
"ship_bundle_items": "TOGETHER",
"items": [
{
- "option_id": 1,
+ "uid": "YnVuZGxlLzE=",
"title": "Sprite Stasis Ball",
"required": true,
"type": "radio",
@@ -137,7 +136,6 @@ The following query returns information about bundle product `24-WG080`, which i
"sku": "24-WG080",
"options": [
{
- "id": 1,
"uid": "YnVuZGxlLzEvMS8x",
"quantity": 1,
"position": 1,
@@ -147,14 +145,13 @@ The following query returns information about bundle product `24-WG080`, which i
"can_change_quantity": true,
"label": "Sprite Stasis Ball 55 cm",
"product": {
- "id": 26,
+ "uid": "MjY=",
"name": "Sprite Stasis Ball 55 cm",
"sku": "24-WG081-blue",
"__typename": "SimpleProduct"
}
},
{
- "id": 2,
"uid": "YnVuZGxlLzEvMi8x",
"quantity": 1,
"position": 2,
@@ -164,14 +161,13 @@ The following query returns information about bundle product `24-WG080`, which i
"can_change_quantity": true,
"label": "Sprite Stasis Ball 65 cm",
"product": {
- "id": 29,
+ "uid": "Mjk=",
"name": "Sprite Stasis Ball 65 cm",
"sku": "24-WG082-blue",
"__typename": "SimpleProduct"
}
},
{
- "id": 3,
"uid": "YnVuZGxlLzEvMy8x",
"quantity": 1,
"position": 3,
@@ -181,7 +177,7 @@ The following query returns information about bundle product `24-WG080`, which i
"can_change_quantity": true,
"label": "Sprite Stasis Ball 75 cm",
"product": {
- "id": 32,
+ "uid": "MzI=",
"name": "Sprite Stasis Ball 75 cm",
"sku": "24-WG083-blue",
"__typename": "SimpleProduct"
@@ -190,7 +186,7 @@ The following query returns information about bundle product `24-WG080`, which i
]
},
{
- "option_id": 2,
+ "uid": "YnVuZGxlLzI=",
"title": "Sprite Foam Yoga Brick",
"required": true,
"type": "radio",
@@ -198,7 +194,6 @@ The following query returns information about bundle product `24-WG080`, which i
"sku": "24-WG080",
"options": [
{
- "id": 4,
"uid": "YnVuZGxlLzIvNC8x",
"quantity": 1,
"position": 1,
@@ -208,7 +203,7 @@ The following query returns information about bundle product `24-WG080`, which i
"can_change_quantity": true,
"label": "Sprite Foam Yoga Brick",
"product": {
- "id": 21,
+ "uid": "MjE=",
"name": "Sprite Foam Yoga Brick",
"sku": "24-WG084",
"__typename": "SimpleProduct"
@@ -217,7 +212,7 @@ The following query returns information about bundle product `24-WG080`, which i
]
},
{
- "option_id": 3,
+ "uid": "YnVuZGxlLzM=",
"title": "Sprite Yoga Strap",
"required": true,
"type": "radio",
@@ -225,7 +220,6 @@ The following query returns information about bundle product `24-WG080`, which i
"sku": "24-WG080",
"options": [
{
- "id": 5,
"uid": "YnVuZGxlLzMvNS8x",
"quantity": 1,
"position": 1,
@@ -235,14 +229,13 @@ The following query returns information about bundle product `24-WG080`, which i
"can_change_quantity": true,
"label": "Sprite Yoga Strap 6 foot",
"product": {
- "id": 33,
+ "uid": "MzM=",
"name": "Sprite Yoga Strap 6 foot",
"sku": "24-WG085",
"__typename": "SimpleProduct"
}
},
{
- "id": 6,
"uid": "YnVuZGxlLzMvNi8x",
"quantity": 1,
"position": 2,
@@ -252,14 +245,13 @@ The following query returns information about bundle product `24-WG080`, which i
"can_change_quantity": true,
"label": "Sprite Yoga Strap 8 foot",
"product": {
- "id": 34,
+ "uid": "MzQ=",
"name": "Sprite Yoga Strap 8 foot",
"sku": "24-WG086",
"__typename": "SimpleProduct"
}
},
{
- "id": 7,
"uid": "YnVuZGxlLzMvNy8x",
"quantity": 1,
"position": 3,
@@ -269,7 +261,7 @@ The following query returns information about bundle product `24-WG080`, which i
"can_change_quantity": true,
"label": "Sprite Yoga Strap 10 foot",
"product": {
- "id": 35,
+ "uid": "MzU=",
"name": "Sprite Yoga Strap 10 foot",
"sku": "24-WG087",
"__typename": "SimpleProduct"
@@ -278,7 +270,7 @@ The following query returns information about bundle product `24-WG080`, which i
]
},
{
- "option_id": 4,
+ "uid": "YnVuZGxlLzQ=",
"title": "Sprite Foam Roller",
"required": true,
"type": "radio",
@@ -286,7 +278,6 @@ The following query returns information about bundle product `24-WG080`, which i
"sku": "24-WG080",
"options": [
{
- "id": 8,
"uid": "YnVuZGxlLzQvOC8x",
"quantity": 1,
"position": 1,
@@ -296,7 +287,7 @@ The following query returns information about bundle product `24-WG080`, which i
"can_change_quantity": true,
"label": "Sprite Foam Roller",
"product": {
- "id": 22,
+ "uid": "MjI=",
"name": "Sprite Foam Roller",
"sku": "24-WG088",
"__typename": "SimpleProduct"
diff --git a/src/guides/v2.4/graphql/interfaces/cart-item-interface.md b/src/guides/v2.4/graphql/interfaces/cart-item-interface.md
new file mode 100644
index 00000000000..26164fcb9a9
--- /dev/null
+++ b/src/guides/v2.4/graphql/interfaces/cart-item-interface.md
@@ -0,0 +1,317 @@
+---
+group: graphql
+title: CartItemInterface attributes and implementations
+---
+
+The `CartItemInterface` has the following implementations:
+
+* [BundleCartItem](#BundleCartItem)
+* [ConfigurableCartItem](#ConfigurableCartItem)
+* [DownloadableCartItem](#DownloadableCartItem)
+* [GiftCardCartItem](#GiftCardCartItem)
+* [SimpleCartItem](#SimpleCartItem)
+* [VirtualCartItem](#VirtualCartItem)
+
+## CartItemInterface attributes
+
+The `CartItemInterface` and all of its implementations can contain the following attributes.
+
+Attribute | Data Type | Description
+--- | --- | ---
+`id` | String | Deprecated. Use `uid` instead. The ID of the item
+`prices` | [CartItemPrices](#CartItemPrices) | Includes the price of an item, any applied discounts, and calculated totals
+`product` | [ProductInterface]({{ page.baseurl }}/graphql/interfaces/product-interface.html) | Contains attributes that are common to all types of products
+`quantity` | Float | The number of items in the cart
+`uid` | ID! | The unique ID for the `CartItemInterface` object
+
+### CartItemPrices object {#CartItemPrices}
+
+The `CartItemPrices` object can contain the following attributes.
+
+Attribute | Data Type | Description
+--- | --- | ---
+`discounts`| [Discount] | An array of discounts to be applied to the cart item
+`price` | Money! | The price of the item before any discounts were applied
+`row_total` | Money! | The value of the `price` multiplied by the quantity of the item
+`row_total_including_tax` | Money! | The value of `row_total` plus the tax applied to the item
+`total_item_discount` | Money | The total of all discounts applied to the item
+
+### SelectedCustomizableOption attributes {#SelectedCustomizableOption}
+
+Several product types support customization. Use the following attributes to identify a customized product that have been placed in a cart.
+
+Attribute | Data Type | Description
+--- | --- | ---
+`customizable_option_uid` | ID! | The unique ID for a specific `CustomizableOptionInterface` object, such as a `CustomizableFieldOption`, `CustomizableFileOption`, or `CustomizableAreaOption` object
+`id` | Int! | Deprecated. Use `customizable_option_uid` instead
+`is_required` | Boolean! | Indicates whether the customizable option is required
+`label` | String! | The display name of the selected customizable option
+`sort_order` | Int! | A value indicating the order to display this option
+`values` | [[SelectedCustomizableOptionValue!]!](#SelectedCustomizableOptionValue) | An array of selectable values
+
+### SelectedCustomizableOptionValue attributes {#SelectedCustomizableOptionValue}
+
+All customized products placed in a cart items require a value to identify the customization.
+
+Attribute | Data Type | Description
+--- | --- | ---
+`customizable_option_value_uid` | ID! | The unique ID for a value object that corresponds to the object represented by the `customizable_option_uid` attribute
+`id` | Int! | Deprecated. Use `customizable_option_value_uid` instead
+`label` | String! | The display name of the selected value
+`price` | CartItemSelectedOptionValuePrice! | The price of the selected customizable value
+`value` | String! | The text identifying the selected value
+
+## BundleCartItem implementation {#BundleCartItem}
+
+The `BundleCartItem` object adds the following attributes to the `CartItemInterface`.
+
+Attribute | Data Type | Description
+--- | --- | ---
+`bundle_options` | [[SelectedBundleOption!]!](#SelectedBundleOption) | An array of options selected for a bundle product
+`customizable_options` | [[SelectedCustomizableOption]!](#SelectedCustomizableOption) | An array of customizable options the shopper chose for the bundle product
+
+### SelectedBundleOption attributes {#SelectedBundleOption}
+
+The `SelectedBundleOption` object contains the following attributes.
+
+Attribute | Data Type | Description
+--- | --- | ---
+`id` | Int! | Deprecated. Use `uid` instead
+`label` | String! | The display name of the selected bundle product option
+`type` | String! | The type of selected bundle product option
+`uid` | ID! | The unique identifier for a `SelectedBundleOption` object
+`values` | [[SelectedBundleOptionValue!]!](#SelectedBundleOptionValue) | An array of selected bundle option values
+
+### SelectedBundleOptionValue attributes {#SelectedBundleOptionValue}
+
+The `SelectedBundleOptionValue` object contains the following attributes.
+
+Attribute | Data Type | Description
+--- | --- | ---
+`id` | Int! | Deprecated. Use `uid` instead
+`label` | String! | The display name of the selected bundle product option
+`price` | Float! | The price of the selected bundle product option
+`quantity` | Float! | The quantity of the selected bundle product option
+`uid` | ID! | The unique identifier for a `SelectedBundleOption` object
+
+## ConfigurableCartItem implementation {#ConfigurableCartItem}
+
+The `ConfigurableCartItem` object adds the following attributes to the `CartItemInterface`.
+
+Attribute | Data type | Description
+--- | --- | ---
+`configurable_options` | [[SelectedConfigurableOption!]!](#SelectedConfigurableOption) | An array of configurable options
+`customizable_options` | [[SelectedCustomizableOption]](#SelectedCustomizableOption) | An array of customizable options the shopper chose for the configurable product
+
+### SelectedConfigurableOption attributes {#SelectedConfigurableOption}
+
+The `SelectedConfigurableOption` object contains the following attributes.
+
+Attribute | Data type | Description
+--- | --- | ---
+`configurable_product_option_uid` | ID! | The unique ID for a `ConfigurableProductOptions` object
+`configurable_product_option_value_uid` | ID! | The unique ID for a `ConfigurableProductOptionsValues` object
+`id` | Int! | Deprecated. Use `configurable_product_option_uid` instead
+`option_label` | String! | The display name of the selected configurable option
+`value_id` | Int | Deprecated. Use `value_uid` instead
+`value_label` | String! | The display name of the value for the selected configurable option
+`value_uid` | ID! | The unique ID of the value for the selected configurable option
+
+## DownloadableCartItem implementation {#DownloadableCartItem}
+
+The `DownloadableCartItem` object adds the following attributes to the `CartItemInterface`.
+
+Attribute | Data type | Description
+--- | --- | ---
+`customizable_options` | [[SelectedCustomizableOption]](#SelectedCustomizableOption) | An array of customizable options the shopper chose for the downloadable product
+`links` | [[DownloadableProductLinks]]({{page.baseurl}}/graphql/interfaces/downloadable-product.html#DownloadableProductLinks) | An array containing information about the links associated with the selected downloadable product
+`samples` | [[DownloadableProductSamples]]({{page.baseurl}}/graphql/interfaces/downloadable-product.html#DownloadableProductSamples) | An array containing information about samples of the selected downloadable product
+
+## GiftCardCartItem implementation {#GiftCardCartItem}
+
+The `GiftCardCartItem` object adds the following attributes to the `CartItemInterface`.
+
+`amount` | Money! | The amount and currency of the gift card
+`customizable_options` | [[SelectedCustomizableOption]](#SelectedCustomizableOption) | An array of customizations made to the gift card
+`message` | String | A message to the recipient
+`recipient_email` | String | The email of the person receiving the gift card
+`recipient_name` | String! | The name of the person receiving the gift card
+`sender_email` | String | The email of the sender
+`sender_name` | String! | The name of the sender
+
+## SimpleCartItem implementation {#SimpleCartItem}
+
+The `SimpleCartItem` object adds the following attributes to the `CartItemInterface`.
+
+Attribute | Data type | Description
+--- | --- | ---
+`customizable_options` | [[SelectedCustomizableOption]](#SelectedCustomizableOption) | An array of customizable options the shopper chose for the simple product
+
+## VirtualCartItem implementation {#VirtualCartItem}
+
+The `VirtualCartItem` object adds the following attributes to the `CartItemInterface`.
+
+Attribute | Data type | Description
+--- | --- | ---
+`customizable_options` | [[SelectedCustomizableOption]](#SelectedCustomizableOption) | An array of customizable options the shopper chose for the virtual product
+
+## Example usage
+
+The following mutation adds a configurable product and a bundle product to the cart. The response contains details about these items.
+
+**Request:**
+
+```graphql
+mutation {
+ addProductsToCart(
+ cartId: "h7HmZwfU7zIGR94jsuzOVBUAYtyPefkr"
+ cartItems: [
+ {
+ quantity: 1
+ sku: "WSH12"
+ selected_options: ["Y29uZmlndXJhYmxlLzkzLzUz","Y29uZmlndXJhYmxlLzE2MS8xNzQ="]
+ }
+ {
+ quantity: 1
+ sku: "24-WG080"
+ selected_options: [
+ "YnVuZGxlLzEvMS8x"
+ "YnVuZGxlLzIvNC8x"
+ "YnVuZGxlLzMvNS8x"
+ "YnVuZGxlLzQvOC8x"
+ ]
+ }
+ ]
+ ) {
+ cart {
+ items {
+ uid
+ product {
+ name
+ sku
+ }
+ quantity
+ ... on ConfigurableCartItem {
+ configurable_options {
+ configurable_product_option_uid
+ configurable_product_option_value_uid
+ option_label
+ value_label
+ }
+ }
+ ... on BundleCartItem {
+ bundle_options {
+ uid
+ label
+ type
+ values {
+ id
+ label
+ price
+ quantity
+ }
+ }
+ }
+ }
+ }
+ }
+}
+```
+**Response:**
+
+```json
+{
+ "data": {
+ "addProductsToCart": {
+ "cart": {
+ "items": [
+ {
+ "uid": "MjU=",
+ "product": {
+ "name": "Erika Running Short",
+ "sku": "WSH12"
+ },
+ "quantity": 1,
+ "configurable_options": [
+ {
+ "configurable_product_option_uid": "Y29uZmlndXJhYmxlLzIwNDgvOTM=",
+ "configurable_product_option_value_uid": "Y29uZmlndXJhYmxlLzkzLzUz",
+ "option_label": "Color",
+ "value_label": "Green"
+ },
+ {
+ "configurable_product_option_uid": "Y29uZmlndXJhYmxlLzIwNDgvMTYx",
+ "configurable_product_option_value_uid": "Y29uZmlndXJhYmxlLzE2MS8xNzQ=",
+ "option_label": "Size",
+ "value_label": "28"
+ }
+ ]
+ },
+ {
+ "uid": "Mjc=",
+ "product": {
+ "name": "Sprite Yoga Companion Kit",
+ "sku": "24-WG080"
+ },
+ "quantity": 1,
+ "bundle_options": [
+ {
+ "uid": "YnVuZGxlLzE=",
+ "label": "Sprite Stasis Ball",
+ "type": "radio",
+ "values": [
+ {
+ "id": 1,
+ "label": "Sprite Stasis Ball 55 cm",
+ "price": 23,
+ "quantity": 1
+ }
+ ]
+ },
+ {
+ "uid": "YnVuZGxlLzI=",
+ "label": "Sprite Foam Yoga Brick",
+ "type": "radio",
+ "values": [
+ {
+ "id": 4,
+ "label": "Sprite Foam Yoga Brick",
+ "price": 5,
+ "quantity": 1
+ }
+ ]
+ },
+ {
+ "uid": "YnVuZGxlLzM=",
+ "label": "Sprite Yoga Strap",
+ "type": "radio",
+ "values": [
+ {
+ "id": 5,
+ "label": "Sprite Yoga Strap 6 foot",
+ "price": 14,
+ "quantity": 1
+ }
+ ]
+ },
+ {
+ "uid": "YnVuZGxlLzQ=",
+ "label": "Sprite Foam Roller",
+ "type": "radio",
+ "values": [
+ {
+ "id": 8,
+ "label": "Sprite Foam Roller",
+ "price": 19,
+ "quantity": 1
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+}
+```
diff --git a/src/guides/v2.4/graphql/interfaces/category-interface.md b/src/guides/v2.4/graphql/interfaces/category-interface.md
index fb33b9c1c45..a6a51453706 100644
--- a/src/guides/v2.4/graphql/interfaces/category-interface.md
+++ b/src/guides/v2.4/graphql/interfaces/category-interface.md
@@ -19,7 +19,7 @@ Attribute | Type | Description
`created_at` | String | Timestamp indicating when the category was created
`default_sort_by` | String | The attribute to use for sorting
`description` | String | An optional description of the category
-`id` | Int | An ID that uniquely identifies the category
+`id` | Int | Deprecated. Use `uid` instead. An ID that uniquely identifies the category
`level` | Int | Indicates the depth of the category within the tree
`name` | String | The display name of the category
`path_in_store` | String | Category path in the store
@@ -28,20 +28,21 @@ Attribute | Type | Description
`product_count` | Int | The number of products in the category that are marked as visible. By default, in complex products, parent products are visible, but their child products are not
`products()` | CategoryProducts | The list of products assigned to the category
`staged` | Boolean! | Indicates whether the category is staged for a future campaign
+`uid` | ID! | The unique ID for an object implementing `CategoryInterface`
`updated_at` | String | Timestamp indicating when the category was updated
`url_key` | String | The URL key assigned to the category
`url_path` | String | The URL path assigned to the category
### Breadcrumb object
-A breadcrumb trail is a set of links that shows customers where they are in relation to other pages in the
-store.
+A breadcrumb trail is a set of links that shows customers where they are in relation to other pages in the store.
Attribute | Data type | Description
--- | --- | ---
-`category_id` | Int | An ID that uniquely identifies the category
+`category_id` | Int | Deprecated. Use `category_uid` instead. An ID that uniquely identifies the category
`category_level` | Int | Indicates the depth of the category within the tree
`category_name` | String | The display name of the category
+`category_uid` | ID! | The unique ID for a `Breadcrumb` object
`category_url_key` | String | The url key assigned to the category
### CategoryProducts object
diff --git a/src/guides/v2.4/graphql/interfaces/configurable-product.md b/src/guides/v2.4/graphql/interfaces/configurable-product.md
index ef927119090..3f63dec2296 100644
--- a/src/guides/v2.4/graphql/interfaces/configurable-product.md
+++ b/src/guides/v2.4/graphql/interfaces/configurable-product.md
@@ -31,7 +31,7 @@ Field | Type | Description
--- | --- | ---
`code` | String | The ID assigned to the attribute
`label` | String | A string that describes the configurable attribute option
-`uid` | ID! | A string that encodes option details
+`uid` | ID! | The unique ID for a `ConfigurableAttributeOption` object
`value_index` | Int | A unique index number assigned to the configurable product option
### ConfigurableOptionAvailableForSelection attributes {#ConfigurableOptionAvailableForSelection}
@@ -50,12 +50,14 @@ The `ConfigurableProductOptions` object contains the following attributes:
Attribute | Type | Description
--- | --- | ---
`attribute_code` | String | A string that identifies the attribute
-`attribute_id` | String | Deprecated. Use `attribute_id_v2` instead
-`attribute_id_v2` | Int | The ID assigned to the attribute
-`id` | Int | The configurable option ID number assigned by the system
+`attribute_id` | String | Deprecated. Use `attribute_uid` instead
+`attribute_id_v2` | Int | Deprecated. Use `attribute_uid` instead. The ID assigned to the attribute
+`attribute_uid` | ID! | The unique ID for a `ConfigurableProductOptions` object
+`id` | Int | Deprecated. Use `uid` instead. The configurable option ID number assigned by the system
`label` | String | A string that describes the configurable product option. It is displayed on the UI.
`position` | Int | A number that indicates the order in which the attribute is displayed
-`product_id` | Int | This is the same as a product's 'id' field
+`product_id` | Int | Deprecated. This attribute is not needed and its value can be obtained from its parent
+`uid` | ID! | The unique ID for a `ConfigurableProductOptions` object
`use_default` | Boolean | Indicates whether the option is the default
`values` | [[ConfigurableProductOptionsValues]](#configProdOptionsValues) | An array that defines the `value_index` codes assigned to the configurable product
@@ -80,7 +82,8 @@ Attribute | Type | Description
`store_label` | String | The label of the product on the current store
`swatch_data` | [SwatchDataInterface](#swatchDataInterface) | Details about swatches that can be displayed for configurable product options
`use_default_value` | Boolean | Indicates whether to use the default_label
-`value_index` | Int | A unique index number assigned to the configurable product option
+`uid` | ID! | The unique ID for a `ConfigurableProductOptionsValues` object
+`value_index` | Int | Deprecated. Use `uid` instead. A unique index number assigned to the configurable product option
### ConfigurableVariant object
@@ -187,6 +190,7 @@ The following `products` query returns `ConfigurableProduct` information about t
}
}
}
+
```
**Response:**
@@ -199,7 +203,7 @@ The following `products` query returns `ConfigurableProduct` information about t
"products": {
"items": [
{
- "id": 1050,
+ "uid": "MTA1Mg==",
"attribute_set_id": 9,
"name": "Mona Pullover Hoodlie",
"sku": "WH01",
@@ -214,78 +218,76 @@ The following `products` query returns `ConfigurableProduct` information about t
},
"categories": [
{
- "id": 8
+ "uid": "OA=="
},
{
- "id": 21
+ "uid": "MjI="
},
{
- "id": 24
+ "uid": "MjU="
},
{
- "id": 34
+ "uid": "MzU="
}
],
"configurable_options": [
{
- "id": 147,
- "attribute_id_v2": 93,
+ "uid": "Y29uZmlndXJhYmxlLzEwNTIvOTM=",
+ "attribute_uid": "OTM=",
"label": "Color",
"position": 1,
"use_default": false,
"attribute_code": "color",
"values": [
{
- "value_index": 53,
+ "uid": "Y29uZmlndXJhYmxlLzkzLzUz",
"label": "Green"
},
{
- "value_index": 56,
+ "uid": "Y29uZmlndXJhYmxlLzkzLzU2",
"label": "Orange"
},
{
- "value_index": 57,
+ "uid": "Y29uZmlndXJhYmxlLzkzLzU3",
"label": "Purple"
}
- ],
- "product_id": 1050
+ ]
},
{
- "id": 146,
- "attribute_id_v2": 144,
+ "uid": "Y29uZmlndXJhYmxlLzEwNTIvMTYx",
+ "attribute_uid": "MTYx",
"label": "Size",
"position": 0,
"use_default": false,
"attribute_code": "size",
"values": [
{
- "value_index": 166,
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNjk=",
"label": "XS"
},
{
- "value_index": 167,
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNzA=",
"label": "S"
},
{
- "value_index": 168,
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNzE=",
"label": "M"
},
{
- "value_index": 169,
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNzI=",
"label": "L"
},
{
- "value_index": 170,
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNzM=",
"label": "XL"
}
- ],
- "product_id": 1050
+ ]
}
],
"variants": [
{
"product": {
- "id": 1035,
+ "uid": "MTAzNw==",
"name": "Mona Pullover Hoodlie-XS-Green",
"sku": "WH01-XS-Green",
"attribute_set_id": 9,
@@ -307,16 +309,16 @@ The following `products` query returns `ConfigurableProduct` information about t
"value_index": 53
},
{
- "uid": "Y29uZmlndXJhYmxlLzE0NC8xNjY=",
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNjk=",
"label": "XS",
"code": "size",
- "value_index": 166
+ "value_index": 169
}
]
},
{
"product": {
- "id": 1036,
+ "uid": "MTAzOA==",
"name": "Mona Pullover Hoodlie-XS-Orange",
"sku": "WH01-XS-Orange",
"attribute_set_id": 9,
@@ -338,16 +340,16 @@ The following `products` query returns `ConfigurableProduct` information about t
"value_index": 56
},
{
- "uid": "Y29uZmlndXJhYmxlLzE0NC8xNjY=",
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNjk=",
"label": "XS",
"code": "size",
- "value_index": 166
+ "value_index": 169
}
]
},
{
"product": {
- "id": 1037,
+ "uid": "MTAzOQ==",
"name": "Mona Pullover Hoodlie-XS-Purple",
"sku": "WH01-XS-Purple",
"attribute_set_id": 9,
@@ -369,16 +371,16 @@ The following `products` query returns `ConfigurableProduct` information about t
"value_index": 57
},
{
- "uid": "Y29uZmlndXJhYmxlLzE0NC8xNjY=",
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNjk=",
"label": "XS",
"code": "size",
- "value_index": 166
+ "value_index": 169
}
]
},
{
"product": {
- "id": 1038,
+ "uid": "MTA0MA==",
"name": "Mona Pullover Hoodlie-S-Green",
"sku": "WH01-S-Green",
"attribute_set_id": 9,
@@ -400,16 +402,16 @@ The following `products` query returns `ConfigurableProduct` information about t
"value_index": 53
},
{
- "uid": "Y29uZmlndXJhYmxlLzE0NC8xNjc=",
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNzA=",
"label": "S",
"code": "size",
- "value_index": 167
+ "value_index": 170
}
]
},
{
"product": {
- "id": 1039,
+ "uid": "MTA0MQ==",
"name": "Mona Pullover Hoodlie-S-Orange",
"sku": "WH01-S-Orange",
"attribute_set_id": 9,
@@ -431,16 +433,16 @@ The following `products` query returns `ConfigurableProduct` information about t
"value_index": 56
},
{
- "uid": "Y29uZmlndXJhYmxlLzE0NC8xNjc=",
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNzA=",
"label": "S",
"code": "size",
- "value_index": 167
+ "value_index": 170
}
]
},
{
"product": {
- "id": 1040,
+ "uid": "MTA0Mg==",
"name": "Mona Pullover Hoodlie-S-Purple",
"sku": "WH01-S-Purple",
"attribute_set_id": 9,
@@ -462,16 +464,16 @@ The following `products` query returns `ConfigurableProduct` information about t
"value_index": 57
},
{
- "uid": "Y29uZmlndXJhYmxlLzE0NC8xNjc=",
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNzA=",
"label": "S",
"code": "size",
- "value_index": 167
+ "value_index": 170
}
]
},
{
"product": {
- "id": 1041,
+ "uid": "MTA0Mw==",
"name": "Mona Pullover Hoodlie-M-Green",
"sku": "WH01-M-Green",
"attribute_set_id": 9,
@@ -493,16 +495,16 @@ The following `products` query returns `ConfigurableProduct` information about t
"value_index": 53
},
{
- "uid": "Y29uZmlndXJhYmxlLzE0NC8xNjg=",
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNzE=",
"label": "M",
"code": "size",
- "value_index": 168
+ "value_index": 171
}
]
},
{
"product": {
- "id": 1042,
+ "uid": "MTA0NA==",
"name": "Mona Pullover Hoodlie-M-Orange",
"sku": "WH01-M-Orange",
"attribute_set_id": 9,
@@ -524,16 +526,16 @@ The following `products` query returns `ConfigurableProduct` information about t
"value_index": 56
},
{
- "uid": "Y29uZmlndXJhYmxlLzE0NC8xNjg=",
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNzE=",
"label": "M",
"code": "size",
- "value_index": 168
+ "value_index": 171
}
]
},
{
"product": {
- "id": 1043,
+ "uid": "MTA0NQ==",
"name": "Mona Pullover Hoodlie-M-Purple",
"sku": "WH01-M-Purple",
"attribute_set_id": 9,
@@ -555,16 +557,16 @@ The following `products` query returns `ConfigurableProduct` information about t
"value_index": 57
},
{
- "uid": "Y29uZmlndXJhYmxlLzE0NC8xNjg=",
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNzE=",
"label": "M",
"code": "size",
- "value_index": 168
+ "value_index": 171
}
]
},
{
"product": {
- "id": 1044,
+ "uid": "MTA0Ng==",
"name": "Mona Pullover Hoodlie-L-Green",
"sku": "WH01-L-Green",
"attribute_set_id": 9,
@@ -586,16 +588,16 @@ The following `products` query returns `ConfigurableProduct` information about t
"value_index": 53
},
{
- "uid": "Y29uZmlndXJhYmxlLzE0NC8xNjk=",
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNzI=",
"label": "L",
"code": "size",
- "value_index": 169
+ "value_index": 172
}
]
},
{
"product": {
- "id": 1045,
+ "uid": "MTA0Nw==",
"name": "Mona Pullover Hoodlie-L-Orange",
"sku": "WH01-L-Orange",
"attribute_set_id": 9,
@@ -617,16 +619,16 @@ The following `products` query returns `ConfigurableProduct` information about t
"value_index": 56
},
{
- "uid": "Y29uZmlndXJhYmxlLzE0NC8xNjk=",
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNzI=",
"label": "L",
"code": "size",
- "value_index": 169
+ "value_index": 172
}
]
},
{
"product": {
- "id": 1046,
+ "uid": "MTA0OA==",
"name": "Mona Pullover Hoodlie-L-Purple",
"sku": "WH01-L-Purple",
"attribute_set_id": 9,
@@ -648,16 +650,16 @@ The following `products` query returns `ConfigurableProduct` information about t
"value_index": 57
},
{
- "uid": "Y29uZmlndXJhYmxlLzE0NC8xNjk=",
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNzI=",
"label": "L",
"code": "size",
- "value_index": 169
+ "value_index": 172
}
]
},
{
"product": {
- "id": 1047,
+ "uid": "MTA0OQ==",
"name": "Mona Pullover Hoodlie-XL-Green",
"sku": "WH01-XL-Green",
"attribute_set_id": 9,
@@ -679,16 +681,16 @@ The following `products` query returns `ConfigurableProduct` information about t
"value_index": 53
},
{
- "uid": "Y29uZmlndXJhYmxlLzE0NC8xNzA=",
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNzM=",
"label": "XL",
"code": "size",
- "value_index": 170
+ "value_index": 173
}
]
},
{
"product": {
- "id": 1048,
+ "uid": "MTA1MA==",
"name": "Mona Pullover Hoodlie-XL-Orange",
"sku": "WH01-XL-Orange",
"attribute_set_id": 9,
@@ -710,16 +712,16 @@ The following `products` query returns `ConfigurableProduct` information about t
"value_index": 56
},
{
- "uid": "Y29uZmlndXJhYmxlLzE0NC8xNzA=",
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNzM=",
"label": "XL",
"code": "size",
- "value_index": 170
+ "value_index": 173
}
]
},
{
"product": {
- "id": 1049,
+ "uid": "MTA1MQ==",
"name": "Mona Pullover Hoodlie-XL-Purple",
"sku": "WH01-XL-Purple",
"attribute_set_id": 9,
@@ -741,10 +743,10 @@ The following `products` query returns `ConfigurableProduct` information about t
"value_index": 57
},
{
- "uid": "Y29uZmlndXJhYmxlLzE0NC8xNzA=",
+ "uid": "Y29uZmlndXJhYmxlLzE2MS8xNzM=",
"label": "XL",
"code": "size",
- "value_index": 170
+ "value_index": 173
}
]
}
@@ -755,7 +757,6 @@ The following `products` query returns `ConfigurableProduct` information about t
}
}
```
-
{% endcollapsible %}
### Limit the number of retrieved media gallery items {#media-gallery-example}
diff --git a/src/guides/v2.4/graphql/interfaces/customizable-option-interface.md b/src/guides/v2.4/graphql/interfaces/customizable-option-interface.md
index f9515084fd1..f800ca66292 100644
--- a/src/guides/v2.4/graphql/interfaces/customizable-option-interface.md
+++ b/src/guides/v2.4/graphql/interfaces/customizable-option-interface.md
@@ -25,10 +25,11 @@ Magento has not implemented all possible customizable product options for GraphQ
Attribute | Type | Description
--- | --- | ---
-`option_id` | Int | The ID assigned to the option
+`option_id` | Int | Deprecated. Use `uid` instead. The ID assigned to the option
`required` | Boolean | Indicates whether the option is required
`sort_order` | Int | The order in which the option is displayed
`title` | String | The display name for this option
+`uid` | ID! | The unique identifier for the `CustomizableOptionInterface` object
## CustomizableAreaOption object
@@ -49,7 +50,7 @@ Attribute | Type | Description
`price_type` | PriceTypeEnum | FIXED, PERCENT, or DYNAMIC
`price` | Float | The price assigned to this option
`sku` | String | The Stock Keeping Unit for this option
-`uid` | ID! | A string that encodes option details
+`uid` | ID! | The unique ID for a `CustomizableAreaValue` object
## CustomizableCheckboxOption object
@@ -91,7 +92,7 @@ Attribute | Type | Description
`price` | Float | The price assigned to this option
`price_type` | PriceTypeEnum | FIXED, PERCENT, or DYNAMIC
`sku` | String | The Stock Keeping Unit for this option
-`uid` | ID! | A string that encodes option details
+`uid` | ID! | The unique ID for a `CustomizableDateValue` object
## CustomizableDropDownOption object
@@ -113,7 +114,7 @@ Attribute | Type | Description
`sku` | String | The Stock Keeping Unit for this option
`sort_order` | Int | The order in which the option is displayed
`title` | String | The display name for this option
-`uid` | ID! | A string that encodes option details
+`uid` | ID! | The unique ID for a `CustomizableDropDownValue` object
## CustomizableFieldOption object
@@ -134,7 +135,7 @@ Attribute | Type | Description
`price_type` | PriceTypeEnum | FIXED, PERCENT, or DYNAMIC
`price` | Float | The price of the custom value
`sku` | String | The Stock Keeping Unit for this option
-`uid` | ID! | A string that encodes option details
+`uid` | ID! | The unique ID for a `CustomizableFieldValue` object
## CustomizableFileOption object
@@ -163,7 +164,7 @@ Attribute | Type | Description
`price_type` | PriceTypeEnum | FIXED, PERCENT, or DYNAMIC
`price` | Float | The price assigned to this option
`sku` | String | The Stock Keeping Unit for this option
-`uid` | ID! | A string that encodes option details
+`uid` | ID! | The unique ID for a `CustomizableFileValue` object
## CustomizableMultipleOption object
@@ -185,7 +186,7 @@ Attribute | Type | Description
`sku` | String | The Stock Keeping Unit for this option
`sort_order` | Int | The order in which the option is displayed
`title` | String | The display name for this option
-`uid` | ID! | A string that encodes option details
+`uid` | ID! | The unique ID for a `CustomizableMultipleValue` object
## CustomizableRadioOption object
@@ -206,8 +207,8 @@ Attribute | Type | Description
`price` | Float | The price assigned to this option
`sku` | String | The Stock Keeping Unit for this option
`sort_order` | Int | The order in which the option is displayed
-`title` | String | The display name for this option## CustomizableRadioOption object
-`uid` | ID! | A string that encodes option details
+`title` | String | The display name for this option
+`uid` | ID! | The unique ID for a `CustomizableRadioValue` object
`CustomizableRadioOption` contains information about a set of radio buttons that are defined as part of a customizable option.
@@ -225,7 +226,7 @@ The following query returns information about the customizable options configure
{
products(filter: {sku: {eq: "xyz"}}) {
items {
- id
+ uid
name
sku
__typename
@@ -234,7 +235,7 @@ The following query returns information about the customizable options configure
title
required
sort_order
- option_id
+ uid
}
}
}
@@ -250,7 +251,7 @@ The following query returns information about the customizable options configure
"products": {
"items": [
{
- "id": 1,
+ "uid": "Mw==",
"name": "T-shirt",
"sku": "xyz",
"__typename": "SimpleProduct",
@@ -259,7 +260,7 @@ The following query returns information about the customizable options configure
"title": "Image",
"required": false,
"sort_order": 1,
- "option_id": 1
+ "uid": "Mx=="
}
]
}
diff --git a/src/guides/v2.4/graphql/interfaces/downloadable-product.md b/src/guides/v2.4/graphql/interfaces/downloadable-product.md
index d81f18f4e28..174d224e27e 100644
--- a/src/guides/v2.4/graphql/interfaces/downloadable-product.md
+++ b/src/guides/v2.4/graphql/interfaces/downloadable-product.md
@@ -18,7 +18,7 @@ Attribute | Type | Description
`links_purchased_separately` | Int | A value of 1 indicates that each link in the array must be purchased separately
`links_title` | String | The heading above the list of downloadable products
-### DownloadableProductSamples object {#DownloadableProductSamples}
+### DownloadableProductSamples attributes {#DownloadableProductSamples}
The `DownloadableProductSamples` object contains the following attributes:
@@ -31,13 +31,13 @@ Attribute | Type | Description
`sort_order` | Int | A number indicating the sort order
`title` | String | The display name of the sample
-### DownloadableProductLinks object {#DownloadableProductLinks}
+### DownloadableProductLinks attributes {#DownloadableProductLinks}
The `DownloadableProductLinks` object contains the following attributes:
Attribute | Type | Description
--- | --- | ---
-`id` | Int | Deprecated. This information should not be exposed on frontend
+`id` | Int | Deprecated. Use `uid` instead
`is_shareable` | Boolean | Deprecated. This attribute is not applicable for GraphQL
`link_type` | DownloadableFileTypeEnum | Deprecated. Use `sample_url` instead
`number_of_downloads` | Int | Deprecated. This attribute is not applicable for GraphQL
@@ -47,7 +47,7 @@ Attribute | Type | Description
`sample_url` | String | The URL to the downloadable sample
`sort_order` | Int | A number indicating the sort order
`title` | String | The display name of the link
-`uid` | ID! | A string that encodes option details
+`uid` | ID! | The unique ID for a `DownloadableProductLinks` object
## Example usage
@@ -69,7 +69,7 @@ The following query returns information about downloadable product `240-LV04`, w
{
products(filter: { sku: { eq: "240-LV04" } }) {
items {
- id
+ uid
name
sku
__typename
@@ -110,7 +110,7 @@ The following query returns information about downloadable product `240-LV04`, w
"products": {
"items": [
{
- "id": 47,
+ "uid": "NDc=",
"name": "Beginner's Yoga",
"sku": "240-LV04",
"__typename": "DownloadableProduct",
diff --git a/src/guides/v2.4/graphql/interfaces/gift-card-product.md b/src/guides/v2.4/graphql/interfaces/gift-card-product.md
index 5ace6fb6178..c17773bfe17 100644
--- a/src/guides/v2.4/graphql/interfaces/gift-card-product.md
+++ b/src/guides/v2.4/graphql/interfaces/gift-card-product.md
@@ -38,8 +38,8 @@ The `GiftCardAmounts` object contains the following attributes:
Attribute | Type | Description
--- | --- | ---
`attribute_id` | Int | An internal attribute ID
-`uid` | String | A string that encodes option details
-`value_id` | Int | An ID that is assigned to each unique gift card amount
+`uid` | ID! | The unique ID for a `GiftCardAmounts` object
+`value_id` | Int | Deprecated. Use `uid` instead. An ID that is assigned to each unique gift card amount
`value` | Float | The value of the gift card
`website_value` | Float |The value of the gift card
`website_id` | Int | ID of the website that generated the gift card
@@ -48,11 +48,13 @@ Attribute | Type | Description
The following query returns information about gift card product `GiftCard25`. (It is not defined in the sample data.)
+**Request:**
+
```graphql
{
products(filter: { sku: { eq: "GiftCard25" } }) {
items {
- id
+ uid
__typename
name
sku
@@ -66,7 +68,7 @@ The following query returns information about gift card product `GiftCard25`. (I
is_redeemable
giftcard_type
giftcard_amounts {
- value_id
+ uid
website_id
value
attribute_id
@@ -77,6 +79,41 @@ The following query returns information about gift card product `GiftCard25`. (I
}
}
```
+**Response:**
+
+```json
+{
+ "data": {
+ "products": {
+ "items": [
+ {
+ "uid": "MjA0OQ==",
+ "__typename": "GiftCardProduct",
+ "name": "GiftCard25",
+ "sku": "GiftCard25",
+ "allow_message": true,
+ "message_max_length": 255,
+ "allow_open_amount": false,
+ "open_amount_min": null,
+ "open_amount_max": null,
+ "is_returnable": "2",
+ "is_redeemable": true,
+ "giftcard_type": "VIRTUAL",
+ "giftcard_amounts": [
+ {
+ "value_id": "Mg==",
+ "website_id": 0,
+ "value": 25,
+ "attribute_id": 129,
+ "website_value": 25
+ }
+ ]
+ }
+ ]
+ }
+ }
+}
+```
## Related topics
diff --git a/src/guides/v2.4/graphql/interfaces/grouped-product.md b/src/guides/v2.4/graphql/interfaces/grouped-product.md
index 00ad3cc1be7..25c5780352d 100644
--- a/src/guides/v2.4/graphql/interfaces/grouped-product.md
+++ b/src/guides/v2.4/graphql/interfaces/grouped-product.md
@@ -29,4 +29,4 @@ Attribute | Type | Description
The following query returns information about downloadable product `24-WG085_Group`, which is defined in the sample data.
-{% include graphql/grouped-product-sample.md %}
+{% include graphql/grouped-product-sample-24.md %}
diff --git a/src/guides/v2.4/graphql/interfaces/product-interface-implementations.md b/src/guides/v2.4/graphql/interfaces/product-interface-implementations.md
index 1f86bb3f14a..5d35f3f0b10 100644
--- a/src/guides/v2.4/graphql/interfaces/product-interface-implementations.md
+++ b/src/guides/v2.4/graphql/interfaces/product-interface-implementations.md
@@ -33,4 +33,4 @@ To return attributes that are specific to a product type, append a structure sim
For example, to return `GroupedProduct` attributes, construct your query like this:
-{% include graphql/grouped-product-sample.md %}
+{% include graphql/grouped-product-sample-24.md %}
diff --git a/src/guides/v2.4/graphql/interfaces/product-interface.md b/src/guides/v2.4/graphql/interfaces/product-interface.md
index d193ac944e9..fa562d9a5e6 100644
--- a/src/guides/v2.4/graphql/interfaces/product-interface.md
+++ b/src/guides/v2.4/graphql/interfaces/product-interface.md
@@ -33,7 +33,7 @@ Attribute | Data type | Description
`crosssell_products` | [ProductInterface] | An array of cross-sell products
`description` | ComplexTextValue | An object that contains detailed information about the product. The object can include simple HTML tags
`gift_message_available` | String | Indicates whether a gift message is available
-`id` | Int | The ID number assigned to the product
+`id` | Int | Deprecated. Use `uid` instead. The ID number assigned to the product
`image` | [ProductImage](#ProductImage) | An object that contains the URL and label for the main image on the product page
`is_returnable` | String | Indicates whether the product can be returned. This attribute is defined in the `RmaGraphQl` module.
`manufacturer` | Int | A number representing the product's manufacturer
@@ -69,6 +69,7 @@ Attribute | Data type | Description
`tier_price` | Float | Deprecated. Use `price_tiers` instead
`tier_prices` | [ProductTierPrices] | Deprecated. Use `price_tiers` instead
`type_id` | String | Deprecated. Use the GraphQL `__typename` meta attribute instead
+`uid` | ID! | The unique ID for objects implementing `ProductInterface`
`updated_at` | String | The timestamp indicating when the product was last updated
`upsell_products` | [ProductInterface] | An array of up-sell products
`url_key` | String | The part of the URL that identifies the product. This attribute is defined in the `CatalogUrlRewriteGraphQl` module
@@ -219,11 +220,12 @@ Attribute | Type | Description
`content` | ProductMediaGalleryEntriesContent | Contains a [ProductMediaGalleryEntriesContent](#ProductMediaGalleryEntriesContent) object
`disabled` | Boolean | Whether the image is hidden from view
`file` | String | The path of the image on the server
-`id` | Int | The identifier assigned to the object
+`id` | Int | Deprecated. Use `uid` instead. The identifier assigned to the object
`label` | String | The "alt" text displayed on the UI when the user points to the image
`media_type` | String | `image` or `video`
`position` | Int | The media item's position after it has been sorted
`types` | [String] | Array of image types. It can have the following values: `image`, `small_image`, `thumbnail`
+`uid` | ID! | The unique ID for `MediaGalleryEntry` objects
`video_content` | ProductMediaGalleryEntriesVideoContent | Contains a [ProductMediaGalleryEntriesVideoContent](#ProductMediaGalleryEntriesVideoContent) object
#### ProductMediaGalleryEntriesContent object {#ProductMediaGalleryEntriesContent}
diff --git a/src/guides/v2.4/graphql/interfaces/simple-product.md b/src/guides/v2.4/graphql/interfaces/simple-product.md
index 6e239184a49..5db8befe2ae 100644
--- a/src/guides/v2.4/graphql/interfaces/simple-product.md
+++ b/src/guides/v2.4/graphql/interfaces/simple-product.md
@@ -33,10 +33,10 @@ The following query returns information about simple product `24-MB01`, which is
items {
sku
__typename
- id
+ uid
name
categories {
- id
+ uid
name
path
}
@@ -58,6 +58,7 @@ The following query returns information about simple product `24-MB01`, which is
}
}
}
+
```
{% collapsible Response %}
@@ -70,16 +71,16 @@ The following query returns information about simple product `24-MB01`, which is
{
"sku": "24-MB01",
"__typename": "SimpleProduct",
- "id": 1,
+ "uid": "MQ==",
"name": "Joust Duffle Bag",
"categories": [
{
- "id": 3,
+ "uid": "Mw==",
"name": "Gear",
"path": "1/2/3"
},
{
- "id": 4,
+ "uid": "NA==",
"name": "Bags",
"path": "1/2/3/4"
}
diff --git a/src/guides/v2.4/graphql/interfaces/virtual-product.md b/src/guides/v2.4/graphql/interfaces/virtual-product.md
index d6e22399be6..caed0247cb1 100644
--- a/src/guides/v2.4/graphql/interfaces/virtual-product.md
+++ b/src/guides/v2.4/graphql/interfaces/virtual-product.md
@@ -32,10 +32,10 @@ The following query returns information about virtual product.
items {
sku
__typename
- id
+ uid
name
categories {
- id
+ uid
name
path
}
@@ -69,13 +69,13 @@ The following query returns information about virtual product.
{
"sku": "test-virtual-product",
"__typename": "VirtualProduct",
- "id": 2047,
- "name": "Test Virtual Product",
+ "uid": "MjA1MA==",
+ "name": "test-virtual-product",
"categories": [
{
- "id": 37,
+ "uid": "Mzg=",
"name": "Sale",
- "path": "1/2/37"
+ "path": "1/2/38"
}
],
"price_range": {
diff --git a/src/guides/v2.4/graphql/mutations/add-bundle-products.md b/src/guides/v2.4/graphql/mutations/add-bundle-products.md
index 425ffb2030b..4edd03ba6b8 100644
--- a/src/guides/v2.4/graphql/mutations/add-bundle-products.md
+++ b/src/guides/v2.4/graphql/mutations/add-bundle-products.md
@@ -34,7 +34,7 @@ The `cart_id` used in this example was [generated]({{ page.baseurl }}/graphql/mu
mutation {
addBundleProductsToCart(
input: {
- cart_id: "wARFaDnHva0tgzuforUYR4rvXincj5eu"
+ cart_id: "2m3Wpue1L3bNARhErAKbZ8Lb7czvgq6R"
cart_items: [
{
data: {
@@ -76,14 +76,14 @@ mutation {
}) {
cart {
items {
- id
+ uid
quantity
product {
sku
}
... on BundleCartItem {
bundle_options {
- id
+ uid
label
type
values {
@@ -109,14 +109,28 @@ mutation {
"cart": {
"items": [
{
- "id": "7",
+ "uid": "MjI=",
+ "quantity": 1,
+ "product": {
+ "sku": "WSH12"
+ }
+ },
+ {
+ "uid": "MjQ=",
+ "quantity": 3,
+ "product": {
+ "sku": "24-WB01"
+ }
+ },
+ {
+ "uid": "MzI=",
"quantity": 1,
"product": {
"sku": "24-WG080"
},
"bundle_options": [
{
- "id": 1,
+ "uid": "YnVuZGxlLzE=",
"label": "Sprite Stasis Ball",
"type": "radio",
"values": [
@@ -129,7 +143,7 @@ mutation {
]
},
{
- "id": 2,
+ "uid": "YnVuZGxlLzI=",
"label": "Sprite Foam Yoga Brick",
"type": "radio",
"values": [
@@ -142,7 +156,7 @@ mutation {
]
},
{
- "id": 3,
+ "uid": "YnVuZGxlLzM=",
"label": "Sprite Yoga Strap",
"type": "radio",
"values": [
@@ -155,7 +169,7 @@ mutation {
]
},
{
- "id": 4,
+ "uid": "YnVuZGxlLzQ=",
"label": "Sprite Foam Roller",
"type": "radio",
"values": [
@@ -220,9 +234,9 @@ Attribute | Type | Description
### CustomizableOptionInput object {#customOptionInput}
-The `CustomizableOptionInput` object must contain the following attributes:
+The `CustomizableOptionInput` object can contain the following attributes:
-{% include graphql/customizable-option-input.md %}
+{% include graphql/customizable-option-input-24.md %}
## Output attributes
diff --git a/src/guides/v2.4/graphql/mutations/add-configurable-products.md b/src/guides/v2.4/graphql/mutations/add-configurable-products.md
index c87b2595e09..2ab88b37926 100644
--- a/src/guides/v2.4/graphql/mutations/add-configurable-products.md
+++ b/src/guides/v2.4/graphql/mutations/add-configurable-products.md
@@ -36,7 +36,7 @@ mutation {
) {
cart {
items {
- id
+ uid
quantity
product {
name
@@ -62,7 +62,7 @@ mutation {
"cart": {
"items": [
{
- "id": "5",
+ "uid": "Mzc=",
"quantity": 2,
"product": {
"name": "Teton Pullover Hoodie",
@@ -110,16 +110,13 @@ Attribute | Type | Description
The `CustomizableOptionInput` object contains the following attributes:
-Attribute | Type | Description
---- | --- | ---
-`id` | Int | The ID of the customizable option
-`value` | String | The value of the customizable option. For example, if color was the customizable option, a possible value could be `black`
+{% include graphql/customizable-option-input-24.md %}
### CartItemInput object {#cartItemInput}
The `CartItemInput` object must contain the following attributes:
-{% include graphql/cart-item-input.md %}
+{% include graphql/cart-item-input-24.md %}
## Output attributes
diff --git a/src/guides/v2.4/graphql/mutations/add-downloadable-products.md b/src/guides/v2.4/graphql/mutations/add-downloadable-products.md
index 76f2b38d169..05c8f461e23 100644
--- a/src/guides/v2.4/graphql/mutations/add-downloadable-products.md
+++ b/src/guides/v2.4/graphql/mutations/add-downloadable-products.md
@@ -219,13 +219,13 @@ Attribute | Data Type | Description
The `CartItemInput` object must contain the following attributes:
-{% include graphql/cart-item-input.md %}
+{% include graphql/cart-item-input-24.md %}
### CustomizableOptionInput object {#CustomizableOptionInputVirtual}
-The `CustomizableOptionInput` object must contain the following attributes:
+The `CustomizableOptionInput` object can contain the following attributes:
-{% include graphql/customizable-option-input.md %}
+{% include graphql/customizable-option-input-24.md %}
### DownloadableProductCartItemInput object {#DownloadableProductCartItemInput}
diff --git a/src/guides/v2.4/graphql/mutations/add-products-to-cart.md b/src/guides/v2.4/graphql/mutations/add-products-to-cart.md
index 1d50b649f14..d3ad93c8a52 100644
--- a/src/guides/v2.4/graphql/mutations/add-products-to-cart.md
+++ b/src/guides/v2.4/graphql/mutations/add-products-to-cart.md
@@ -69,7 +69,6 @@ mutation {
) {
cart {
items {
- id
product {
name
sku
@@ -90,7 +89,6 @@ mutation {
"cart": {
"items": [
{
- "id": "346",
"product": {
"name": "Strive Shoulder Pack",
"sku": "24-MB04"
@@ -180,27 +178,26 @@ In this example, the mutation specifies the size and color as selected options.
```graphql
mutation {
addProductsToCart(
- cartId: "HbpLADRmSo5h2dCdF85O5wCaVnrworKL"
+ cartId: "2m3Wpue1L3bNARhErAKbZ8Lb7czvgq6R"
cartItems: [
{
quantity: 1
sku: "WSH12"
- selected_options: ["Y29uZmlndXJhYmxlLzkzLzUz","Y29uZmlndXJhYmxlLzE0NC8xNzE="]
+ selected_options: ["Y29uZmlndXJhYmxlLzkzLzUz","Y29uZmlndXJhYmxlLzE2MS8xNzQ="]
}
]
) {
cart {
items {
- id
product {
name
sku
}
... on ConfigurableCartItem {
configurable_options {
- id
+ configurable_product_option_uid
option_label
- value_id
+ configurable_product_option_value_uid
value_label
}
}
@@ -220,26 +217,25 @@ mutation {
"cart": {
"items": [
{
- "id": "24",
"product": {
"name": "Erika Running Short",
"sku": "WSH12"
},
"configurable_options": [
{
- "id": 93,
+ "configurable_product_option_uid": "Y29uZmlndXJhYmxlLzIwNDgvOTM=",
"option_label": "Color",
- "value_id": 53,
+ "configurable_product_option_value_uid": "Y29uZmlndXJhYmxlLzkzLzUz",
"value_label": "Green"
},
{
- "id": 144,
+ "configurable_product_option_uid": "Y29uZmlndXJhYmxlLzIwNDgvMTYx",
"option_label": "Size",
- "value_id": 171,
+ "configurable_product_option_value_uid": "Y29uZmlndXJhYmxlLzE2MS8xNzQ=",
"value_label": "28"
}
],
- "quantity": 2
+ "quantity": 1
}
]
}
@@ -257,13 +253,13 @@ The following example adds a simple product with a customizable option to the ca
```graphql
mutation {
addProductsToCart(
- cartId: "8k0Q4MpH2IGahWrTRtqM61YV2MtLPApz"
+ cartId: "2m3Wpue1L3bNARhErAKbZ8Lb7czvgq6R"
cartItems: [
{
quantity: 1
sku: "24-WG03"
entered_options: [{
- uid: "Y3VzdG9tLW9wdGlvbi81Mg=="
+ uid: "Y3VzdG9tLW9wdGlvbi8x"
value: "Congrats, Julie!"
}]
}
@@ -271,17 +267,16 @@ mutation {
) {
cart {
items {
- id
product {
name
sku
}
... on SimpleCartItem {
customizable_options {
- id
+ customizable_option_uid
label
values {
- id
+ customizable_option_value_uid
value
}
}
@@ -302,19 +297,19 @@ mutation {
"cart": {
"items": [
{
- "id": "350",
+ "id": "19",
"product": {
"name": "Clamber Watch",
"sku": "24-WG03"
},
"customizable_options": [
{
- "id": 52,
- "label": "Congrats, Julie!",
+ "customizable_option_uid": "Y3VzdG9tLW9wdGlvbi8x",
+ "label": "Engraving",
"values": [
{
- "id": 1184,
- "value": ""
+ "customizable_option_value_uid": "Y3VzdG9tLW9wdGlvbi8x",
+ "value": "Congrats, Julie!"
}
]
}
@@ -341,7 +336,7 @@ Attribute | Data Type | Description
The `CartItemInput` object must contain the following attributes:
-{% include graphql/cart-item-input.md %}
+{% include graphql/cart-item-input-24.md %}
### EnteredOptionInput object {#EnteredOptionInput}
diff --git a/src/guides/v2.4/graphql/mutations/add-simple-products.md b/src/guides/v2.4/graphql/mutations/add-simple-products.md
index 694513b452f..0803c37ff89 100644
--- a/src/guides/v2.4/graphql/mutations/add-simple-products.md
+++ b/src/guides/v2.4/graphql/mutations/add-simple-products.md
@@ -163,12 +163,12 @@ The following example adds a grouped product (`Workout-Kit`) to a cart. The grou
mutation {
addSimpleProductsToCart(
input: {
- cart_id: "IeTUiU0oCXjm0uRqGCOuhQ2AuQatogjG"
+ cart_id: "2m3Wpue1L3bNARhErAKbZ8Lb7czvgq6R"
cart_items: [
{
data: {
quantity: 1
- sku: "Workout-Kit"
+ sku: "24-WB01"
}
}
]
@@ -176,7 +176,7 @@ mutation {
) {
cart {
items {
- id
+ uid
product {
name
sku
@@ -197,26 +197,10 @@ mutation {
"cart": {
"items": [
{
- "id": "5",
- "product": {
- "name": "Go-Get'r Pushup Grips",
- "sku": "24-UG05"
- },
- "quantity": 1
- },
- {
- "id": "6",
- "product": {
- "name": "Dual Handle Cardio Ball",
- "sku": "24-UG07"
- },
- "quantity": 1
- },
- {
- "id": "7",
+ "uid": "NDA=",
"product": {
- "name": "Harmony Lumaflex™ Strength Band Kit ",
- "sku": "24-UG03"
+ "name": "Voyage Yoga Bag",
+ "sku": "24-WB01"
},
"quantity": 1
}
@@ -244,13 +228,13 @@ Attribute | Data Type | Description
The `CartItemInput` object must contain the following attributes:
-{% include graphql/cart-item-input.md %}
+{% include graphql/cart-item-input-24.md %}
### CustomizableOptionInput object {#CustomizableOptionInputSimple}
-The `CustomizableOptionInput` object must contain the following attributes:
+The `CustomizableOptionInput` object can contain the following attributes:
-{% include graphql/customizable-option-input.md %}
+{% include graphql/customizable-option-input-24.md %}
### SimpleProductCartItemInput object {#SimpleProductCartItemInput}
diff --git a/src/guides/v2.4/graphql/mutations/add-virtual-products.md b/src/guides/v2.4/graphql/mutations/add-virtual-products.md
index 0d3205e412a..da57e0fabaf 100644
--- a/src/guides/v2.4/graphql/mutations/add-virtual-products.md
+++ b/src/guides/v2.4/graphql/mutations/add-virtual-products.md
@@ -100,13 +100,13 @@ Attribute | Data Type | Description
The `CartItemInput` object must contain the following attributes:
-{% include graphql/cart-item-input.md %}
+{% include graphql/cart-item-input-24.md %}
### CustomizableOptionInput object {#CustomizableOptionInputVirtual}
-The `CustomizableOptionInput` object must contain the following attributes:
+The `CustomizableOptionInput` object can contain the following attributes:
-{% include graphql/customizable-option-input.md %}
+{% include graphql/customizable-option-input-24.md %}
### VirtualProductCartItemInput object {#VirtualProductCartItemInput}
diff --git a/src/guides/v2.4/graphql/mutations/remove-item.md b/src/guides/v2.4/graphql/mutations/remove-item.md
index fa89d910f17..1c36c4a695c 100644
--- a/src/guides/v2.4/graphql/mutations/remove-item.md
+++ b/src/guides/v2.4/graphql/mutations/remove-item.md
@@ -54,7 +54,7 @@ mutation {
"cart": {
"items": [
{
- "id": "13",
+ "uid": "NDA=",
"product": {
"name": "Strive Shoulder Pack"
},
@@ -82,7 +82,8 @@ The `RemoveItemFromCartInput` object must contain the following attributes:
Attribute | Data Type | Description
--- | --- | ---
`cart_id` | String! | The unique ID that identifies the customer's cart
-`cart_item_id` | Int! | The unique ID assigned when a customer places an item in the cart
+`cart_item_id` | Int | Deprecated. Use `cart_item_uid` instead. The unique ID assigned when a customer places an item in the cart
+`cart_item_uid` | ID! | The unique ID for a `CartItemInterface` object
## Output attributes
diff --git a/src/guides/v2.4/graphql/mutations/reorder-items.md b/src/guides/v2.4/graphql/mutations/reorder-items.md
index 3b1a5e73ed7..4e5e02fe629 100644
--- a/src/guides/v2.4/graphql/mutations/reorder-items.md
+++ b/src/guides/v2.4/graphql/mutations/reorder-items.md
@@ -47,7 +47,7 @@ mutation{
cart {
id
items {
- id
+ uid
product {
sku
}
@@ -78,7 +78,7 @@ mutation{
"id": "LrMHhWHUaOqiBGC6S0KOcnYKsINUHTWz",
"items": [
{
- "id": "44",
+ "uid": "NDQ=",
"product": {
"sku": "24-UG07"
},
@@ -90,7 +90,7 @@ mutation{
}
},
{
- "id": "45",
+ "uid": NDU=,
"product": {
"sku": "WS06"
},
diff --git a/src/guides/v2.4/graphql/mutations/set-gift-options.md b/src/guides/v2.4/graphql/mutations/set-gift-options.md
index 79c104ad0f2..398cdc716be 100644
--- a/src/guides/v2.4/graphql/mutations/set-gift-options.md
+++ b/src/guides/v2.4/graphql/mutations/set-gift-options.md
@@ -63,7 +63,7 @@ mutation {
message
}
gift_wrapping {
- id
+ uid
}
gift_receipt_included
printed_card_included
@@ -107,7 +107,7 @@ mutation {
"message": "Happy Birthday!"
}
"gift_wrapping": {
- "id": "2"
+ "uid": "Mg=="
},
"gift_receipt_included": true,
"printed_card_included": false,
@@ -158,7 +158,7 @@ Attribute | Data Type | Description
`cart_id` | String! | The unique ID that identifies the shopper's cart
`gift_message` | [GiftMessageInput](#GiftMessageInput) | Gift message details for the cart
`gift_receipt_included` | Boolean! | Indicates whether the customer requested a gift receipt for the cart
-`gift_wrapping_id` | ID | The unique identifier of the gift wrapping to be used for the cart
+`gift_wrapping_id` | ID | The unique ID for a `GiftWrapping` object to be used for the cart
`printed_card_included` | Boolean! | Indicates whether the customer requested a printed card for the cart
### GiftMessageInput {#GiftMessageInput}
diff --git a/src/guides/v2.4/graphql/mutations/update-cart-items.md b/src/guides/v2.4/graphql/mutations/update-cart-items.md
index c534762e1f8..5226d045bea 100644
--- a/src/guides/v2.4/graphql/mutations/update-cart-items.md
+++ b/src/guides/v2.4/graphql/mutations/update-cart-items.md
@@ -14,7 +14,7 @@ Setting the quantity to `0` removes an item from the cart.
## Example usage
-The following example changes the quantity of cart item `13`. The new quantity is `3`.
+The following example changes the quantity of cart item `MjQ=`. The new quantity is `3`.
**Request:**
@@ -22,10 +22,10 @@ The following example changes the quantity of cart item `13`. The new quantity i
mutation {
updateCartItems(
input: {
- cart_id: "IeTUiU0oCXjm0uRqGCOuhQ2AuQatogjG",
+ cart_id: "2m3Wpue1L3bNARhErAKbZ8Lb7czvgq6R",
cart_items: [
{
- cart_item_id: 13
+ cart_item_uid: "MjQ="
quantity: 3
}
]
@@ -33,7 +33,7 @@ mutation {
){
cart {
items {
- id
+ uid
product {
name
}
@@ -59,23 +59,23 @@ mutation {
"cart": {
"items": [
{
- "id": "13",
+ "uid": "MjI=",
"product": {
- "name": "Strive Shoulder Pack"
+ "name": "Erika Running Short"
},
- "quantity": 3
+ "quantity": 1
},
{
- "id": "14",
+ "uid": "MjQ=",
"product": {
- "name": "Affirm Water Bottle "
+ "name": "Voyage Yoga Bag"
},
- "quantity": 1
+ "quantity": 3
}
],
"prices": {
"grand_total": {
- "value": 103,
+ "value": 152.63,
"currency": "USD"
}
}
@@ -104,17 +104,18 @@ The `CartItemUpdateInput` object can contain the following attributes.
Attribute | Data Type | Description
--- | --- | ---
-`cart_item_id` | Int! | The unique ID assigned when a customer places an item in the cart
+`cart_item_id` | Int | Deprecated. Use `cart_item_uid` instead. The unique ID assigned when a customer places an item in the cart
+`cart_item_uid` | ID! | The unique ID for a `CartItemInterface` object
`customizable_options` | [CustomizableOptionInput!] | An array that defines customizable options for the product
`gift_message` | [GiftMessageInput](#GiftMessageInput) | Gift message details for the cart item
-`gift_wrapping_id` | ID | The unique identifier of the gift wrapping to be used for the cart item
+`gift_wrapping_id` | ID | The unique ID for a `GiftWrapping` object to be used for the cart item
`quantity` | Float | The new quantity of the item. A value of `0` removes the item from the cart
### CustomizableOptionInput attributes {#CustomizableOptionInputSimple}
-The `CustomizableOptionInput` object must contain the following attributes.
+The `CustomizableOptionInput` object can contain the following attributes.
-{% include graphql/customizable-option-input.md %}
+{% include graphql/customizable-option-input-24.md %}
### GiftMessageInput attributes {#GiftMessageInput}
diff --git a/src/guides/v2.4/graphql/queries/cart.md b/src/guides/v2.4/graphql/queries/cart.md
index 9175c47d1f8..80c65cbc4aa 100644
--- a/src/guides/v2.4/graphql/queries/cart.md
+++ b/src/guides/v2.4/graphql/queries/cart.md
@@ -217,7 +217,7 @@ The following query shows the status of a cart that is ready to be converted int
],
"items": [
{
- "id": "14",
+ "uid": "Mg==",
"product": {
"name": "Strive Shoulder Pack",
"sku": "24-MB04"
@@ -225,7 +225,7 @@ The following query shows the status of a cart that is ready to be converted int
"quantity": 2
},
{
- "id": "17",
+ "uid": "17",
"product": {
"name": "Savvy Shoulder Tote",
"sku": "24-WB05"
@@ -276,7 +276,7 @@ The `3T1free` rule is applied first, and Magento returns the price of a single s
cart(cart_id: "v7jYJUjvPeHbdMJRcOfZIeQhs2Xc2ZKT") {
email
items {
- id
+ uid
prices {
total_item_discount {
value
@@ -324,7 +324,7 @@ The `3T1free` rule is applied first, and Magento returns the price of a single s
"email": "roni_cost@example.com",
"items": [
{
- "id": "43",
+ "uid": "MjY=",
"prices": {
"total_item_discount": {
"value": 37.7
@@ -403,7 +403,7 @@ The cart in the example contains 12 units of `24-UG05` and 8 units of `24-UG-01`
query {
cart(cart_id: "v7jYJUjvPeHbdMJRcOfZIeQhs2Xc2ZKT"){
items {
- id
+ uid
quantity
product{
name
@@ -454,7 +454,7 @@ query {
"cart": {
"items": [
{
- "id": "65",
+ "uid": "NjU=",
"quantity": 12,
"product": {
"name": "Go-Get'r Pushup Grips",
@@ -489,7 +489,7 @@ query {
}
},
{
- "id": "66",
+ "uid": "NjY=",
"quantity": 8,
"product": {
"name": "Quest Lumaflex™ Band",
@@ -691,26 +691,7 @@ The `CartItemInterface` has the following implementations:
* SimpleCartItem
* VirtualCartItem
-The `CartItemInterface` can contain the following attributes.
-
-Attribute | Data Type | Description
---- | --- | ---
-`id` | String | ID of the item
-`prices` | [CartItemPrices](#CartItemPrices) | Includes the price of an item, any applied discounts, and calculated totals
-`product` | [ProductInterface]({{ page.baseurl }}/graphql/interfaces/product-interface.html) | Contains attributes that are common to all types of products
-`quantity` | Float | The number of items in the cart
-
-### CartItemPrices object {#CartItemPrices}
-
-The `CartItemPrices` object can contain the following attributes.
-
-Attribute | Data Type | Description
---- | --- | ---
-`discounts`| [[Discount]](#Discount) | An array of discounts to be applied to the cart item
-`price` | Money! | The price of the item before any discounts were applied
-`row_total` | Money! | The value of the `price` multiplied by the quantity of the item
-`row_total_including_tax` | Money! | The value of `row_total` plus the tax applied to the item
-`total_item_discount` | Money | The total of all discounts applied to the item
+See [`CartItemInterface`]({{page.baseurl}}/graphql/interfaces/cart-item-interface.html) for details.
### CartItemQuantity object {#CartItemQuantity}
diff --git a/src/guides/v2.4/graphql/queries/categories.md b/src/guides/v2.4/graphql/queries/categories.md
index 1d1263b5b28..43283813fe0 100644
--- a/src/guides/v2.4/graphql/queries/categories.md
+++ b/src/guides/v2.4/graphql/queries/categories.md
@@ -36,7 +36,7 @@ The following query returns the top-level categories (as well as two levels of c
{
categories(
filters: {
- ids: {in: ["3", "9", "11", "20", "37", "38"]}
+ ids: {in: ["3", "9", "12", "21", "38", "39"]}
parent_id: {in: ["2"]}
}
pageSize:3
@@ -44,19 +44,19 @@ The following query returns the top-level categories (as well as two levels of c
) {
total_count
items {
- id
+ uid
level
name
path
children_count
children {
- id
+ uid
level
name
path
children_count
children {
- id
+ uid
level
name
path
@@ -81,80 +81,59 @@ The following query returns the top-level categories (as well as two levels of c
"total_count": 6,
"items": [
{
- "id": 20,
+ "uid": "Mw==",
"level": 2,
- "name": "Women",
- "path": "1/2/20",
- "children_count": "8",
+ "name": "Gear",
+ "path": "1/2/3",
+ "children_count": "3",
"children": [
{
- "id": 22,
+ "uid": "NA==",
"level": 3,
- "name": "Bottoms",
- "path": "1/2/20/22",
- "children_count": "2",
- "children": [
- {
- "id": 27,
- "level": 4,
- "name": "Pants",
- "path": "1/2/20/22/27"
- },
- {
- "id": 28,
- "level": 4,
- "name": "Shorts",
- "path": "1/2/20/22/28"
- }
- ]
+ "name": "Bags",
+ "path": "1/2/3/4",
+ "children_count": "0",
+ "children": []
},
{
- "id": 21,
+ "uid": "NQ==",
"level": 3,
- "name": "Tops",
- "path": "1/2/20/21",
- "children_count": "4",
- "children": [
- {
- "id": 23,
- "level": 4,
- "name": "Jackets",
- "path": "1/2/20/21/23"
- },
- {
- "id": 24,
- "level": 4,
- "name": "Hoodies & Sweatshirts",
- "path": "1/2/20/21/24"
- },
- {
- "id": 25,
- "level": 4,
- "name": "Tees",
- "path": "1/2/20/21/25"
- },
- {
- "id": 26,
- "level": 4,
- "name": "Bras & Tanks",
- "path": "1/2/20/21/26"
- }
- ]
+ "name": "Fitness Equipment",
+ "path": "1/2/3/5",
+ "children_count": "0",
+ "children": []
+ },
+ {
+ "uid": "Ng==",
+ "level": 3,
+ "name": "Watches",
+ "path": "1/2/3/6",
+ "children_count": "0",
+ "children": []
}
]
},
{
- "id": 37,
+ "uid": "OQ==",
"level": 2,
- "name": "Sale",
- "path": "1/2/37",
- "children_count": "0",
- "children": []
+ "name": "Training",
+ "path": "1/2/9",
+ "children_count": "1",
+ "children": [
+ {
+ "uid": "MTA=",
+ "level": 3,
+ "name": "Video Download",
+ "path": "1/2/9/10",
+ "children_count": "0",
+ "children": []
+ }
+ ]
},
{
- "id": 38,
+ "uid": "Mzg=",
"level": 2,
- "name": "What's New",
+ "name": "Sale",
"path": "1/2/38",
"children_count": "0",
"children": []
diff --git a/src/guides/v2.4/graphql/queries/category-list.md b/src/guides/v2.4/graphql/queries/category-list.md
index f6d03868779..d070ce04c88 100644
--- a/src/guides/v2.4/graphql/queries/category-list.md
+++ b/src/guides/v2.4/graphql/queries/category-list.md
@@ -37,7 +37,7 @@ categoryList (
### Return the category tree of a top-level category
-The following query returns information about category IDs `11` and `20` and two levels of subcategories. In the sample data, category IDs `11` and `20` are assigned to the `Men` and `Women` categories, respectively.
+The following query returns information about category IDs `12` and `21` and two levels of subcategories. In the sample data, category IDs `11` and `20` are assigned to the `Men` and `Women` categories, respectively.
**Request:**
@@ -45,20 +45,20 @@ The following query returns information about category IDs `11` and `20` and two
{
categoryList(
filters: {
- ids: {in: ["11", "20"]}
+ ids: {in: ["12", "21"]}
parent_id: {in: ["2"]}
}
) {
children_count
children {
- id
+ uid
level
name
path
url_path
url_key
children {
- id
+ uid
level
name
path
@@ -80,70 +80,70 @@ The following query returns information about category IDs `11` and `20` and two
"children_count": "8",
"children": [
{
- "id": 13,
+ "uid": "MjM=",
"level": 3,
"name": "Bottoms",
- "path": "1/2/11/13",
- "url_path": "men/bottoms-men",
- "url_key": "bottoms-men",
+ "path": "1/2/21/23",
+ "url_path": "women/bottoms-women",
+ "url_key": "bottoms-women",
"children": [
{
- "id": 18,
+ "uid": "Mjg=",
"level": 4,
"name": "Pants",
- "path": "1/2/11/13/18",
- "url_path": "men/bottoms-men/pants-men",
- "url_key": "pants-men"
+ "path": "1/2/21/23/28",
+ "url_path": "women/bottoms-women/pants-women",
+ "url_key": "pants-women"
},
{
- "id": 19,
+ "uid": "Mjk=",
"level": 4,
"name": "Shorts",
- "path": "1/2/11/13/19",
- "url_path": "men/bottoms-men/shorts-men",
- "url_key": "shorts-men"
+ "path": "1/2/21/23/29",
+ "url_path": "women/bottoms-women/shorts-women",
+ "url_key": "shorts-women"
}
]
},
{
- "id": 12,
+ "uid": "MjI=",
"level": 3,
"name": "Tops",
- "path": "1/2/11/12",
- "url_path": "men/tops-men",
- "url_key": "tops-men",
+ "path": "1/2/21/22",
+ "url_path": "women/tops-women",
+ "url_key": "tops-women",
"children": [
{
- "id": 14,
+ "uid": "MjQ=",
"level": 4,
"name": "Jackets",
- "path": "1/2/11/12/14",
- "url_path": "men/tops-men/jackets-men",
- "url_key": "jackets-men"
+ "path": "1/2/21/22/24",
+ "url_path": "women/tops-women/jackets-women",
+ "url_key": "jackets-women"
},
{
- "id": 15,
+ "uid": "MjU=",
"level": 4,
"name": "Hoodies & Sweatshirts",
- "path": "1/2/11/12/15",
- "url_path": "men/tops-men/hoodies-and-sweatshirts-men",
- "url_key": "hoodies-and-sweatshirts-men"
+ "path": "1/2/21/22/25",
+ "url_path": "women/tops-women/hoodies-and-sweatshirts-women",
+ "url_key": "hoodies-and-sweatshirts-women"
},
{
- "id": 16,
+ "uid": "MjY=",
"level": 4,
"name": "Tees",
- "path": "1/2/11/12/16",
- "url_path": "men/tops-men/tees-men",
- "url_key": "tees-men"
+ "path": "1/2/21/22/26",
+ "url_path": "women/tops-women/tees-women",
+ "url_key": "tees-women"
},
{
- "id": 17,
+ "uid": "Mjc=",
"level": 4,
- "name": "Tanks",
- "path": "1/2/11/12/17",
- "url_path": "men/tops-men/tanks-men",
- "url_key": "tanks-men"
+ "name": "Bras & Tanks",
+ "path": "1/2/21/22/27",
+ "url_path": "women/tops-women/tanks-women",
+ "url_key": "tanks-women"
}
]
}
@@ -153,70 +153,70 @@ The following query returns information about category IDs `11` and `20` and two
"children_count": "8",
"children": [
{
- "id": 22,
+ "uid": "MTQ=",
"level": 3,
"name": "Bottoms",
- "path": "1/2/20/22",
- "url_path": "women/bottoms-women",
- "url_key": "bottoms-women",
+ "path": "1/2/12/14",
+ "url_path": "men/bottoms-men",
+ "url_key": "bottoms-men",
"children": [
{
- "id": 27,
+ "uid": "MTk=",
"level": 4,
"name": "Pants",
- "path": "1/2/20/22/27",
- "url_path": "women/bottoms-women/pants-women",
- "url_key": "pants-women"
+ "path": "1/2/12/14/19",
+ "url_path": "men/bottoms-men/pants-men",
+ "url_key": "pants-men"
},
{
- "id": 28,
+ "uid": "MjA=",
"level": 4,
"name": "Shorts",
- "path": "1/2/20/22/28",
- "url_path": "women/bottoms-women/shorts-women",
- "url_key": "shorts-women"
+ "path": "1/2/12/14/20",
+ "url_path": "men/bottoms-men/shorts-men",
+ "url_key": "shorts-men"
}
]
},
{
- "id": 21,
+ "uid": "MTM=",
"level": 3,
"name": "Tops",
- "path": "1/2/20/21",
- "url_path": "women/tops-women",
- "url_key": "tops-women",
+ "path": "1/2/12/13",
+ "url_path": "men/tops-men",
+ "url_key": "tops-men",
"children": [
{
- "id": 23,
+ "uid": "MTU=",
"level": 4,
"name": "Jackets",
- "path": "1/2/20/21/23",
- "url_path": "women/tops-women/jackets-women",
- "url_key": "jackets-women"
+ "path": "1/2/12/13/15",
+ "url_path": "men/tops-men/jackets-men",
+ "url_key": "jackets-men"
},
{
- "id": 24,
+ "uid": "MTY=",
"level": 4,
"name": "Hoodies & Sweatshirts",
- "path": "1/2/20/21/24",
- "url_path": "women/tops-women/hoodies-and-sweatshirts-women",
- "url_key": "hoodies-and-sweatshirts-women"
+ "path": "1/2/12/13/16",
+ "url_path": "men/tops-men/hoodies-and-sweatshirts-men",
+ "url_key": "hoodies-and-sweatshirts-men"
},
{
- "id": 25,
+ "uid": "MTc=",
"level": 4,
"name": "Tees",
- "path": "1/2/20/21/25",
- "url_path": "women/tops-women/tees-women",
- "url_key": "tees-women"
+ "path": "1/2/12/13/17",
+ "url_path": "men/tops-men/tees-men",
+ "url_key": "tees-men"
},
{
- "id": 26,
+ "uid": "MTg=",
"level": 4,
- "name": "Bras & Tanks",
- "path": "1/2/20/21/26",
- "url_path": "women/tops-women/tanks-women",
- "url_key": "tanks-women"
+ "name": "Tanks",
+ "path": "1/2/12/13/18",
+ "url_path": "men/tops-men/tanks-men",
+ "url_key": "tanks-men"
}
]
}
@@ -236,11 +236,11 @@ The following query returns breadcrumb information about categories that have th
```graphql
{
categoryList(filters: {name: {match: "Tops"}}) {
- id
+ uid
level
name
breadcrumbs {
- category_id
+ category_uid
category_name
category_level
category_url_key
@@ -256,28 +256,28 @@ The following query returns breadcrumb information about categories that have th
"data": {
"categoryList": [
{
- "id": 12,
+ "uid": "MjI=",
"level": 3,
"name": "Tops",
"breadcrumbs": [
{
- "category_id": 11,
- "category_name": "Men",
+ "category_uid": "MjE=",
+ "category_name": "Women",
"category_level": 2,
- "category_url_key": "men"
+ "category_url_key": "women"
}
]
},
{
- "id": 21,
+ "uid": "MTM=",
"level": 3,
"name": "Tops",
"breadcrumbs": [
{
- "category_id": 20,
- "category_name": "Women",
+ "category_uid": "MTI=",
+ "category_name": "Men",
"category_level": 2,
- "category_url_key": "women"
+ "category_url_key": "men"
}
]
}
diff --git a/src/guides/v2.4/graphql/queries/customer-cart.md b/src/guides/v2.4/graphql/queries/customer-cart.md
index 3782cb19749..89f38ce82f3 100644
--- a/src/guides/v2.4/graphql/queries/customer-cart.md
+++ b/src/guides/v2.4/graphql/queries/customer-cart.md
@@ -50,7 +50,7 @@ The following query lists the products in the logged-in customer's cart:
"id": "CYmiiQRjPVc2gJUc5r7IsBmwegVIFO43",
"items": [
{
- "id": "11",
+ "uid": "MjI=",
"product": {
"name": "Strive Shoulder Pack",
"sku": "24-MB04"
@@ -58,7 +58,7 @@ The following query lists the products in the logged-in customer's cart:
"quantity": 1
},
{
- "id": "12",
+ "uid": "MjQ=",
"product": {
"name": "Radiant Tee",
"sku": "WS12"
diff --git a/src/guides/v2.4/graphql/queries/customer.md b/src/guides/v2.4/graphql/queries/customer.md
index cf05a81a578..05273266440 100644
--- a/src/guides/v2.4/graphql/queries/customer.md
+++ b/src/guides/v2.4/graphql/queries/customer.md
@@ -486,11 +486,10 @@ The following query returns the customer's wish list:
```graphql
{
customer {
- wishlist {
- items {
+ wishlists {
+ items_v2 {
id
description
- qty
product {
sku
name
@@ -514,42 +513,230 @@ The following query returns the customer's wish list:
{
"data": {
"customer": {
- "wishlist": {
- "items": [
- {
- "id": 1,
- "description": "I need this",
- "qty": 1,
- "product": {
- "sku": "24-WG080",
- "name": "Sprite Yoga Companion Kit",
- "price_range": {
- "maximum_price": {
- "regular_price": {
- "value": 77
+ "wishlists": [
+ {
+ "id": "1",
+ "items_v2": [
+ {
+ "id": "1",
+ "description": null,
+ "quantity": 1,
+ "product": {
+ "sku": "24-WB07",
+ "name": "Overnight Duffle",
+ "price_range": {
+ "maximum_price": {
+ "regular_price": {
+ "value": 45
+ }
+ }
+ }
+ }
+ },
+ {
+ "id": "2",
+ "description": null,
+ "quantity": 1,
+ "product": {
+ "sku": "24-WB05",
+ "name": "Savvy Shoulder Tote",
+ "price_range": {
+ "maximum_price": {
+ "regular_price": {
+ "value": 32
+ }
+ }
+ }
+ }
+ },
+ {
+ "id": "3",
+ "description": null,
+ "quantity": 1,
+ "product": {
+ "sku": "24-WB06",
+ "name": "Endeavor Daytrip Backpack",
+ "price_range": {
+ "maximum_price": {
+ "regular_price": {
+ "value": 33
+ }
+ }
+ }
+ }
+ },
+ {
+ "id": "4",
+ "description": null,
+ "quantity": 1,
+ "product": {
+ "sku": "WH04",
+ "name": "Miko Pullover Hoodie",
+ "price_range": {
+ "maximum_price": {
+ "regular_price": {
+ "value": 69
+ }
+ }
+ }
+ }
+ },
+ {
+ "id": "5",
+ "description": null,
+ "quantity": 1,
+ "product": {
+ "sku": "WJ01",
+ "name": "Stellar Solar Jacket",
+ "price_range": {
+ "maximum_price": {
+ "regular_price": {
+ "value": 75
+ }
+ }
+ }
+ }
+ },
+ {
+ "id": "6",
+ "description": null,
+ "quantity": 1,
+ "product": {
+ "sku": "WT03",
+ "name": "Nora Practice Tank",
+ "price_range": {
+ "maximum_price": {
+ "regular_price": {
+ "value": 39
+ }
+ }
+ }
+ }
+ },
+ {
+ "id": "7",
+ "description": null,
+ "quantity": 1,
+ "product": {
+ "sku": "WT01",
+ "name": "Bella Tank",
+ "price_range": {
+ "maximum_price": {
+ "regular_price": {
+ "value": 29
+ }
}
}
}
}
- },
- {
- "id": 2,
- "description": null,
- "qty": 1,
- "product": {
- "sku": "24-UG04",
- "name": "Zing Jump Rope",
- "price_range": {
- "maximum_price": {
- "regular_price": {
- "value": 12
+ ],
+ "items_count": 7,
+ "sharing_code": "4fAZAjxZJJ2UQdtPE1nsiQkTqaqICw2x"
+ },
+ {
+ "id": "2",
+ "items_v2": [
+ {
+ "id": "8",
+ "description": null,
+ "quantity": 1,
+ "product": {
+ "sku": "240-LV08",
+ "name": "Advanced Pilates & Yoga (Strength)",
+ "price_range": {
+ "maximum_price": {
+ "regular_price": {
+ "value": 18
+ }
+ }
+ }
+ }
+ },
+ {
+ "id": "9",
+ "description": null,
+ "quantity": 1,
+ "product": {
+ "sku": "24-UG02",
+ "name": "Pursuit Lumaflex™ Tone Band",
+ "price_range": {
+ "maximum_price": {
+ "regular_price": {
+ "value": 16
+ }
+ }
+ }
+ }
+ },
+ {
+ "id": "10",
+ "description": null,
+ "quantity": 1,
+ "product": {
+ "sku": "WS04",
+ "name": "Layla Tee",
+ "price_range": {
+ "maximum_price": {
+ "regular_price": {
+ "value": 29
+ }
+ }
+ }
+ }
+ },
+ {
+ "id": "11",
+ "description": null,
+ "quantity": 1,
+ "product": {
+ "sku": "WS12",
+ "name": "Radiant Tee",
+ "price_range": {
+ "maximum_price": {
+ "regular_price": {
+ "value": 22
+ }
+ }
+ }
+ }
+ },
+ {
+ "id": "12",
+ "description": null,
+ "quantity": 1,
+ "product": {
+ "sku": "WB01",
+ "name": "Electra Bra Top",
+ "price_range": {
+ "maximum_price": {
+ "regular_price": {
+ "value": 39
+ }
+ }
+ }
+ }
+ },
+ {
+ "id": "13",
+ "description": null,
+ "quantity": 1,
+ "product": {
+ "sku": "WB03",
+ "name": "Celeste Sports Bra",
+ "price_range": {
+ "maximum_price": {
+ "regular_price": {
+ "value": 39
+ }
}
}
}
}
- }
- ]
- }
+ ],
+ "items_count": 6,
+ "sharing_code": "yvZFq8xifW8iur20MRA59rsTjKPuSXht"
+ }
+ ]
}
}
}
diff --git a/src/guides/v2.4/graphql/queries/products.md b/src/guides/v2.4/graphql/queries/products.md
index 26330ecee1e..6fc2d438aa9 100644
--- a/src/guides/v2.4/graphql/queries/products.md
+++ b/src/guides/v2.4/graphql/queries/products.md
@@ -58,7 +58,8 @@ By default, you can use the following attributes as filters. To define a custom
Attribute | Data type | Description
--- | --- | ---
-`category_id` | FilterEqualTypeInput | Filters by category ID
+`category_id` | FilterEqualTypeInput | Deprecated. Use `category_uid` instead. Filters by category ID
+`category_uid` | FilterEqualTypeInput | Filters by the unique ID of a category for objects that implement `CategoryInterface`
`description` | FilterMatchTypeInput | Filters on the Description attribute
`name` | FilterMatchTypeInput | Filters on the Product Name attribute
`price` | FilterRangeTypeInput | Filters on the Price attribute
@@ -254,7 +255,7 @@ Attribute | Data type | Description
### Aggregation attributes {#Aggregation}
-Each aggregation within the `aggregations` object is a separate bucket that contains the attribute code and label for each filterable option (such as price, category ID, and custom attributes). It also includes the number of products within the filterable option that match the specified search criteria.
+Each aggregation within the `aggregations` object is a separate bucket that contains the attribute code and label for each filterable option (such as price, category UID, and custom attributes). It also includes the number of products within the filterable option that match the specified search criteria.
{:.bs-callout-info}
To enable a custom attribute to return layered navigation and aggregation data from the Admin, set the **Stores** > Attributes > **Product** > > **Storefront Properties** > **Use in Layered Navigation** field to **Filterable (with results)** or **Filterable (no results)**.
@@ -1162,18 +1163,18 @@ The following query shows how to get related products, up-sells, and cross-sells
{
products(filter: { sku: { eq: "24-WB06" } }) {
items {
- id
+ uid
name
related_products {
- id
+ uid
name
}
upsell_products {
- id
+ uid
name
}
crosssell_products {
- id
+ uid
name
}
}
@@ -1189,62 +1190,131 @@ The following query shows how to get related products, up-sells, and cross-sells
"products": {
"items": [
{
- "id": 11,
+ "uid": "MTE=",
"name": "Endeavor Daytrip Backpack",
- "related_products": [],
+ "related_products": [
+ {
+ "uid": "MTU=",
+ "name": "Affirm Water Bottle "
+ },
+ {
+ "uid": "MTg=",
+ "name": "Pursuit Lumaflex™ Tone Band"
+ },
+ {
+ "uid": "MTY=",
+ "name": "Dual Handle Cardio Ball"
+ },
+ {
+ "uid": "MTc=",
+ "name": "Zing Jump Rope"
+ }
+ ],
"upsell_products": [
{
- "id": 1,
+ "uid": "MQ==",
"name": "Joust Duffle Bag"
},
{
- "id": 3,
+ "uid": "Mw==",
"name": "Crown Summit Backpack"
},
{
- "id": 4,
+ "uid": "NA==",
"name": "Wayfarer Messenger Bag"
},
{
- "id": 5,
+ "uid": "NQ==",
"name": "Rival Field Messenger"
},
{
- "id": 6,
+ "uid": "Ng==",
"name": "Fusion Backpack"
},
{
- "id": 7,
+ "uid": "Nw==",
"name": "Impulse Duffle"
},
{
- "id": 12,
+ "uid": "MTI=",
"name": "Driven Backpack"
},
{
- "id": 13,
+ "uid": "MTM=",
"name": "Overnight Duffle"
},
{
- "id": 14,
+ "uid": "MTQ=",
"name": "Push It Messenger Bag"
}
],
"crosssell_products": [
{
- "id": 18,
+ "uid": "MTI=",
+ "name": "Driven Backpack"
+ },
+ {
+ "uid": "OA==",
+ "name": "Voyage Yoga Bag"
+ },
+ {
+ "uid": "Ng==",
+ "name": "Fusion Backpack"
+ },
+ {
+ "uid": "Nw==",
+ "name": "Impulse Duffle"
+ },
+ {
+ "uid": "OQ==",
+ "name": "Compete Track Tote"
+ },
+ {
+ "uid": "Mw==",
+ "name": "Crown Summit Backpack"
+ },
+ {
+ "uid": "MTQ=",
+ "name": "Push It Messenger Bag"
+ },
+ {
+ "uid": "MQ==",
+ "name": "Joust Duffle Bag"
+ },
+ {
+ "uid": "MTA=",
+ "name": "Savvy Shoulder Tote"
+ },
+ {
+ "uid": "Mg==",
+ "name": "Strive Shoulder Pack"
+ },
+ {
+ "uid": "NA==",
+ "name": "Wayfarer Messenger Bag"
+ },
+ {
+ "uid": "MTM=",
+ "name": "Overnight Duffle"
+ },
+ {
+ "uid": "NQ==",
+ "name": "Rival Field Messenger"
+ },
+ {
+ "uid": "MTg=",
"name": "Pursuit Lumaflex™ Tone Band"
},
{
- "id": 21,
+ "uid": "MjE=",
"name": "Sprite Foam Yoga Brick"
},
{
- "id": 32,
+ "uid": "MzI=",
"name": "Sprite Stasis Ball 75 cm"
},
{
- "id": 45,
+ "uid": "NDU=",
"name": "Set of Sprite Yoga Straps"
}
]
@@ -1272,7 +1342,7 @@ query {
total_count
items {
sku
- id
+ uid
name
image {
url
@@ -1311,19 +1381,19 @@ query {
"items": [
{
"sku": "24-MB01",
- "id": 1,
+ "uid": "MQ==",
"name": "Joust Duffle Bag",
"image": {
- "url": "http://magento2.vagrant130/pub/media/catalog/product/cache/fd3509f20f1e8c87464fb5042a4927e6/m/b/mb01-blue-0.jpg",
+ "url": "http://h3.test/media/catalog/product/cache/f2894681b4002ea001bba48638ea0dbc/m/b/mb01-blue-0.jpg",
"label": "Joust Duffle Bag"
},
"small_image": {
- "url": "http://magento2.vagrant130/pub/media/catalog/product/cache/fd3509f20f1e8c87464fb5042a4927e6/m/b/mb01-blue-0.jpg",
+ "url": "http://h3.test/media/catalog/product/cache/f2894681b4002ea001bba48638ea0dbc/m/b/mb01-blue-0.jpg",
"label": "Joust Duffle Bag"
},
"media_gallery": [
{
- "url": "http://magento2.vagrant130/pub/media/catalog/product/cache/07660f0f9920886e0f9d3257a9c68f26/m/b/mb01-blue-0.jpg",
+ "url": "http://h3.test/media/catalog/product/cache/f2894681b4002ea001bba48638ea0dbc/m/b/mb01-blue-0.jpg",
"label": "Image"
}
]
diff --git a/src/guides/v2.4/graphql/queries/url-resolver.md b/src/guides/v2.4/graphql/queries/url-resolver.md
deleted file mode 120000
index e1e35242ee8..00000000000
--- a/src/guides/v2.4/graphql/queries/url-resolver.md
+++ /dev/null
@@ -1 +0,0 @@
-../../../v2.3/graphql/queries/url-resolver.md
\ No newline at end of file
diff --git a/src/guides/v2.4/graphql/queries/url-resolver.md b/src/guides/v2.4/graphql/queries/url-resolver.md
new file mode 100644
index 00000000000..059f7cf0765
--- /dev/null
+++ b/src/guides/v2.4/graphql/queries/url-resolver.md
@@ -0,0 +1,71 @@
+---
+group: graphql
+title: urlResolver query
+---
+
+A merchant can reconfigure (rewrite) the URL to any product, category, or CMS page. When the rewrite goes into effect, any links that point to the previous URL are redirected to the new address.
+
+The `urlResolver` query returns the canonical URL for a specified product, category, or CMS page. An external app can render a page by a URL without any prior knowledge about the landing page.
+
+## Syntax
+
+`{urlResolver(url: String!): EntityUrl}`
+
+## Example usage
+
+### Query the URL's information
+
+The following query returns information about the URL containing `joust-duffle-bag.html`.
+
+**Request:**
+
+```graphql
+{
+ urlResolver(url: "joust-duffle-bag.html") {
+ entity_uid
+ relative_url
+ redirectCode
+ type
+ }
+}
+```
+
+**Response:**
+
+```json
+{
+ "data": {
+ "urlResolver": {
+ "entity_uid": "MQ==",
+ "relative_url": "joust-duffle-bag.html",
+ "redirectCode": 0,
+ "type": "PRODUCT"
+ }
+ }
+}
+```
+
+## Input attributes
+
+The `urlResolver` query contains the following attribute.
+
+Attribute | Type | Description
+--- | --- | ---
+`url` | String | The requested URL. To query for product and category pages, the `url` value must contain the URL key and suffix. For CMS page queries, the `url` value must contain the URL key only.
+
+## Output attributes
+
+The `EntityUrl` output object contains the `id`, `relative_url`, and `type` attributes.
+
+Attribute | Data Type | Description
+--- | --- | ---
+`canonical_url` | String | Deprecated. Use `relative_url` instead
+`entity_uid` | ID! | The unique ID assigned to the object associated with the specified `url`, such as `ProductInterface`, `CategoryInterface`, or `CmsPage`. This could be a product, category, or CMS ID
+`id` | Int | Deprecated. Use `entity_uid` instead. The ID assigned to the object associated with the specified `url`. This could be a product ID, category ID, or page ID
+`redirectCode` | Int | Contains 0 when there is no redirect error. A value of 301 indicates the URL of the requested resource has been changed permanently, while a value of 302 indicates a temporary redirect
+`relative_url` | String | The internal relative URL. If the specified `url` is a redirect, the query returns the redirected URL, not the original
+`type` | UrlRewriteEntityTypeEnum | The value of `UrlRewriteEntityTypeEnum` is one of PRODUCT, CATEGORY, or CMS_PAGE
+
+## Related topics
+
+[Products query]({{page.baseurl}}/graphql/queries/products.html)