> ## Documentation Index
> Fetch the complete documentation index at: https://developers.redo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# checkoutWidgetUpdate

> Change a checkout widget. Fields you leave out keep their values. `config`, when sent, replaces all of the widget's settings, and a widget's type can't change. A write that reaches shoppers right away fails with CHECKOUT_WIDGET_LIVE (409) unless `confirmLiveChange` is true. That applies to a widget that is global, is becoming global, or is assigned to an experience. A store can have one global widget per type; a second fails with CHECKOUT_WIDGET_GLOBAL_EXISTS (409). Turning `global` on fails with CHECKOUT_WIDGETS_UNAVAILABLE (409) while `availability.available` is false. An id from another account, or one that does not exist, is null. An invalid widget fails with INVALID_CHECKOUT_WIDGET (400).

**Required scopes:** [`checkout_write`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-checkout_write)

## Arguments

**input** `[CheckoutWidgetUpdateInput!](/docs/api-reference/v3/reference/checkout/checkout-widget-update-input)` *required*

The widget and the fields to change.

**fields**

**config** `[CheckoutWidgetConfigInput](/docs/api-reference/v3/reference/checkout/checkout-widget-config-input)`

The widget's complete settings. The member must match the widget's type.

**fields**

**contentBlock** `[CheckoutWidgetContentBlockConfigInput](/docs/api-reference/v3/reference/checkout/checkout-widget-content-block-config-input)`

A content block.

**failedDiscountRescue** `[CheckoutWidgetFailedDiscountRescueConfigInput](/docs/api-reference/v3/reference/checkout/checkout-widget-failed-discount-rescue-config-input)`

A failed discount rescue.

**fulfillmentCutoff** `[CheckoutWidgetFulfillmentCutoffConfigInput](/docs/api-reference/v3/reference/checkout/checkout-widget-fulfillment-cutoff-config-input)`

A fulfillment cutoff.

**imageBlock** `[CheckoutWidgetImageBlockConfigInput](/docs/api-reference/v3/reference/checkout/checkout-widget-image-block-config-input)`

An image block.

**lowProfileProductUpsell** `[CheckoutWidgetLowProfileProductUpsellConfigInput](/docs/api-reference/v3/reference/checkout/checkout-widget-low-profile-product-upsell-config-input)`

A low-profile product upsell.

**productReviews** `[CheckoutWidgetProductReviewsConfigInput](/docs/api-reference/v3/reference/checkout/checkout-widget-product-reviews-config-input)`

A product reviews widget.

**shippingOptionContent** `[CheckoutWidgetShippingOptionContentConfigInput](/docs/api-reference/v3/reference/checkout/checkout-widget-shipping-option-content-config-input)`

Shipping option content.

**shippingOptionImage** `[CheckoutWidgetShippingOptionImageConfigInput](/docs/api-reference/v3/reference/checkout/checkout-widget-shipping-option-image-config-input)`

A shipping option image.

**shippingOptionProductUpsell** `[CheckoutWidgetShippingOptionProductUpsellConfigInput](/docs/api-reference/v3/reference/checkout/checkout-widget-shipping-option-product-upsell-config-input)`

A shipping option upsell.

**thresholdUpsell** `[CheckoutWidgetThresholdUpsellConfigInput](/docs/api-reference/v3/reference/checkout/checkout-widget-threshold-upsell-config-input)`

A threshold upsell.

**confirmLiveChange** `Boolean`

Set to true to confirm a write that changes what shoppers see at checkout right away.

**global** `Boolean`

Show it in every checkout experience. A store can have one per type. Not for shipping option widgets.

**id** `ID!` *required*

The widget's id.

**name** `String`

Merchant-facing name.

**target** `String`

Where it renders.

## Returns

**checkoutWidgetUpdate** `[CheckoutWidget](/docs/api-reference/v3/reference/checkout/checkout-widget)`

A block a store shows at checkout. It reaches shoppers when `global` is true or an experience uses it.

**fields**

**assignedExperiences** `[\[CheckoutWidgetAssignedExperience!\]!](/docs/api-reference/v3/reference/checkout/checkout-widget-assigned-experience)` *required*

Checkout experiences that show this widget.

**fields**

**id** `ID!` *required*

The experience's id.

**name** `String!` *required*

The experience's name.

**config** `[CheckoutWidgetConfig!](/docs/api-reference/v3/reference/checkout/checkout-widget-config)` *required*

The widget's settings.

**createdAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the widget was created.

**global** `Boolean!` *required*

Whether it shows in every checkout experience. A store has at most one per type. Always false for shipping option widgets.

**id** `ID!` *required*

The widget's id.

**name** `String!` *required*

Merchant-facing name.

**target** `String!` *required*

Where it renders. For shipping option widgets, DETAILS\_RENDER\_AFTER or DETAILS\_RENDER\_EXPANDED. For others, a checkout block target such as INFORMATION1, or a dynamic target name.

**type** `[CheckoutWidgetType!](/docs/api-reference/v3/reference/checkout/checkout-widget-type)` *required*

What the widget does. It can't change.

**updatedAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the widget was last changed.

## Example

```graphql theme={null}
mutation {
  checkoutWidgetUpdate(input: { ... }) {
    createdAt
    global
    id
    name
    target
    type
    updatedAt
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.