PHP 7.3 reached end of support in December 2021 and Adobe Commerce 2.3.x reaches end of support in September 2022. You may want to consider planning your upgrade now to Adobe Commerce 2.4.x and PHP 7.4.x to help maintain PCI compliance.
Adobe Commerce only. Learn more.

Update a negotiable quote

Sellers and buyers can edit a negotiable quote at various times during the quote’s lifecycle. Both use the PUT /V1/negotiableQuote/:quoteId call to update the quote. This call is defined in the quoteCartRepositoryV1 service and is functionally similar to the PUT /V1/carts/mine call.

The quote object now contains a set of negotiable_quote extension attributes that can be used to update a quote.

Name Description Format Requirements
quote_id Negotiable quote ID integer Required to create or update a negotiable quote
is_regular_quote Flag for the negotiable quote boolean Optional
status One of created, submitted_by_customer, submitted_by_admin, processing_by_customer, processing_by_admin, ordered, expired, declined, closed string Optional
negotiated_price_type 1 - Percentage discount; 2 - Fixed price; 3 - proposed total integer Required to set a negotiated price
negotiated_price_value Discount amount defined by the seller number Required to set a negotiated price
shipping_price Custom price for shipping defined by the seller number Optional
quote_name Name assigned to the negotiable quote string Optional
expiration_period Expiration date for the quote. The format must be YYYY-MM-DD. string Optional
email_notification_status Recent notifications that have been sent integer Optional
has_unconfirmed_changes Indicates there are some changes that the Admin has not seen yet boolean Optional
is_shipping_tax_changed Indicates whether shipping taxes have changed boolean Optional
is_customer_price_changed Indicates whether the price for the product has changed boolean Optional
notifications Binary mask where the current notifications are stored integer Optional
applied_rule_ids Applied shopping cart rules string Optional
is_address_draft Drop the address if the checkout is not completed. boolean Optional
deleted_sku The SKUs of any deleted products string Optional
creator_id Quote creator ID integer Optional
creator_type 1 - Integration; 2 - Admin; 3 - Customer; 4 - Guest integer Optional
original_total_price Original total price number Optional
base_original_total_price Base original total price number Optional
negotiated_total_price Negotiated total price number Optional
base_negotiated_total_price Base negotiated total price number Optional

Set a negotiated price

In every successful negotiate quote, the seller must set the negotiated price.

The negotiated_price_type can have one of the following values:

1 - Apply a percentage discount to the quote. The negotiated_price_value parameter indicates the percentage.

2 - Apply a fixed amount as a discount for the quote. The negotiated_price_value parameter specifies the amount of the discount.

3 - Set a proposed price for the entire quote. The negotiated_price_value parameter specifies the proposed price.

Service Name:

quoteCartRepositoryV1

Sample Usage:

PUT <host>/rest/<store_code>/V1/negotiableQuote/6

Payload:

1
2
3
4
5
6
7
8
9
10
11
{
  "quote": {
      "id": 6,
      "extension_attributes": {
        "negotiable_quote": {
         "negotiated_price_type": 1,
          "negotiated_price_value": 5
        }
      }
    }
}

Add a new quote item to the negotiable quote

The buyer can add, update, or delete items from the quote under the following conditions:

  • The quote is in one of the following system states: created, processing_by_admin, or submitted_by_customer.
  • The quote doesn’t have a negotiated price.

Sample Usage:

POST <host>/rest/<store_code>/V1/carts/mine/items

Headers:

1
2
Content-Type application/json
Authorization Bearer <customer token>

Payload:

1
2
3
4
5
6
7
{
  "cartItem": {
    "sku": "24-MB01",
    "qty": 1,
    "quote_id": "7"
  }
}

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
    "item_id": 18,
    "sku": "24-MB01",
    "qty": 1,
    "name": "Joust Duffle Bag",
    "price": 34,
    "product_type": "simple",
    "quote_id": "7",
    "extension_attributes": {
        "negotiable_quote_item": {
            "item_id": 18,
            "original_price": 34,
            "original_tax_amount": 0,
            "original_discount_amount": 0
        }
    }
}

Change the quote expiration date

Sample Usage:

PUT <host>/rest/<store_code>/V1/negotiableQuote/6

Payload:

1
2
3
4
5
6
7
8
9
10
{
  "quote": {
      "id": 6,
      "extension_attributes": {
        "negotiable_quote": {
         "expiration_period": "2017-09-30"
        }
      }
    }
}

Response:

[]