Pages¶
https://{cluster-id}.api.esales.apptus.cloud/api/admin/v4/import/pages
POST¶
An import of pages to specify categories and landing pages. See the guide for more details.
Request¶
Header parameters¶
Name | Description | Example |
---|---|---|
Api-Key Required | Api-key that was supplied during on-boarding | pkA123456789AB1BE.. |
Accept-Encoding | Allows responses to be compressed using Gzip. | gzip |
Content-Encoding | Defines which encoding was used to compress the data. | gzip |
Content-Type | application/json | application/json |
Query parameters¶
Name | Description | Example |
---|---|---|
name | A name to identify the import in logs |
Supported Content-Type¶
application/json
Request body¶
Example
{
"market" : "se",
"type" : "FULL",
"addOrUpdate" : [ {
"id" : "/women/shoes",
"customData" : {
"en-GB" : {
"preamble" : "A carefully curated selection of products...",
"bannerImage" : "/assets/banners/sale_01.jpg"
}
},
"headings" : {
"en-GB" : "Shoes"
},
"paths" : {
"en-GB" : "/women/shoes"
},
"primaryList" : {
"blocked" : [ "<PRODUCT_KEY_FROM_YOUR_FEED>" ],
"facetsOverride" : {
"enabled" : true,
"facets" : [ {
"attribute" : "brand",
"sortOrder" : "RELEVANCE",
"unit" : "cm",
"visualization" : "VALUES"
} ]
},
"keywords" : {
"additional" : {
"en-GB" : [ "holiday", "vacation" ]
},
"enabled" : true,
"headingAsKeyword" : true
},
"pageSliceInfo" : {
"inherit" : false,
"slices" : [ {
"productSetId" : "<PRODUCT_SET_ID_FROM_APP>",
"pinnedProducts" : [ "<PRODUCT_KEY_1>", "<PRODUCT_KEY_2>" ]
} ]
},
"pinned" : [ "<PRODUCT_KEY_FROM_YOUR_FEED>" ],
"restrictChildRules" : false,
"rules" : "rule incl product_key { \"ABC123\" \"DEF456\" \"GHJ789\" } rule incl custom.material { \"leather\" } excl price [ -infinity, 100 ] rule incl newness 10d rule incl brand { \"Birkenstock\" } excl custom.isActive { \"false\" } ",
"sortOrderOverride" : {
"enabled" : true,
"sortOrders" : [ "PRICE_DECREASING" ]
}
},
"recLists" : [ {
"id" : "PDP-1",
"algorithm" : "TOP_PRODUCTS",
"blocked" : [ "<PRODUCT_KEY_FROM_YOUR_FEED>" ],
"limit" : 8,
"pinned" : [ "<PRODUCT_KEY_FROM_YOUR_FEED>" ],
"rules" : "rule incl product_key { \"ABC123\" \"DEF456\" \"GHJ789\" } rule incl custom.material { \"leather\" } excl price [ -infinity, 100 ] rule incl newness 10d rule incl brand { \"Birkenstock\" } excl custom.isActive { \"false\" } "
} ]
} ],
"previewOnly" : true,
"remove" : [ "/remove/me" ]
}
Schema
PageContainer¶
Name | Type | Description | Example |
---|---|---|---|
market Required | string | The market identifier to add pages to. Must match the corresponding market identifier in the data feed. Min length: 1 . Max length: 20 . | "se" |
type Required | string | Type of import. Partial amends to the existing page collection, while full replaces the existing pages. Supported values: FULL , PARTIAL . | "FULL" |
addOrUpdate | Page[] | Pages to add or update. At most 3000 pages can be imported per market. | |
previewOnly | boolean | If true, the imported pages will only be pushed to a preview state to allow for testing before publishing the changes manually or through another import. Preview imports must use the PARTIAL type and can only contain updates or additions. They may not remove pages Default: false . | |
remove | string[] | Pages to remove, based on ids. | "/remove/me" |
curl -i \
-X POST \
-H 'Api-Key: pkA123456789AB1BE..' \
-H 'Accept-Encoding: gzip' \
-H 'Content-Encoding: gzip' \
-H 'Content-Type: application/json' \
"https://{cluster-id}.api.esales.apptus.cloud/api/admin/v4/import/pages?name=name" \
-T request-body.file.gz
Response¶
Response codes¶
Status | Description |
---|---|
204 | The import file was valid. |
400 | The import was deemed dangerous according to Elevate. For more information, see Force imports. |
403 | Incorrect cluster credentials. |
404 | Cluster not found. |
409 | An import is currently in progress. |
500 | Server error such as cluster unavailable or busy. If 5xx errors persist, contact support and attach any information found in the response body. |
Schemas¶
Inner schemas
FacetSetting¶
Facet settings can be used to manually specify the facets of a primaryList on a page.
Name | Type | Description | Example |
---|---|---|---|
attribute Required | string | The name of the attribute, custom attributes should be prefixed with custom, e.g. brand and custom.attribute. | "brand" |
sortOrder | string | The sort order for the values of a facet. Certain attributes like, newness, does not require a sort order. Supported values: RELEVANCE , ALPHABETIC , NATURAL . | "RELEVANCE" |
unit | string | The unit for the values of a facet. Only applicable for attributes with units. | "cm" |
visualization | string | The visualization of a facet. Only applicable for custom typed number attributes. Supported values: RANGE , VALUES . | "VALUES" |
FacetsOverride¶
Facets override can be used to define which facets are going to be shown on a page. Optional: if not included the page will keep its current (or default) settings.
Name | Type | Description | Example |
---|---|---|---|
enabled | boolean | Specify if the override should be used or not. True by default | true |
facets | FacetSetting[] | The selected facets. |
Keywords¶
Keywords can be used to increase the findability of products originating in the page. Optional: if not included the page will keep its current (or default) settings.
Name | Type | Description | Example |
---|---|---|---|
additional | <string, string[]> | Specify per locale additional keywords to be used for the products on the page. | {"en-GB":["holiday","vacation"]} |
enabled | boolean | Specify if the override should be used or not. True by default. | true |
headingAsKeyword | boolean | Specify if the heading of primaryList should be used as a keyword. | true |
Page¶
Landing or category page to create.
Name | Type | Description | Example |
---|---|---|---|
id Required | string | Id of page, if a page with the same id already exists it'll be amended to unless it's a full import. Ids can consist of up to 200 characters and should be limited to alphanumeric characters, / and - Min length: 1 . Max length: 200 . | "/women/shoes" |
customData | <string, object> | A map of locales to extra custom data fields. The key-value mapping for a chosen locale will be returned in the result of landing-page requests. The key order is not guaranteed to be the same. Limited to 3000 characters and 200 keys per locale. Allowed characters for keys are alphanumerical, '-' and '_' | {"en-GB":{"preamble":"A carefully curated selection of products...","bannerImage":"/assets/banners/sale_01.jpg"}} |
headings | <string, string> | A map of locales to the localised heading, normally the name of the navigation node or category. Headings can have at most 200 characters. | {"en-GB":"Shoes"} |
paths | <string, string> | A map of locales to the localised page path. If a page with the same path or id already exists it'll be amended to unless it's a full import. | {"en-GB":"/women/shoes"} |
primaryList | PagePrimaryList | Settings for the primary list on a landing or category page. | |
recLists | PageRecList[] | Recommendation lists to include. Be aware that having many lists with complex rules/algorithms on a page may affect response times. Ids are limited to alphanumeric characters, _ and -. Max is 10 |
PagePrimaryList¶
Settings for the primaryList on a landing or category page.
Name | Type | Description | Example |
---|---|---|---|
blocked | string[] | The products to be excluded from the list. Optional: if not included the page will keep its current (or default) settings. | "<PRODUCT_KEY_FROM_YOUR_FEED>" |
facetsOverride | FacetsOverride | Used to override facet settings. If not included the page will keep its current (or default) settings. | |
keywords | Keywords | Search keywords relating to this page. If not included the page will keep its current (or default) settings. | |
pageSliceInfo | SliceInfo | Slices used on this page. If not included the page will keep its current (or default) settings. | |
pinned | string[] | The products to be pinned at the start of the list. Optional: if not included the page will keep its current (or default) settings. Max is 100 pinned keys. Min items: 0 . Max items: 100 . | "<PRODUCT_KEY_FROM_YOUR_FEED>" |
restrictChildRules | boolean | Specify if child pages should inherit product rules. Only applicable if page id is a path, e.g. /women, and other pages have ids' like /women/shoes.The products on /women/shoes page would already be limited to the rules specified on /women. | false |
rules | string | A logical expression used by Voyado Elevate 4 to restrict the data set to a Product Selection. The rules can go from easy, such as to only include a product by its key or items that are in stock, to more complex expressions with multiple attributes for products at the same time. If no rules are provided, the entire data set will be used. Please note that when used in Landing Pages, the "Handpicked" rule must be the first rule, and must contain a set of product keys as its only condition. At most 100 product keys can be handpicked in a single request, and at most 200 attribute values can be supplied for each attribute. | "rule incl product_key { "ABC123" "DEF456" "GHJ789" } rule incl custom.material { "leather" } excl price [ -infinity, 100 ] rule incl newness 10d rule incl brand { "Birkenstock" } excl custom.isActive { "false" } " |
sortOrderOverride | SortOrderOverride | Used to override sort order settings. If not included the page will keep its current (or default) settings. |
PageRecList¶
Recommendation list of a page.
Name | Type | Description | Example |
---|---|---|---|
id Required | string | Per page unique identifier of a list. Min length: 1 . Max length: 20 . Pattern: [a-zA-Z0-9_-]+ . | "PDP-1" |
algorithm | string | The recommendation algorithm to use. See here for more details. Supported values: TOP_PRODUCTS , PERSONAL , NEWEST_PRODUCTS , FAVORITES , RECENTLY_VIEWED . | "TOP_PRODUCTS" |
blocked | string[] | The products to be excluded from the list. | "<PRODUCT_KEY_FROM_YOUR_FEED>" |
limit | integer | The maximum number of product groups to receive on a recommendation list. Min: 1 . Max: 100 . | 8 |
pinned | string[] | The products to be pinned at the start of the list. Min items: 0 . Max items: 100 . | "<PRODUCT_KEY_FROM_YOUR_FEED>" |
rules | string | A logical expression used by Voyado Elevate 4 to restrict the data set to a Product Selection. The rules can go from easy, such as to only include a product by its key or items that are in stock, to more complex expressions with multiple attributes for products at the same time. If no rules are provided, the entire data set will be used. Please note that when used in Landing Pages, the "Handpicked" rule must be the first rule, and must contain a set of product keys as its only condition. At most 100 product keys can be handpicked in a single request, and at most 200 attribute values can be supplied for each attribute. | "rule incl product_key { "ABC123" "DEF456" "GHJ789" } rule incl custom.material { "leather" } excl price [ -infinity, 100 ] rule incl newness 10d rule incl brand { "Birkenstock" } excl custom.isActive { "false" } " |
PageSlice¶
Name | Type | Description | Example |
---|---|---|---|
productSetId Required | string | The product set id of the slice. Can be found in the app under the Experience tab Min length: 1 . | "<PRODUCT_SET_ID_FROM_APP>" |
pinnedProducts | string[] | Pinned product keys in the specified slice. At most 50 products can be pinned. Min items: 0 . Max items: 50 . | ["<PRODUCT_KEY_1>","<PRODUCT_KEY_2>"] |
SliceInfo¶
Slices can be used to influence the order of products in the primary list. For more information about slices, see Slices
Name | Type | Description | Example |
---|---|---|---|
inherit | boolean | Specify if child pages should inherit slice settings. Only applicable if page ID is a path, e.g. /women and other pages have IDs like /women/shoes. Default: true . | false |
slices | PageSlice[] | The slices used on the page. Min items: 0 . Max items: 100 . |
SortOrderOverride¶
The sort order override can be used to select which sort orders will be available to a primaryLists on page. Optional: if not included the page will keep its current (or default) settings.
Name | Type | Description | Example |
---|---|---|---|
enabled | boolean | Specify if the override should be used or not. True by default. | true |
sortOrders | string[] | The selected sort orders for the primaryList. Min items: 1 . Max items: 2147483647 . | "PRICE_DECREASING" |