B2B for Adobe Commerce only. Learn more.

requestNegotiableQuote mutation

The requestNegotiableQuote mutation initiates a negotiable quote on behalf of a company user. The company user must add all products to the cart before requesting a negotiable quote. Once the request is submitted, company users cannot add new products to the quote.

If the request is successful, Magento assigns the cart ID to the negotiable quote. Therefore, the same cart ID is used throughout the lifecycle of the negotiable quote. Magento generates a new cart ID if the company user starts a new order while a negotiable quote is in process. The cart ID must be active. You cannot create a negotiable quote if the quote is cancelled or converted to an order.

If the request is successful, the negotiable quote has the SUBMITTED status.

If the negotiable quote requires a shipping address (for negotiation or tax calculations), you can use the setNegotiableQuoteShippingAddresses mutation to add the address to the standard quote during the negotiable quote process.

This mutation requires a valid customer authentication token.

Syntax

1
2
3
requestNegotiableQuote(
    input: RequestNegotiableQuoteInput!
): RequestNegotiableQuoteOutput

Example usage

The following example requests a negotiable quote. The cart contains three items.

Request:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
mutation {
  requestNegotiableQuote (
    input: {
      cart_id: "kw6mLEvl6vjjPNsjtJqwpamv5o0iT1bc"
      quote_name: "Discount request"
      comment: {
        comment: "Requesting a 10% discount for being a repeat customer."}
    }
  ){
    quote {
      uid
      created_at
      status
      buyer {
        firstname
        lastname
      }
      comments {
        uid
        created_at
        author {
          firstname
          lastname
        }
        creator_type
        text
      }
      items {
        product {
          uid
          sku
          name
          price_range {
            maximum_price {
              regular_price {
                value
              }
            }
          }
        }
        quantity
      }
      prices {
        subtotal_excluding_tax {
          value
        }
        subtotal_including_tax {
          value
        }
        subtotal_with_discount_excluding_tax {
          value
        }
        grand_total {
          value
        }
      }
    }
  }
}

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
{
  "data": {
    "requestNegotiableQuote": {
      "quote": {
        "uid": "kw6mLEvl6vjjPNsjtJqwpamv5o0iT1bc",
        "created_at": "2021-04-20 19:01:38",
        "status": "SUBMITTED",
        "buyer": {
          "firstname": "Taina",
          "lastname": "Garofalo"
        },
        "comments": [
          {
            "uid": "MQ==",
            "created_at": "2021-04-20 19:57:49",
            "author": {
              "firstname": "Taina",
              "lastname": "Garofalo"
            },
            "creator_type": "BUYER",
            "text": "Requesting a 10% discount for being a repeat customer."
          }
        ],
        "items": [
          {
            "product": {
              "uid": "MTY=",
              "sku": "24-UG07",
              "name": "Dual Handle Cardio Ball",
              "price_range": {
                "maximum_price": {
                  "regular_price": {
                    "value": 12
                  }
                }
              }
            },
            "quantity": 1
          },
          {
            "product": {
              "uid": "NTI=",
              "sku": "24-WG080",
              "name": "Sprite Yoga Companion Kit",
              "price_range": {
                "maximum_price": {
                  "regular_price": {
                    "value": 77
                  }
                }
              }
            },
            "quantity": 1
          },
          {
            "product": {
              "uid": "MTc=",
              "sku": "24-UG04",
              "name": "Zing Jump Rope",
              "price_range": {
                "maximum_price": {
                  "regular_price": {
                    "value": 12
                  }
                }
              }
            },
            "quantity": 1
          }
        ],
        "prices": {
          "subtotal_excluding_tax": {
            "value": 101
          },
          "subtotal_including_tax": {
            "value": 101
          },
          "subtotal_with_discount_excluding_tax": {
            "value": 101
          },
          "grand_total": {
            "value": 101
          }
        }
      }
    }
  }
}

Input attributes

The RequestNegotiableQuoteInput input object specifies the company user’s cart ID and other information to identify a new negotiable quote.

RequestNegotiableQuoteInput attributes

The RequestNegotiableQuoteInput object contains the following attributes.

Attribute Data Type Description
cart_id ID! The cart ID of the buyer requesting a new negotiable quote
comment NegotiableQuoteCommentInput! Comments the buyer entered to describe the request
quote_name String! The name the buyer assigned to the negotiable quote request

NegotiableQuoteCommentInput

The NegotiableQuoteCommentInput object contains the following attribute.

Attribute Data Type Description
comment String! The comment provided by the buyer

Output attributes

The RequestNegotiableQuoteOutput output object contains the following attribute.

Attribute Data Type Description
quote NegotiableQuote! Contains details about the negotiable quote

NegotiableQuote attributes

The NegotiableQuote object contains details of a negotiable quote, including its status, contents, and history.

Attribute Data Type Description
buyer NegotiableQuoteUser! The first and last name of the buyer
comments [NegotiableQuoteComment!] A list of comments made by the buyer and seller
created_at String Timestamp indicating when the negotiable quote was created
history [NegotiableQuoteHistoryEntry!] A list of status and price changes for the negotiable quote
items [CartItemInterface] The list of items in the negotiable quote
name String! The title assigned to the negotiable quote
prices CartPrices A set of subtotals and totals applied to the cart
status NegotiableQuoteStatus! The status of the negotiable quote. Possible values are SUBMITTED, PENDING, UPDATED, OPEN, ORDERED, CLOSED, DECLINED, and EXPIRED
uid ID! The unique ID of a NegotiableQuote object
updated_at String Timestamp indicating when the negotiable quote was updated

NegotiableQuoteComment attributes

The NegotiableQuoteComment object contains details about a single comment made by the seller or the buyer.

Attribute Data Type Description
author NegotiableQuoteUser! The first and last name of the commenter
created_at String! Timestamp indicating when the comment was created
creator_type NegotiableQuoteCommentCreatorType! Indicates whether a buyer or seller commented
text String! The plain text comment
uid ID! The unique ID of a NegotiableQuoteComment object

NegotiableQuoteCustomLogChange attributes

The NegotiableQuoteCustomLogChange object contains changes to a negotiable quote that were made by a third-party extension.

Attribute Data Type Description
new_value String! The new entry content
old_value String The previous entry in the custom log
title String! The title of the custom log entry

NegotiableQuoteHistoryChanges attributes

The NegotiableQuoteHistoryChanges object contains details about a single change in the history of a negotiable quote.

Attribute Data Type Description
comment_added NegotiableQuoteHistoryCommentChange The comment provided with a change in the negotiable quote history
custom_changes NegotiableQuoteCustomLogChange Lists log entries added by third-party extensions
expiration NegotiableQuoteHistoryExpirationChange The expiration date of the negotiable quote before and after a change in the quote history
products_removed NegotiableQuoteHistoryProductsRemovedChange Lists products that were removed as a result of a change in the quote history
statuses NegotiableQuoteHistoryStatusesChange The status before and after a change in the negotiable quote history
total NegotiableQuoteHistoryTotalChange The total amount of the negotiable quote before and after a change in the quote history

NegotiableQuoteHistoryCommentChange attributes

The NegotiableQuoteHistoryCommentChange object contains a plain-text comment.

Attribute Data Type Description
comment String! A simple (non-HTML) comment submitted by a seller or buyer

NegotiableQuoteHistoryEntry attributes

The NegotiableQuoteHistoryEntry object contains details about a change to a negotiable quote, including all previous changes made at that point.

Attribute Data Type Description
author NegotiableQuoteUser! The person who made a change in the status of the negotiable quote
change_type NegotiableQuoteHistoryEntryChangeType! An enum that describes why the entry in the negotiable quote history changed status. Possible values are CREATED, UPDATED, CLOSED, and UPDATED_BY_SYSTEM
changes NegotiableQuoteHistoryChanges The set of changes in the negotiable quote
created_at String Timestamp indicating when the negotiable quote entry was created
uid ID! The unique ID of a NegotiableQuoteHistoryEntry object

NegotiableQuoteHistoryExpirationChange attributes

The NegotiableQuoteHistoryExpirationChange object lists the current expiration date of the negotiable quote, and the previous expiration date, if applicable.

Attribute Data Type Description
new_expiration String! The expiration date after the change
old_expiration String The previous expiration date. The value will be ‘null’ if not previously set

NegotiableQuoteHistoryProductsRemovedChange attributes

The NegotiableQuoteHistoryProductsRemovedChange object provides details about products removed from a negotiable quote because of an action by a buyer or seller, or because the item was removed from the catalog.

Attribute Data Type Description
products_removed_from_catalog [ID] A list of product IDs the seller removed from the catalog
products_removed_from_quote [ProductInterface] A list of products removed from the quote by either the buyer or the seller

NegotiableQuoteHistoryStatusChange attributes

The NegotiableQuoteHistoryStatusChange object returns the status changes during the quote’s life cycle.

Attribute Data Type Description
new_status NegotiableQuoteStatus! The updated status
old_status NegotiableQuoteStatus The previous status. The value will be null for the first history entry in a negotiable quote

NegotiableQuoteHistoryStatusesChange attributes

The NegotiableQuoteHistoryStatusesChange object contains an array of all previous modifications to the negotiable quote.

Attribute Data Type Description
changes [NegotiableQuoteHistoryStatusChange!]! A list of status changes

NegotiableQuoteHistoryTotalChange attributes

The NegotiableQuoteHistoryTotalChange object contains the new total price of a negotiable quote after some change has been applied.

Attribute Data Type Description
new_price Money The total price as a result of the change
old_price Money The previous total price on the negotiable quote

NegotiableQuoteUser attributes

The NegotiableQuoteUser contains the first and last name of a buyer or seller.

Attribute Data Type Description
firstname String! The first name of the buyer or seller making a change
lastname String! The buyer’s or seller’s last name