Untitled
unknown
plain_text
3 years ago
26 kB
4
Indexable
{
"sectionSelector": "body",
"variantsExtractor": {
"oneVariantPerUrl": true,
"JSONUrlOptions": {
"pathname": {},
"useRawUrl": false
},
"strategy": "shopify",
"perVariantFns": []
},
"postProcessFns": [
{
"fnName": "assureMainDescription",
"fnParams": {
"headerKeys": [
"Description"
]
}
},
{
"fnName": "generateDescriptionFromMainDescription",
"fnParams": {}
},
{
"fnName": "extractBulletsFromAdditionalSections",
"fnParams": {
"maxLength": 1000,
"disabled": false
}
},
{
"fnName": "extractVideosFromAdditionalSections",
"fnParams": {
"disabled": false
}
},
{
"fnName": "extractKeyValuePairsFromAdditionalSections",
"fnParams": {
"filterKeys": [
"https",
"Best For",
"Washability"
],
"maxLength": 1000
}
},
{
"fnName": "populateSizeAndColor",
"fnParams": {
"colorKeys": [
"color",
"Color"
],
"sizeKeys": [
"Size",
"size",
"Size (Men's)",
"TITLE"
]
}
},
{
"fnName": "deduplicateVideos",
"fnParams": {}
},
{
"fnName": "normalizeProduct",
"fnParams": {}
},
{
"fnParams": {
"fnCode": async product => {
let filtersForImgs = ['icon', 'pantone', 'oil_womens_addeda2b', 'width', 'files/pomade-2', 'pop-up', 'hq-rm', 'swatch', 'no_shine', 'wavy_mens']
product.images = product.images.filter(img => {
let keepImg = true
filtersForImgs.forEach(filter => {
if(img.includes(filter) || img.includes('+180w')){
keepImg = false
}
})
return keepImg
})
},
"disabled": true
},
"fnName": "customFunction"
},
{
"fnParams": {},
"fnName": "deduplicateImages"
}
],
"preProcessFns": [],
"navigationOptions": {
"waitUntil": "networkidle0",
"disableWaitUntil": false,
"useJquery": true,
"clearExtraHeaders": false,
"disableWebSecurity": false,
"timeout": 300000
},
"postNavigateFns": [
{
"fnName": "checkNotFound",
"fnParams": {
"strategy": "statusCode",
"statusCodes": [
404
]
}
},
{
"fnParams": {
"time": 2000
},
"fnName": "waitForTimeout"
},
{
"fnParams": {},
"fnName": "autoScroll"
},
{
"fnParams": {
"time": 4000
},
"fnName": "waitForTimeout"
},
{
"fnParams": {
"selector": "#FeatureRowImage-popup"
},
"fnName": "deleteElements"
},
{
"fnParams": {
"selector": "[class=\"product-single__description rte\"][style=\"display: none;\"]"
},
"fnName": "deleteElements"
},
{
"fnParams": {
"selector": ".build-regimen-products"
},
"fnName": "deleteElements"
},
{
"fnParams": {
"selector": "#FeatureRowImage-3"
},
"fnName": "deleteElements"
}
],
"propertiesExtractors": {
"url": [
{
"extractorType": "text",
"extractorParams": {
"strategy": "pageData",
"path": "url"
},
"validation": {
"mandatory": false
}
}
],
"id": [
{
"extractorType": "text",
"extractorParams": {
"strategy": "shopifyText",
"path": "variantData.id"
},
"validation": {
"mandatory": true
}
}
],
"itemGroupId": [
{
"extractorType": "text",
"extractorParams": {
"strategy": "shopifyText",
"path": "id"
},
"validation": {
"mandatory": false
}
}
],
"sku": [
{
"extractorType": "text",
"extractorParams": {
"strategy": "shopifyText",
"path": "variantData.sku"
},
"validation": {
"mandatory": false
}
}
],
"realPrice": [
{
"extractorType": "number",
"extractorParams": {
"strategy": "shopifyNumber",
"path": "calculatedData.realPrice"
},
"validation": {
"mandatory": false
}
}
],
"higherPrice": [
{
"extractorType": "number",
"extractorParams": {
"strategy": "shopifyNumber",
"path": "calculatedData.higherPrice"
},
"validation": {
"mandatory": false
}
}
],
"currency": [
{
"extractorType": "staticValue",
"extractorParams": {
"strategy": "default",
"value": "USD"
},
"validation": {
"mandatory": false
}
}
],
"availability": [
{
"extractorType": "boolean",
"extractorParams": {
"strategy": "shopifyBoolean",
"path": "variantData.available"
},
"validation": {
"mandatory": false
}
}
],
"video": [
{
"extractorType": "videos",
"extractorParams": {
"strategy": "shopify",
"deduplicate": false,
"normalize": false,
"removeQueryStrings": false,
"includeVideosWithoutExtension": true,
"removeRegexValidation": false,
"includeFormatsInRegex": [
"mp4"
]
},
"validation": {
"mandatory": false
}
}
],
"image": [
{
"extractorType": "images",
"extractorParams": {
"strategy": "selectorAttribute",
"placement": "main",
"deduplicate": false,
"normalize": false,
"removeQueryStrings": false,
"removeRegexValidation": false,
"selector": " .grid.product-single:nth(0) .grid__item .product-single__media-wrapper:not(.hide) img",
"attribute": "currentSrc",
"normalizeShopify": false,
"includeImagesWithoutExtension": false,
"includeFormatsInRegex": [
"jpg",
"jpeg",
"png",
"gif",
"webp"
]
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "images",
"extractorParams": {
"strategy": "selectorAttribute",
"postProcess": [
{
"fnParams": {
"match": "_110x110@2x",
"replaceAll": true,
"ignoreCase": true,
"disabled": false
},
"fnName": "regexMatchReplace"
}
],
"placement": "main",
"deduplicate": false,
"normalize": true,
"removeQueryStrings": true,
"removeRegexValidation": true,
"selector": ".main-product .thumbnails-wrapper .product-single__thumbnail img ",
"attribute": "currentSrc",
"normalizeShopify": false,
"includeImagesWithoutExtension": false,
"includeFormatsInRegex": [
"jpg",
"jpeg",
"png",
"gif",
"webp"
]
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "images",
"extractorParams": {
"strategy": "selectorAttribute",
"postProcess": [
{
"fnParams": {
"match": "_([0-9]+)x\\.",
"replace": ".",
"replaceAll": true,
"ignoreCase": true
},
"fnName": "regexMatchReplace"
}
],
"placement": "main",
"deduplicate": true,
"normalize": true,
"removeQueryStrings": true,
"removeRegexValidation": false,
"selector": " .grid.product-single:nth(0) .grid__item .product-single__media-wrapper img",
"attribute": "currentSrc",
"normalizeShopify": false,
"includeImagesWithoutExtension": false,
"includeFormatsInRegex": [
"jpg",
"jpeg",
"png",
"gif",
"webp"
]
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "images",
"extractorParams": {
"strategy": "imgElements",
"postProcess": [],
"placement": "secondary",
"deduplicate": true,
"normalize": true,
"removeQueryStrings": false,
"removeRegexValidation": false,
"baseElementSelector": ".feature-row-image-w-text",
"imgElementsSelector": ".feature-row-image-w-text img:not([alt*=\"Tip:\"]):not([alt*=\"logo\"]):not(.logo)img:not([alt*=\"Tip:\"]):not([alt*=\"logo\"]):not(.logo)",
"imgAttributes": [
"currentSrc",
"src"
],
"filterHidden": true,
"normalizeShopify": true,
"includeImagesWithoutExtension": false,
"includeFormatsInRegex": [
"jpg",
"jpeg",
"png",
"gif",
"webp"
]
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "images",
"extractorParams": {
"strategy": "imgElements",
"postProcess": [],
"placement": "secondary",
"deduplicate": true,
"normalize": true,
"removeQueryStrings": false,
"removeRegexValidation": false,
"baseElementSelector": ".product-feature-row-image-w-list",
"imgElementsSelector": ".product-feature-row-image-w-list img:not([alt*=\"Tip:\"]):not([alt*=\"logo\"]):not(.logo)img:not([alt*=\"Tip:\"]):not([alt*=\"logo\"]):not(.logo)",
"imgAttributes": [
"currentSrc",
"src"
],
"filterHidden": true,
"normalizeShopify": true,
"includeImagesWithoutExtension": false,
"includeFormatsInRegex": [
"jpg",
"jpeg",
"png",
"gif",
"webp"
]
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "images",
"extractorParams": {
"strategy": "imgElements",
"postProcess": [],
"placement": "secondary",
"deduplicate": true,
"normalize": true,
"removeQueryStrings": false,
"removeRegexValidation": false,
"imgElementsSelector": "img[id*=FeatureRowImage]:not([alt*=featuring])",
"imgAttributes": [
"currentSrc",
"src"
],
"filterHidden": true,
"normalizeShopify": false,
"includeImagesWithoutExtension": false,
"includeFormatsInRegex": [
"jpg",
"jpeg",
"png",
"gif",
"webp"
]
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "images",
"extractorParams": {
"strategy": "selectorAttribute",
"placement": "secondary",
"deduplicate": false,
"normalize": true,
"removeQueryStrings": false,
"removeRegexValidation": false,
"selector": "#shopify-section-kit-includes img",
"attribute": "src",
"normalizeShopify": false,
"includeImagesWithoutExtension": false,
"includeFormatsInRegex": [
"jpg",
"jpeg",
"png",
"gif",
"webp"
]
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "images",
"extractorParams": {
"strategy": "selectorAttribute",
"placement": "secondary",
"deduplicate": false,
"normalize": true,
"removeQueryStrings": false,
"removeRegexValidation": false,
"selector": ".product-single__description.rte .responsive-img",
"attribute": "src",
"normalizeShopify": false,
"minHeight": 500,
"minWidth": 500,
"includeImagesWithoutExtension": false,
"includeFormatsInRegex": [
"jpg",
"jpeg",
"png",
"gif",
"webp"
]
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "images",
"extractorParams": {
"strategy": "selectorAttribute",
"postProcess": [
{
"fnParams": {
"fnCode": images => {
if (images[0] == null){
return []
} else {
var i = 0
images.forEach(x => {
images[i] = images[i].match(/(\/\/cdn)([\S]+)(\.(jpg|png|gif|jpeg|JPG|heic))/g)[0]
images[i] = "https:" + images[i]
var resolution = images[i].match(/_([0-9]+)x(?=\.(jpg|png|gif|jpeg|JPG|heic))/g)
if (resolution !==null){
images[i] = images[i].replace(/_([0-9]+)x(?=\.(jpg|png|gif|jpeg|JPG|heic))/g, "")
}
i++
})
return images
}
}
},
"fnName": "customFunction"
}
],
"placement": "secondary",
"deduplicate": false,
"normalize": true,
"removeQueryStrings": false,
"removeRegexValidation": false,
"selector": ".looks-carousel img",
"attribute": "data-srcset",
"normalizeShopify": false,
"includeImagesWithoutExtension": false,
"includeFormatsInRegex": [
"jpg",
"jpeg",
"png",
"gif",
"webp"
]
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "images",
"extractorParams": {
"strategy": "selectorAttribute",
"postProcess": [
{
"fnParams": {
"fnCode": images => {
if (images[0] == null){
return []
} else {
var i = 0
images.forEach(x => {
images[i] = images[i].match(/(\/\/cdn)([\S]+)(\.(jpg|png|gif|jpeg|JPG|heic))/g)[0]
images[i] = "https:" + images[i]
var resolution = images[i].match(/_([0-9]+)x(?=\.(jpg|png|gif|jpeg|JPG|heic))/g)
if (resolution !==null){
images[i] = images[i].replace(/_([0-9]+)x(?=\.(jpg|png|gif|jpeg|JPG|heic))/g, "")
}
i++
})
return images
}
}
},
"fnName": "customFunction"
}
],
"placement": "secondary",
"deduplicate": false,
"normalize": true,
"removeQueryStrings": false,
"removeRegexValidation": false,
"selector": "[data-section-type=\"hero-section\"] .hero picture source",
"attribute": "data-srcset",
"normalizeShopify": false,
"includeImagesWithoutExtension": false,
"includeFormatsInRegex": [
"jpg",
"jpeg",
"png",
"gif",
"webp"
]
},
"validation": {
"mandatory": false
}
}
],
"title": [
{
"extractorType": "text",
"extractorParams": {
"strategy": "selectorTextContent",
"selector": ".product-single__title",
"unique": true,
"joinCharacter": " "
},
"validation": {
"mandatory": true
}
}
],
"brand": [
{
"extractorType": "text",
"extractorParams": {
"strategy": "customData",
"path": "vendor"
},
"validation": {
"mandatory": false
}
}
],
"additionalSection": [
{
"extractorType": "additionalSections",
"extractorParams": {
"strategy": "selector",
"postProcess": [],
"contentSelector": ".product-single__description:has(.full-description) .full-description:contains(a) , .product-single__description:not(:has(.full-description)):contains(a) , .product-single__description:not(:has(.full-description)):contains(e)",
"contentSelectorUnique": true,
"headerSelectorUnique": false,
"descriptionPlacement": DESCRIPTION_PLACEMENT.MAIN
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "additionalSections",
"extractorParams": {
"strategy": "selector",
"contentSelector": ".shopify-section.product-featurerow--image-w-text",
"contentSelectorUnique": false,
"headerSelectorUnique": false,
"descriptionPlacement": DESCRIPTION_PLACEMENT.MAIN
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "additionalSections",
"extractorParams": {
"strategy": "selector",
"contentSelector": "[class=\"feature-row__item feature-row__text feature-row__text--right\"] [class=\"rte rte-setting featured-row__subtext\"]",
"contentSelectorUnique": false,
"headerSelectorUnique": false,
"descriptionPlacement": DESCRIPTION_PLACEMENT.MAIN
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "additionalSections",
"extractorParams": {
"strategy": "selector",
"contentSelector": ".feature-row__text--left .rte.rte-setting.featured-row__subtext",
"contentSelectorUnique": false,
"headerSelectorUnique": false,
"descriptionPlacement": DESCRIPTION_PLACEMENT.ADJACENT
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "additionalSections",
"extractorParams": {
"strategy": "selector",
"contentSelector": ".kit-includes",
"contentSelectorUnique": true,
"headerSelector": ".kit-includes h3",
"headerSelectorUnique": true,
"descriptionPlacement": DESCRIPTION_PLACEMENT.ADJACENT
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "additionalSections",
"extractorParams": {
"strategy": "selector",
"postProcess": [
{
"fnParams": {
"fnCode": async (data, { input, config }, { _, Errors }) => {
if (!data[0]) return []
let content = await input.page.evaluate(() => {
let description = document.querySelector('.pomade-compare')
let content = Array.from(description.querySelectorAll('.flex-row')).map(infoRow => {
let newInfoRow = infoRow.innerHTML
newInfoRow = newInfoRow?.replaceAll(/<\/div>/g, '</span>')
newInfoRow = newInfoRow?.replaceAll(/<div [a-zA-Z="\s-]*>/g, '<span>')
newInfoRow += '<br>'
return newInfoRow
})
content = '<br>' + content.reduce((prv, curr) => prv + `${curr}`, ``)
return content
})
data[0].content = content
return data
}
},
"fnName": "customFunction"
}
],
"contentSelector": ".pomade-compare",
"contentSelectorUnique": true,
"headerSelector": ".pomade-compare .h3",
"headerSelectorUnique": true,
"descriptionPlacement": DESCRIPTION_PLACEMENT.ADJACENT
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "additionalSections",
"extractorParams": {
"strategy": "selector",
"preProcess": [
{
"fnParams": {
"waitBetweenClicks": 1000,
"selectors": [
".features-tab"
]
},
"fnName": "clicker"
}
],
"contentSelector": ".features-content",
"contentSelectorUnique": false,
"headerSelector": ".features-tab",
"headerSelectorUnique": false,
"descriptionPlacement": DESCRIPTION_PLACEMENT.MAIN
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "additionalSections",
"extractorParams": {
"strategy": "selector",
"contentSelector": ".product-feature-row-how-to",
"contentSelectorUnique": false,
"headerSelector": ".product-feature-row-how-to .h3",
"headerSelectorUnique": false,
"descriptionPlacement": DESCRIPTION_PLACEMENT.ADJACENT
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "additionalSections",
"extractorParams": {
"strategy": "selector",
"contentSelector": ".description-content .description-text.product-single__description.rte",
"contentSelectorUnique": false,
"headerSelector": " div.description-tab.btn-tabs h3",
"headerSelectorUnique": false,
"descriptionPlacement": DESCRIPTION_PLACEMENT.ADJACENT
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "additionalSections",
"extractorParams": {
"strategy": "selector",
"contentSelector": "[class=\"page-width product-feature-row-images-w-video\"]:contains(\"How To Use\")",
"contentSelectorUnique": true,
"headerSelectorUnique": false,
"descriptionPlacement": DESCRIPTION_PLACEMENT.ADJACENT
},
"validation": {
"mandatory": false
}
}
],
"option": [
{
"extractorType": "options",
"extractorParams": {
"strategy": "shopify",
"postProcess": [
{
"fnParams": {
"fnCode": (data, {input, config}, {_, Errors}) => {
if(!data) return;
if(data["Title"] && data["Title"].includes('Default')){
delete data["Title"]
}
return data
}
},
"fnName": "customFunction"
}
]
},
"validation": {
"mandatory": false
}
}
],
"sizeChartHtml": [
{
"extractorType": "text",
"extractorParams": {
"strategy": "selectorOuterHtml",
"selector": "#apparelSizeChart",
"unique": true,
"joinCharacter": " "
},
"validation": {
"mandatory": false
}
}
],
"bullet": [
{
"extractorType": "bullets",
"extractorParams": {
"strategy": "selectorTextContent",
"selector": ".item.title-container"
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "bullets",
"extractorParams": {
"strategy": "selectorTextContent",
"selector": ".item.features-container ul li"
},
"validation": {
"mandatory": false
}
},
{
"extractorType": "bullets",
"extractorParams": {
"strategy": "selectorTextContent",
"selector": ".variant-profile"
},
"validation": {
"mandatory": false
}
}
],
"relatedProduct": [
{
"extractorType": "relatedProducts",
"extractorParams": {
"strategy": "selector",
"baseSelector": ".cbb-frequently-bought-products",
"urlSelector": {
"selector": "a",
"attribute": "data-href"
},
"variantIdSelector": {},
"itemGroupIdSelector": {},
"deduplicate": true,
"removeQuery": false,
"forcePageOrigin": false
},
"validation": {}
}
]
}
}Editor is loading...