Update marketing settings
Configure abandoned-cart reminders and optional coupon incentives.
Coupon IDs are scoped to the current store. Reminder delays are expressed in hours. min_total_cents and max_total_cents use integer minor units.
PATCH merges supplied abandoned-cart fields with the existing configuration. To disable abandoned-cart emails while retaining the schedule and thresholds, send only abandoned_cart.enabled as false. PUT replaces the configuration; reminders are required when the replacement enables abandoned-cart emails.
Reminder slots must be contiguous and strictly increasing: a third reminder cannot be configured without a second reminder.
When both coupon_id and send_incentive_on_step are configured, the persisted incentive_mode is existing_coupon; otherwise it is none.
Provide your SellApp API key as a bearer token.
In: header
Header Parameters
Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://sell.app/api/v2/store/settings/marketing" \ -H "X-STORE: launch-lab" \ -H "Content-Type: application/json" \ -d '{ "abandoned_cart": { "enabled": false } }'{
"data": {
"id": 0,
"name": "string",
"slug": "string",
"visibility": "PUBLIC",
"timezone": "string",
"currency": "str",
"dark_mode": "light",
"status": {
"accessible": true,
"verified": true,
"locked": true
},
"analytics": {
"ga4_measurement_id": "string",
"meta_pixel_id": "string",
"tiktok_pixel_id": "string",
"ga4_api_secret_configured": true,
"meta_access_token_configured": true,
"tiktok_access_token_configured": true
},
"marketing": {
"abandoned_cart": {}
}
}
}{
"type": "invalid_request_error",
"code": "bad_request",
"message": "The request could not be understood.",
"status": 400,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#bad-request"
}{
"type": "authentication_error",
"code": "unauthenticated",
"message": "Unauthenticated.",
"status": 401,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}{
"type": "authorization_error",
"code": "forbidden",
"message": "This action is unauthorized.",
"status": 403,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#forbidden"
}{
"type": "validation_error",
"code": "validation_failed",
"message": "The selected product variant id is invalid.",
"status": 422,
"param": "product_variant_id",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#validation-failed",
"errors": {
"product_variant_id": [
"The selected product variant id is invalid."
]
}
}{
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too Many Attempts.",
"status": 429,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}{
"type": "api_error",
"code": "api_error",
"message": "Server Error",
"status": 500,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#api-error"
}Provide your SellApp API key as a bearer token.
In: header
Header Parameters
Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://sell.app/api/v2/store/settings/marketing" \ -H "X-STORE: launch-lab" \ -H "Content-Type: application/json" \ -d '{ "abandoned_cart": { "enabled": false } }'{
"data": {
"id": 1,
"name": "Launch Lab",
"slug": "launch-lab",
"visibility": "PUBLIC",
"timezone": "UTC",
"currency": "USD",
"dark_mode": "light",
"status": {
"accessible": true,
"verified": false,
"locked": false
},
"analytics": {
"ga4_measurement_id": null,
"meta_pixel_id": null,
"tiktok_pixel_id": null,
"ga4_api_secret_configured": false,
"meta_access_token_configured": false,
"tiktok_access_token_configured": false
},
"marketing": {
"abandoned_cart": {
"enabled": true,
"min_total_cents": null,
"max_total_cents": null,
"reminders": [],
"incentive_mode": "none",
"coupon_id": null,
"percent_off": null,
"send_incentive_on_step": null
}
}
}
}{
"type": "invalid_request_error",
"code": "bad_request",
"message": "The request could not be understood.",
"status": 400,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#bad-request"
}{
"type": "authentication_error",
"code": "unauthenticated",
"message": "Unauthenticated.",
"status": 401,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}{
"type": "authorization_error",
"code": "forbidden",
"message": "This action is unauthorized.",
"status": 403,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#forbidden"
}{
"type": "validation_error",
"code": "validation_failed",
"message": "The selected product variant id is invalid.",
"status": 422,
"param": "product_variant_id",
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#validation-failed",
"errors": {
"product_variant_id": [
"The selected product variant id is invalid."
]
}
}{
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too Many Attempts.",
"status": 429,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}{
"type": "api_error",
"code": "api_error",
"message": "Server Error",
"status": 500,
"param": null,
"request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
"docs_url": "https://sell.app/docs/api/errors#api-error"
}