@fedege96 This modified script should work better for you if attributes exist but don’t have any values:
// Create title from given attributes
function run() {
for (const listing of selectedListings) {
// enter preceding text optionally:
var precedingText = "";
// enter name of attributes e.g. "Brand":
var attributeA = "";
var attributeB = "";
var attributeC = "";
var attributeD = "";
var attributeE = "";
var attributeF = "";
var attributeG = "";
var attributeH = "";
var attributeI = "";
// leave everything below untoched:
var finalTitle = "";
if (listing.attributes[attributeA] && listing.attributes[attributeA] !="") {
finalTitle = finalTitle.concat(listing.attributes[attributeA]," ");
}
if (listing.attributes[attributeB] && listing.attributes[attributeB] !="") {
finalTitle = finalTitle.concat(listing.attributes[attributeB]," ");
}
if (listing.attributes[attributeC] && listing.attributes[attributeC] !="") {
finalTitle = finalTitle.concat(listing.attributes[attributeC]," ");
}
if (listing.attributes[attributeD] && listing.attributes[attributeD] !="") {
finalTitle = finalTitle.concat(listing.attributes[attributeD]," ");
}
if (listing.attributes[attributeE] && listing.attributes[attributeE] !="") {
finalTitle = finalTitle.concat(listing.attributes[attributeE]," ");
}
if (listing.attributes[attributeF] && listing.attributes[attributeF] !="") {
finalTitle = finalTitle.concat(listing.attributes[attributeF]," ");
}
if (listing.attributes[attributeG] && listing.attributes[attributeG] !="") {
finalTitle = finalTitle.concat(listing.attributes[attributeG]," ");
}
if (listing.attributes[attributeH] && listing.attributes[attributeH] !="") {
finalTitle = finalTitle.concat(listing.attributes[attributeH]," ");
}
if (listing.attributes[attributeI] && listing.attributes[attributeI] !="") {
finalTitle = finalTitle.concat(listing.attributes[attributeI]," ");
}
listing.title = precedingText + finalTitle;
}
}