Set a store's aisles in walking order
shopping.aisle.set
POST/api/v1/households/{household_id}/commands/shopping.aisle.set
- Command
- Rigel runs it
- Applies offline
Replaces a store's aisles with the list given, in walking order. An entry with an id keeps that aisle and the products placed in it; an entry without one makes a new aisle. Aisles the store has that aren't listed are removed with their placements. On an existing aisle, contents and photo_file_id left out keep what it had and null clears them. Use it after reading photos of the aisle signs.
Parameters#
| Field | Description |
|---|---|
household_idpathstringrequired | The household's ID. |
Idempotency-Keyheaderstringoptional | The command's ID. Reuse it when retrying the same command. |
Request body#
JSON, as application/json.
| Field | Description |
|---|---|
store_idstringrequired | A store ID, such as sto_01JC0000000000000000000000. |
aislesarray of objectsrequired | Every aisle, in walking order. Aisles the store has that aren't listed are removed, with their placements. |
aisles[].idstringoptional | An aisle the store already has, to keep it and its placed products. |
aisles[].labelstringrequired | The aisle or section's label: "Aisle 5", "Produce", "Deli", as written, 1–80 characters. |
aisles[].contentsstring or nulloptional | What the sign lists. Left out on an existing aisle, it keeps what it had; null clears it. |
aisles[].photo_file_idstring or nulloptional | A photo of the sign. Left out on an existing aisle, it keeps what it had; null clears it. |
Response#
200 The command was applied.
| Field | Description |
|---|---|
resultobjectrequired | What the command returned, such as the IDs it created. |
result.aisle_idsarray of stringsrequired | The store's aisles now, in walking order. |
versionintegerrequired | The household version after the command. |
Errors#
Every error has the same envelope: error.code, error.message, error.details, error.recovery and error.request_id.
| Status | Code | When |
|---|---|---|
400 | validation_failed | A field is missing, misspelled or out of range. details.fields lists each problem. |
401 | unauthenticated | The request has no valid session. |
404 | store_not_found | A store that isn't there. |
404 | aisle_not_found |
|
404 | file_not_found | A sign photo that isn't there. |
404 | not_found | The household doesn't exist, or you aren't a member of it. |
409 | idempotency_key_reused | The Idempotency-Key was already used for a different command. |
Examples#
These are real. Each scenario is one of the command's test cases, run on a household when this site was built, and the response is what the API returned.
New aisles get IDs derived from the command and their position as sort_order
curl -X POST 'https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set' \
-H "Cookie: rigel_session=$RIGEL_SESSION" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA' \
-d '{
"store_id": "sto_01JC000000000000000000000A",
"aisles": [
{
"label": "Produce",
"contents": "Fruit, vegetables"
},
{
"label": "Dairy"
}
]
}'const response = await fetch("https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Idempotency-Key": "cmd_01JC4N0000AAAAAAAAAAAAAAAA",
Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
},
body: JSON.stringify({
store_id: "sto_01JC000000000000000000000A",
aisles: [
{
label: "Produce",
contents: "Fruit, vegetables",
},
{
label: "Dairy",
},
],
}),
});
const data = await response.json();POST /api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>
Content-Type: application/json
Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA
{
"store_id": "sto_01JC000000000000000000000A",
"aisles": [
{
"label": "Produce",
"contents": "Fruit, vegetables"
},
{
"label": "Dairy"
}
]
}HTTP/1.1 200 OK
Content-Type: application/json
X-Request-Id: req_01K9D9S2R0MEC74GCR1JR6CYTF
{
"result": {
"aisle_ids": [
"ais_01JC4N0000MBGE5RJ6Q7V6V6T8",
"ais_01JC4N0000VGW1STJ6TGXRB7FY"
]
},
"version": 1
}Aisles passed with their id are kept and reordered, unlisted ones go, and left-out sign text stays
curl -X POST 'https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set' \
-H "Cookie: rigel_session=$RIGEL_SESSION" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA' \
-d '{
"store_id": "sto_01JC000000000000000000000A",
"aisles": [
{
"id": "ais_01JC000000000000000000000B",
"label": "Bakery"
},
{
"id": "ais_01JC000000000000000000000A",
"label": "Aisle 1",
"contents": null
}
]
}'const response = await fetch("https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Idempotency-Key": "cmd_01JC4N0000AAAAAAAAAAAAAAAA",
Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
},
body: JSON.stringify({
store_id: "sto_01JC000000000000000000000A",
aisles: [
{
id: "ais_01JC000000000000000000000B",
label: "Bakery",
},
{
id: "ais_01JC000000000000000000000A",
label: "Aisle 1",
contents: null,
},
],
}),
});
const data = await response.json();POST /api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>
Content-Type: application/json
Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA
{
"store_id": "sto_01JC000000000000000000000A",
"aisles": [
{
"id": "ais_01JC000000000000000000000B",
"label": "Bakery"
},
{
"id": "ais_01JC000000000000000000000A",
"label": "Aisle 1",
"contents": null
}
]
}HTTP/1.1 200 OK
Content-Type: application/json
X-Request-Id: req_01K9D9S2R04QJS9CNFD52MCH70
{
"result": {
"aisle_ids": [
"ais_01JC000000000000000000000B",
"ais_01JC000000000000000000000A"
]
},
"version": 1
}An empty list removes every aisle
curl -X POST 'https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set' \
-H "Cookie: rigel_session=$RIGEL_SESSION" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA' \
-d '{
"store_id": "sto_01JC000000000000000000000A",
"aisles": []
}'const response = await fetch("https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Idempotency-Key": "cmd_01JC4N0000AAAAAAAAAAAAAAAA",
Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
},
body: JSON.stringify({
store_id: "sto_01JC000000000000000000000A",
aisles: [],
}),
});
const data = await response.json();POST /api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>
Content-Type: application/json
Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA
{
"store_id": "sto_01JC000000000000000000000A",
"aisles": []
}HTTP/1.1 200 OK
Content-Type: application/json
X-Request-Id: req_01K9D9S2R031BSZMXRE4KWDVAJ
{
"result": {
"aisle_ids": []
},
"version": 1
}An unchanged aisle writes nothing
curl -X POST 'https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set' \
-H "Cookie: rigel_session=$RIGEL_SESSION" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA' \
-d '{
"store_id": "sto_01JC000000000000000000000A",
"aisles": [
{
"id": "ais_01JC000000000000000000000A",
"label": "Aisle 1"
}
]
}'const response = await fetch("https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Idempotency-Key": "cmd_01JC4N0000AAAAAAAAAAAAAAAA",
Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
},
body: JSON.stringify({
store_id: "sto_01JC000000000000000000000A",
aisles: [
{
id: "ais_01JC000000000000000000000A",
label: "Aisle 1",
},
],
}),
});
const data = await response.json();POST /api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>
Content-Type: application/json
Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA
{
"store_id": "sto_01JC000000000000000000000A",
"aisles": [
{
"id": "ais_01JC000000000000000000000A",
"label": "Aisle 1"
}
]
}HTTP/1.1 200 OK
Content-Type: application/json
X-Request-Id: req_01K9D9S2R0VPQWFB2S1FVV3MVH
{
"result": {
"aisle_ids": [
"ais_01JC000000000000000000000A"
]
},
"version": 1
}A sign photo that exists
curl -X POST 'https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set' \
-H "Cookie: rigel_session=$RIGEL_SESSION" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA' \
-d '{
"store_id": "sto_01JC000000000000000000000A",
"aisles": [
{
"label": "Produce",
"photo_file_id": "fil_01JC000000000000000000000A"
}
]
}'const response = await fetch("https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Idempotency-Key": "cmd_01JC4N0000AAAAAAAAAAAAAAAA",
Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
},
body: JSON.stringify({
store_id: "sto_01JC000000000000000000000A",
aisles: [
{
label: "Produce",
photo_file_id: "fil_01JC000000000000000000000A",
},
],
}),
});
const data = await response.json();POST /api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>
Content-Type: application/json
Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA
{
"store_id": "sto_01JC000000000000000000000A",
"aisles": [
{
"label": "Produce",
"photo_file_id": "fil_01JC000000000000000000000A"
}
]
}HTTP/1.1 200 OK
Content-Type: application/json
X-Request-Id: req_01K9D9S2R0G3KFQF7X1H3JW2K8
{
"result": {
"aisle_ids": [
"ais_01JC4N0000MBGE5RJ6Q7V6V6T8"
]
},
"version": 1
}A store that isn't there
curl -X POST 'https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set' \
-H "Cookie: rigel_session=$RIGEL_SESSION" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA' \
-d '{
"store_id": "sto_01JC000000000000000000000A",
"aisles": []
}'const response = await fetch("https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Idempotency-Key": "cmd_01JC4N0000AAAAAAAAAAAAAAAA",
Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
},
body: JSON.stringify({
store_id: "sto_01JC000000000000000000000A",
aisles: [],
}),
});
const data = await response.json();POST /api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>
Content-Type: application/json
Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA
{
"store_id": "sto_01JC000000000000000000000A",
"aisles": []
}HTTP/1.1 404 Not Found
Content-Type: application/json
X-Request-Id: req_01K9D9S2R057C2YXAVA859EXE0
{
"error": {
"code": "store_not_found",
"message": "That store isn't there any more. No changes were applied.",
"details": {
"store_id": "sto_01JC000000000000000000000A"
},
"recovery": "Read the current state, then send a command that fits it.",
"request_id": "req_01K9D9S2R057C2YXAVA859EXE0"
}
}An aisle id the store doesn't have
curl -X POST 'https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set' \
-H "Cookie: rigel_session=$RIGEL_SESSION" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA' \
-d '{
"store_id": "sto_01JC000000000000000000000A",
"aisles": [
{
"id": "ais_01JC000000000000000000000A",
"label": "Aisle 1"
}
]
}'const response = await fetch("https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Idempotency-Key": "cmd_01JC4N0000AAAAAAAAAAAAAAAA",
Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
},
body: JSON.stringify({
store_id: "sto_01JC000000000000000000000A",
aisles: [
{
id: "ais_01JC000000000000000000000A",
label: "Aisle 1",
},
],
}),
});
const data = await response.json();POST /api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>
Content-Type: application/json
Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA
{
"store_id": "sto_01JC000000000000000000000A",
"aisles": [
{
"id": "ais_01JC000000000000000000000A",
"label": "Aisle 1"
}
]
}HTTP/1.1 404 Not Found
Content-Type: application/json
X-Request-Id: req_01K9D9S2R0JG55A89GS5T9XBJQ
{
"error": {
"code": "aisle_not_found",
"message": "That aisle isn't there any more. No changes were applied.",
"details": {
"aisle_id": "ais_01JC000000000000000000000A"
},
"recovery": "Read the current state, then send a command that fits it.",
"request_id": "req_01K9D9S2R0JG55A89GS5T9XBJQ"
}
}An aisle id from another store
curl -X POST 'https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set' \
-H "Cookie: rigel_session=$RIGEL_SESSION" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA' \
-d '{
"store_id": "sto_01JC000000000000000000000A",
"aisles": [
{
"id": "ais_01JC000000000000000000000A",
"label": "Aisle 1"
}
]
}'const response = await fetch("https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Idempotency-Key": "cmd_01JC4N0000AAAAAAAAAAAAAAAA",
Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
},
body: JSON.stringify({
store_id: "sto_01JC000000000000000000000A",
aisles: [
{
id: "ais_01JC000000000000000000000A",
label: "Aisle 1",
},
],
}),
});
const data = await response.json();POST /api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>
Content-Type: application/json
Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA
{
"store_id": "sto_01JC000000000000000000000A",
"aisles": [
{
"id": "ais_01JC000000000000000000000A",
"label": "Aisle 1"
}
]
}HTTP/1.1 404 Not Found
Content-Type: application/json
X-Request-Id: req_01K9D9S2R0ZBY85JZEAYQE2F66
{
"error": {
"code": "aisle_not_found",
"message": "That aisle isn't there any more. No changes were applied.",
"details": {
"aisle_id": "ais_01JC000000000000000000000A"
},
"recovery": "Read the current state, then send a command that fits it.",
"request_id": "req_01K9D9S2R0ZBY85JZEAYQE2F66"
}
}The same aisle twice
curl -X POST 'https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set' \
-H "Cookie: rigel_session=$RIGEL_SESSION" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA' \
-d '{
"store_id": "sto_01JC000000000000000000000A",
"aisles": [
{
"id": "ais_01JC000000000000000000000A",
"label": "One"
},
{
"id": "ais_01JC000000000000000000000A",
"label": "Two"
}
]
}'const response = await fetch("https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Idempotency-Key": "cmd_01JC4N0000AAAAAAAAAAAAAAAA",
Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
},
body: JSON.stringify({
store_id: "sto_01JC000000000000000000000A",
aisles: [
{
id: "ais_01JC000000000000000000000A",
label: "One",
},
{
id: "ais_01JC000000000000000000000A",
label: "Two",
},
],
}),
});
const data = await response.json();POST /api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>
Content-Type: application/json
Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA
{
"store_id": "sto_01JC000000000000000000000A",
"aisles": [
{
"id": "ais_01JC000000000000000000000A",
"label": "One"
},
{
"id": "ais_01JC000000000000000000000A",
"label": "Two"
}
]
}HTTP/1.1 409 Conflict
Content-Type: application/json
X-Request-Id: req_01K9D9S2R00WXCE17SR4A67XH1
{
"error": {
"code": "validation_failed",
"message": "The same aisle is listed twice. No changes were applied.",
"details": {
"aisle_id": "ais_01JC000000000000000000000A"
},
"recovery": "Read the current state, then send a command that fits it.",
"request_id": "req_01K9D9S2R00WXCE17SR4A67XH1"
}
}A sign photo that isn't there
curl -X POST 'https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set' \
-H "Cookie: rigel_session=$RIGEL_SESSION" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA' \
-d '{
"store_id": "sto_01JC000000000000000000000A",
"aisles": [
{
"label": "Produce",
"photo_file_id": "fil_01JC000000000000000000000B"
}
]
}'const response = await fetch("https://rigel.house/api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Idempotency-Key": "cmd_01JC4N0000AAAAAAAAAAAAAAAA",
Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
},
body: JSON.stringify({
store_id: "sto_01JC000000000000000000000A",
aisles: [
{
label: "Produce",
photo_file_id: "fil_01JC000000000000000000000B",
},
],
}),
});
const data = await response.json();POST /api/v1/households/hh_01K9BKKP003AHRZ6DMV29GQY5C/commands/shopping.aisle.set HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>
Content-Type: application/json
Idempotency-Key: cmd_01JC4N0000AAAAAAAAAAAAAAAA
{
"store_id": "sto_01JC000000000000000000000A",
"aisles": [
{
"label": "Produce",
"photo_file_id": "fil_01JC000000000000000000000B"
}
]
}HTTP/1.1 404 Not Found
Content-Type: application/json
X-Request-Id: req_01K9D9S2R0KZFEVN27QGXHF962
{
"error": {
"code": "file_not_found",
"message": "That file isn't there any more. No changes were applied.",
"details": {
"file_id": "fil_01JC000000000000000000000B"
},
"recovery": "Read the current state, then send a command that fits it.",
"request_id": "req_01K9D9S2R0KZFEVN27QGXHF962"
}
}Set a store's aisles in walking order
Replaces the list. contents is what the sign says, which helps Rigel place products.
curl -X POST 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/commands/shopping.aisle.set' \
-H "Cookie: rigel_session=$RIGEL_SESSION" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: cmd_01M6V9CT70RWV8ED6D4BGAAFB8' \
-d '{
"store_id": "sto_01M6V9CT6QQBTTA6DBQXS60NCD",
"aisles": [
{
"label": "Produce",
"contents": "Fruit, vegetables, salad, herbs"
},
{
"label": "Aisle 1",
"contents": "Pasta, sauce, rice, canned beans, soup, broth"
},
{
"label": "Aisle 2",
"contents": "Baking, flour, sugar, oil, spices"
},
{
"label": "Aisle 3"
},
{
"label": "Dairy",
"contents": "Milk, eggs, butter, yogurt, cheese"
},
{
"label": "Frozen"
}
]
}'const response = await fetch("https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/commands/shopping.aisle.set", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Idempotency-Key": "cmd_01M6V9CT70RWV8ED6D4BGAAFB8",
Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
},
body: JSON.stringify({
store_id: "sto_01M6V9CT6QQBTTA6DBQXS60NCD",
aisles: [
{
label: "Produce",
contents: "Fruit, vegetables, salad, herbs",
},
{
label: "Aisle 1",
contents: "Pasta, sauce, rice, canned beans, soup, broth",
},
{
label: "Aisle 2",
contents: "Baking, flour, sugar, oil, spices",
},
{
label: "Aisle 3",
},
{
label: "Dairy",
contents: "Milk, eggs, butter, yogurt, cheese",
},
{
label: "Frozen",
},
],
}),
});
const data = await response.json();POST /api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/commands/shopping.aisle.set HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>
Content-Type: application/json
Idempotency-Key: cmd_01M6V9CT70RWV8ED6D4BGAAFB8
{
"store_id": "sto_01M6V9CT6QQBTTA6DBQXS60NCD",
"aisles": [
{
"label": "Produce",
"contents": "Fruit, vegetables, salad, herbs"
},
{
"label": "Aisle 1",
"contents": "Pasta, sauce, rice, canned beans, soup, broth"
},
{
"label": "Aisle 2",
"contents": "Baking, flour, sugar, oil, spices"
},
{
"label": "Aisle 3"
},
{
"label": "Dairy",
"contents": "Milk, eggs, butter, yogurt, cheese"
},
{
"label": "Frozen"
}
]
}HTTP/1.1 200 OK
Content-Type: application/json
X-Request-Id: req_01M6V9CT70HBF8816F1G27PE73
{
"result": {
"aisle_ids": [
"ais_01M6V9CT70YHEY2JQCG690V527",
"ais_01M6V9CT70D5FS0MQC395FBAYP",
"ais_01M6V9CT70GY51YCQCE4FWSMKK",
"ais_01M6V9CT70QB5HHFQCH5HEANWJ",
"ais_01M6V9CT70JNDJQ7QC41ERRZK6",
"ais_01M6V9CT70HPER9AQCQJ9A9WP6"
]
},
"version": 265
}For Rigel#
Rigel's tool for this command is shopping_aisle_set. Rigel runs this on its own, then says what it did. The agent guide has the rest.