Skip to content

Change a marketing preference

PUT
/storefront/sites/{host}/account/marketing
curl --request PUT \
--url https://example.com/storefront/sites/northgate.shop.getbottle.app/account/marketing \
--header 'Content-Type: application/json' \
--data '{ "customerId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "channel": "email", "granted": true }'

Deliberately without a staff session: a shopper on the business’s own shop. Turns one channel on or off for one of the customers this account speaks for; any other customer is 403. Written to the customer’s consent history as shop_account, with the words beside the switch. From the shop’s own page only (its Origin and a JSON body), signed in.

host
required
string

Example

northgate.shop.getbottle.app
Media typeapplication/json
object
customerId
required

UUID v7

string format: uuid

Example

019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f
channel
required
string
Allowed values: email sms phone post
granted
required
boolean

The preferences

Media typeapplication/json
object
customers
required
Array<object>
object
customerId
required

UUID v7

string format: uuid
name
required
string
channels
required
Array<object>
object
channel
required
string
Allowed values: email sms phone post
granted
required
boolean

Example

{
"customers": [
{
"customerId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"channels": [
{
"channel": "email"
}
]
}
]
}

Refused: the message says why

Media typeapplication/json
object
error
required
string
message
required
string

Example

{
"error": "not_found",
"message": "Customer not found"
}

Not signed in

Media typeapplication/json
object
error
required
string
message
required
string

Example

{
"error": "not_found",
"message": "Customer not found"
}

Not from the shop itself, or the email is not confirmed yet

Media typeapplication/json
object
error
required
string
message
required
string

Example

{
"error": "not_found",
"message": "Customer not found"
}

Not a shop. No body.

A real shop not selling now (shop_closed)

Media typeapplication/json
object
error
required
string
message
required
string

Example

{
"error": "not_found",
"message": "Customer not found"
}

Validation failed

Media typeapplication/json
object
error
required
string
Allowed values: validation
message
required
string
issues
required
Array<object>
object
path
required
string
message
required
string

Example

{
"error": "validation",
"issues": [
{
"path": "email",
"message": "Invalid email"
}
]
}

Too many tries

Media typeapplication/json
object
error
required
string
message
required
string

Example

{
"error": "not_found",
"message": "Customer not found"
}