# Update a Wholesale Variation

This API allows you to update a wholesale variation

{% tabs %}
{% tab title="Request" %}

| Method | Endpoint                                                                 |
| ------ | ------------------------------------------------------------------------ |
| PUT    | /wp-json/wholesale/v1/products/{variable\_id}/variations/{variation\_id} |

| Path parameters | Required | Type | Description       |
| --------------- | -------- | ---- | ----------------- |
| variable\_id    | yes      | int  | The variable ID.  |
| variation\_id   | yes      | int  | The variation ID. |

| Body Parameters                              | Required | Type  | Description                                                      |
| -------------------------------------------- | -------- | ----- | ---------------------------------------------------------------- |
| wholesale\_price                             | yes      | array | Wholesale prices for each wholesale role.                        |
| wholesale\_visibility\_filter                | no       | array | The wholesale role keys that allowed to see the product.         |
| wholesale\_minimum\_order\_quantity          | no       | array | The "Wholesale Minimum Order Quantity" for each role             |
| wholesale\_order\_quantity\_step             | no       | array | The "Wholesale Order Quantity Step" for each                     |
| wholesale\_quantity\_discount\_rule\_mapping | no       | array | The rules for "Product Quantity Based Wholesale Pricing" option. |

####

#### Extra Properties for wholesale\_quantity\_discount\_rule\_mapping

<table><thead><tr><th>Properties</th><th width="194.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td>wholesale_role</td><td>String</td><td>The wholesale role key</td></tr><tr><td>start_qty</td><td>Number</td><td>The min quantity of the quantity range in order to trigger the wholesale discount.</td></tr><tr><td>end_qty</td><td>Number</td><td>The max quantity of the quantity range in order to trigger the wholesale discount.</td></tr><tr><td>price_type</td><td>String</td><td>Either percent-price or fixed-price</td></tr><tr><td>wholesale_price</td><td>Number</td><td>The wholesale price/discount.</td></tr></tbody></table>
{% endtab %}

{% tab title="Request Example" %}

#### Postman

```javascript
PUT: /wp-json/wholesale/v1/products/{variable_id}/variations/{variation_id}

{
    "regular_price": "29.00",
    "attributes": [
        {
            "id": 1,
            "name": "Color",
            "option": "Red"
        }
    ],
    "wholesale_price": {
        "wholesale_customer": "12",
        "sample_role": "3"
    },
    "wholesale_visibility_filter": "wholesale_customer",
    "wholesale_minimum_order_quantity": {
        "wholesale_customer": "2",
        "sample_role": "3"
    },
    "wholesale_order_quantity_step": {
        "wholesale_customer": "6",
        "sample_role": "7"
    },
    "wholesale_quantity_discount_rule_mapping": [
        {
            "wholesale_role": "wholesale_customer",
            "start_qty": "11",
            "end_qty": "20",
            "price_type": "percent-price",
            "wholesale_price": "20"
        }
    ]
}
```

{% endtab %}

{% tab title="Response Example" %}

#### Status: 200 OK

Updating a wholesale product

```
PUT: /wp-json/wholesale/v1/products/{variable_id}/variations/{variation_id}

JSON Body:
{
    "regular_price": "29.00",
    "attributes": [
        {
            "id": 1,
            "name": "Color",
            "option": "Red"
        }
    ],
    "wholesale_price": {
        "wholesale_customer": "12",
        "sample_role": "3"
    },
    "wholesale_visibility_filter": "wholesale_customer",
    "wholesale_minimum_order_quantity": {
        "wholesale_customer": "2",
        "sample_role": "3"
    },
    "wholesale_order_quantity_step": {
        "wholesale_customer": "6",
        "sample_role": "7"
    },
    "wholesale_quantity_discount_rule_mapping": [
        {
            "wholesale_role": "wholesale_customer",
            "start_qty": "11",
            "end_qty": "20",
            "price_type": "percent-price",
            "wholesale_price": "20"
        }
    ]
}

Response:
{
    "id": 7082,
    "date_created": "2021-10-21T03:54:57",
    "date_created_gmt": "2021-10-21T03:54:57",
    "date_modified": "2021-10-21T04:07:11",
    "date_modified_gmt": "2021-10-21T04:07:11",
    "description": "",
    "permalink": "https://example.com/product/variable-test/?attribute_pa_color=red",
    "sku": "",
    "price": "29.00",
    "regular_price": "29.00",
    "sale_price": "",
    "date_on_sale_from": null,
    "date_on_sale_from_gmt": null,
    "date_on_sale_to": null,
    "date_on_sale_to_gmt": null,
    "on_sale": false,
    "status": "publish",
    "purchasable": true,
    "virtual": false,
    "downloadable": false,
    "downloads": [],
    "download_limit": -1,
    "download_expiry": -1,
    "tax_status": "taxable",
    "tax_class": "",
    "manage_stock": false,
    "stock_quantity": null,
    "stock_status": "instock",
    "backorders": "no",
    "backorders_allowed": false,
    "backordered": false,
    "low_stock_amount": null,
    "weight": "",
    "dimensions": {
        "length": "",
        "width": "",
        "height": ""
    },
    "shipping_class": "",
    "shipping_class_id": 0,
    "image": null,
    "attributes": [
        {
            "id": 1,
            "name": "Color",
            "option": "Red"
        }
    ],
    "menu_order": 0,
    "wholesale_data": {
        "wholesale_price": {
            "wholesale_customer": "12"
        },
        "wholesale_minimum_order_quantity": {
            "wholesale_customer": "2"
        },
        "wholesale_order_quantity_step": {
            "wholesale_customer": "6"
        },
        "wwpp_product_wholesale_visibility_filter": [
            "wholesale_customer"
        ],
        "wwpp_enable_quantity_discount_rule": "yes",
        "wwpp_quantity_discount_rule_mapping": {
            "desc": "Quantity based discounts available based on how many items are in your cart.",
            "mapping": [
                {
                    "wholesale_role": "WholesaleBronze",
                    "start_qty": "22",
                    "end_qty": "33",
                    "wholesale_discount": "12"
                },
                {
                    "wholesale_role": "wholesale_customer",
                    "start_qty": "22",
                    "end_qty": "33",
                    "wholesale_discount": "7"
                }
            ]
        }
    }
}
```

####

#### Status: 400 Bad Request

The wholesale role key and wholesale price are invalid.

```javascript
GET: /wp-json/wholesale/v1/products/{variation_id}/variations/{variation_id}?wholesale_role=invalid_role

JSON Body:
{
    "regular_price": "19.00",
    "attributes": [
        {
            "id": 1,
            "name": "Color",
            "option": "Black"
        }
    ],
    "wholesale_price": {
        "wholesale_role_key_invalid": "wholesale_price_invalid"
    }
}

Response:
{
    "code": "wholesale_rest_variation_cannot_create",
    "message": "Unable to create. Invalid wholesale price.",
    "data": {
        "status": 400,
        "invalid_roles": [
            "wholesale_role_key_invalid"
        ],
        "invalid_wholesale_price": {
            "wholesale_role_key_invalid": "wholesale_price_invalid"
        }
    }
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://rymera.gitbook.io/wholesale-suite-api/wholesale-v1-wwpp/variations/update-a-wholesale-variation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
