Channeling Success
Home Depot Direct extends the reach of the Home Depot brand with a Web site, HDTV and in-store kiosksConsumer-Centric Merchandising
Suppliers and retailers are both struggling to make emotional connection with consumers.
","alternateLabel":null,"teaserImage":{"id":20266,"url":"https://assets1.risnews.com/styles/secondary_articles_short/s3/consumer-centric01.jpg?itok=ApNqLii9","width":100,"alt":null,"height":138},"sponsored":false,"businessTopic":[],"company":[],"contentType":[]},{"title":"Collaboration in Category Management","id":9090,"bundle":"whitepaper","url":"/collaboration-category-management","date":"2006-12-21T00:00:00","author":{"email":"devteam@ashday.com","uname":"ash_root","firstName":null,"lastName":null,"bio":null,"title":null,"picture":null,"phone":null,"contactForm":null},"summary":"Can CPG and Retail Companies Leverage Insights to Achieve Common Goals?","body":"Increasing complexity in the retail-CPG industry has many companies taking a closer look at their category management efforts. Retailers and CPG companies are seeking higher levels of insights to drive category management, in order to effectively reach consumers who have more choices than ever before in terms of channels, stores and products to choose from.
","alternateLabel":null,"teaserImage":{"id":20263,"url":"https://assets1.risnews.com/styles/secondary_articles_short/s3/RIS-Infosys-1006_0.jpg?itok=52k4k1N6","width":100,"alt":null,"height":127},"sponsored":false,"businessTopic":[],"company":[],"contentType":[]},{"title":"Challenge: Making Merchandising Matter","id":9091,"bundle":"whitepaper","url":"/challenge-making-merchandising-matter","date":"2006-12-21T00:00:00","author":{"email":"devteam@ashday.com","uname":"ash_root","firstName":null,"lastName":null,"bio":null,"title":null,"picture":null,"phone":null,"contactForm":null},"summary":"Learn about The North Face's fast, easy and proven interactive merchandising implementation -- and success with Concept Display.","body":"Learn about The North Face's fast, easy and proven interactive merchandising implementation -- and success with Concept Display.
","alternateLabel":null,"teaserImage":{"id":20259,"url":"https://assets1.risnews.com/styles/secondary_articles_short/s3/makingMerchandise1.jpg?itok=ybuQO7OT","width":100,"alt":null,"height":129},"sponsored":false,"businessTopic":[],"company":[],"contentType":[]}]},"title":"Supply Chain and Merchandising"};
const country = "HK";
const language = "en, *";
const SITE_LANGUAGE = "en";
const siteName = "RIS News";
const userRoles = ["anonymous"];
const userUid = 0;
const indexName = "risnews";
window.dataLayer = window.dataLayer || [];
const data = {};
data.entityTaxonomy = {};
const contentTypes = [
"article",
"blog",
"bulletin",
"embed_page",
"landing_page",
"event",
"image",
"page",
"product",
"whitepaper",
"video",
"tags",
];
if (
routeInfo &&
"bundle" in routeInfo &&
contentTypes.includes(routeInfo["bundle"])
) {
data.entityBundle = routeInfo.bundle;
data.entityTitle = `${routeInfo.title} | ${siteName}`;
data.entityId = routeInfo.id;
data.entityName = routeInfo.author?.uname;
data.entityCreated = routeInfo.created;
data.sponsored = routeInfo.sponsored;
data.sponsor = routeInfo.sponsoringCompany;
data.entityType = "node";
data.entityLangcode = SITE_LANGUAGE;
data.siteName = siteName;
data.drupalLanguage = language;
data.drupalCountry = country;
data.userRoles = userRoles;
data.userUid = userUid;
data.entityTaxonomyKeys = {};
data.entityTaxonomyHierarchies = {};
data.parentNaicsCode = {};
data.isPro = false;
data.algoliaIndexName = indexName;
// Add toxonomy data
const taxonomies = {
businessTopic: "business_topic",
contentType: "content_type",
company: "company",
marketSegment: "market_segment",
};
const getHierarchy = (term, terms = []) => {
terms.push({ id: term.id, name: term.name });
if (term.parentTerm != null) {
getHierarchy(term.parentTerm, terms);
}
return terms;
};
const getTerms = (term, useApiId = false) => {
return { id: useApiId ? term.apiId : term.id, name: term.name };
};
const getKeys = (term) => {
return { id: term.id, name: term.apiId };
};
Object.entries(taxonomies).forEach(([key, item]) => {
terms = routeInfo[key];
if (terms && terms.length > 0) {
data["entityTaxonomy"][item] = terms.map((term) =>
getTerms(term, key === "company")
);
if (key !== "company") {
data["entityTaxonomyKeys"][item] = terms.map(getKeys);
termGroups = [];
terms.forEach((term, termInd) => {
termGroups[termInd] = getHierarchy(term);
});
data["entityTaxonomyHierarchies"][item] = termGroups;
}
}
});
data["entityTaxonomy"]["tags"] = routeInfo["topics"] || [];
// Primary Topic is either the business topic or the top tag.
if (routeInfo["businessTopic"]?.length > 0) {
data["entityPrimaryTopic"] = routeInfo["businessTopic"][0]["name"];
} else {
if (routeInfo["topics"]?.length > 0) {
data["entityPrimaryTopic"] = routeInfo["topics"][0]["name"];
}
}
// Primary and secondary entityNaicsCodes come from the MarketSegment
if (routeInfo.marketSegment?.length > 0) {
data.entityNaicsCode = {};
data["entityNaicsCode"]["id"] = routeInfo["marketSegment"][0]["id"];
data["entityNaicsCode"]["name"] =
routeInfo["marketSegment"][0]["naicsCode"];
if (routeInfo["marketSegment"][0]["parentTerm"] != null) {
data["parentNaicsCode"]["id"] =
routeInfo["marketSegment"][0]["parentTerm"]["id"];
data["parentNaicsCode"]["name"] =
routeInfo["marketSegment"][0]["parentTerm"]["naicsCode"];
}
} else {
data.entityNaicsCode = [];
}
if (routeInfo.taggedPro) {
data.isPro = routeInfo.taggedPro;
}
window.dataLayer.push(data);
} else if (routeInfo && "vid" in routeInfo) {
data.entityBundle = "tags";
data.entityTitle = routeInfo.name;
data.entityId = routeInfo.id;
data.entityName = routeInfo.author?.uname;
data.entityCreated = routeInfo.created;
data.entityType = "taxonomy_term";
data.entityLangcode = SITE_LANGUAGE;
data.siteName = siteName;
data.sponsored = routeInfo.sponsored;
data.sponsor = routeInfo.sponsoringCompany;
data.drupalLanguage = language;
data.drupalCountry = country;
data.userRoles = userRoles;
data.userUid = userUid;
data.algoliaIndexName = indexName;
data["entityTaxonomy"]["tags"] = {
id: routeInfo["id"],
name: routeInfo["name"],
};
window.dataLayer.push(data);
}
})();