curl --request POST \
--url https://api.vori.com/v1/store-product-placements \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"aisle": "<string>",
"store_id": "<string>",
"store_product_id": "<string>",
"is_primary": true,
"section": "<string>",
"shelf": 1
}
'import requests
url = "https://api.vori.com/v1/store-product-placements"
payload = {
"aisle": "<string>",
"store_id": "<string>",
"store_product_id": "<string>",
"is_primary": True,
"section": "<string>",
"shelf": 1
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
aisle: '<string>',
store_id: '<string>',
store_product_id: '<string>',
is_primary: true,
section: '<string>',
shelf: 1
})
};
fetch('https://api.vori.com/v1/store-product-placements', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vori.com/v1/store-product-placements",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'aisle' => '<string>',
'store_id' => '<string>',
'store_product_id' => '<string>',
'is_primary' => true,
'section' => '<string>',
'shelf' => 1
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vori.com/v1/store-product-placements"
payload := strings.NewReader("{\n \"aisle\": \"<string>\",\n \"store_id\": \"<string>\",\n \"store_product_id\": \"<string>\",\n \"is_primary\": true,\n \"section\": \"<string>\",\n \"shelf\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.vori.com/v1/store-product-placements")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"aisle\": \"<string>\",\n \"store_id\": \"<string>\",\n \"store_product_id\": \"<string>\",\n \"is_primary\": true,\n \"section\": \"<string>\",\n \"shelf\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vori.com/v1/store-product-placements")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"aisle\": \"<string>\",\n \"store_id\": \"<string>\",\n \"store_product_id\": \"<string>\",\n \"is_primary\": true,\n \"section\": \"<string>\",\n \"shelf\": 1\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"aisle": "<string>",
"banner_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by_user_id": "<string>",
"is_primary": true,
"section": "<string>",
"shelf": 123,
"store_id": "<string>",
"store_product_id": "<string>",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error_code": "insufficient_permissions",
"error_details": {
"action": "*",
"resource": "*"
}
}Create a shelf location
Adds a shelf location to a store product. The product’s first location becomes its primary location; pass is_primary to make a later one primary, which demotes the current primary.
curl --request POST \
--url https://api.vori.com/v1/store-product-placements \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"aisle": "<string>",
"store_id": "<string>",
"store_product_id": "<string>",
"is_primary": true,
"section": "<string>",
"shelf": 1
}
'import requests
url = "https://api.vori.com/v1/store-product-placements"
payload = {
"aisle": "<string>",
"store_id": "<string>",
"store_product_id": "<string>",
"is_primary": True,
"section": "<string>",
"shelf": 1
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
aisle: '<string>',
store_id: '<string>',
store_product_id: '<string>',
is_primary: true,
section: '<string>',
shelf: 1
})
};
fetch('https://api.vori.com/v1/store-product-placements', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vori.com/v1/store-product-placements",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'aisle' => '<string>',
'store_id' => '<string>',
'store_product_id' => '<string>',
'is_primary' => true,
'section' => '<string>',
'shelf' => 1
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vori.com/v1/store-product-placements"
payload := strings.NewReader("{\n \"aisle\": \"<string>\",\n \"store_id\": \"<string>\",\n \"store_product_id\": \"<string>\",\n \"is_primary\": true,\n \"section\": \"<string>\",\n \"shelf\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.vori.com/v1/store-product-placements")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"aisle\": \"<string>\",\n \"store_id\": \"<string>\",\n \"store_product_id\": \"<string>\",\n \"is_primary\": true,\n \"section\": \"<string>\",\n \"shelf\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vori.com/v1/store-product-placements")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"aisle\": \"<string>\",\n \"store_id\": \"<string>\",\n \"store_product_id\": \"<string>\",\n \"is_primary\": true,\n \"section\": \"<string>\",\n \"shelf\": 1\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"aisle": "<string>",
"banner_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by_user_id": "<string>",
"is_primary": true,
"section": "<string>",
"shelf": 123,
"store_id": "<string>",
"store_product_id": "<string>",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error_code": "insufficient_permissions",
"error_details": {
"action": "*",
"resource": "*"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
A sales floor location to record for a product at a store.
Aisle identifier (e.g. "1", "1A", "Produce").
120Store that owns this product.
^[0-9]+$Store product to place.
^[0-9]+$Whether this is the primary (home) location. The first shelf location created for a product becomes primary regardless.
Bay/section within the aisle (e.g. "Bay 3", "Left").
120Shelf level within the section.
x >= 0Response
A shelf location for a product: where it sits on the sales floor — its aisle, section, and shelf — and whether that is the primary location for the product.
Unique identifier for the record.
Aisle identifier (e.g. "1", "1A", "Produce").
Banner the shelf location belongs to.
When the record was created.
User who created this shelf location; null when an API client created it.
Whether this is the primary (home) location for the product.
Bay/section within the aisle (e.g. "Bay 3", "Left").
Shelf level within the section.
Store the shelf location belongs to.
Store product placed at this location.
When the record was last changed.
Was this page helpful?