Skip to content

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
application/json
{
  "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"
×
Copyright

This online publication is intellectual property of Voyado Lund AB. Its contents can be duplicated in part or whole, provided that a copyright label is visibly located on each copy and the copy is used in conjunction with the product described within this document.

All information found in these documents has been compiled with utmost attention to detail. However, this does not guarantee complete accuracy. Neither Voyado Lund AB nor the authors shall be held liable for possible errors or the consequences thereof.

Software and hardware descriptions cited in these documents might be registered trademarks. All trade names are subject to copyright restrictions and may be registered trademarks. Voyado Lund AB essentially adheres to the manufacturer’s spelling. Names of products and trademarks appearing in this document, with or without specific notation, are likewise subject to trademark and trade protection laws and may thus fall under copyright restrictions.

CLOSE