-
Washing Away Excess
Whirlpool slashes inventory with demand planning -
Filling A Tall Order
Foster's meets demand with $170 million supply chain project
Executive S&OP -- the top management component of Sales & Operations Planning -- is delivering great benefits to companies using it well. Experience has shown that the most important element of successful Executive S&OP is executive buy-in, support, leadership, and hands-on participation.
Most companies are not getting those benefits. A recent survey showed that a high percentage of users are not satisfied with how well Executive S&OP is working. Almost all of this can be traced back to lack of executive support and participation.","alternateLabel":null,"teaserImage":{"id":786,"url":"https://assets1.consumergoods.com/styles/secondary_articles_short/s3/CGT-ExecVis-wp0606.jpg?itok=7QgztYjy","width":100,"alt":null,"height":143},"sponsored":false,"businessTopic":[],"company":[],"contentType":[]},{"title":"Mutual Benefits","id":16133,"bundle":"article","summary":"A holistic CRM strategy drives value for CG firms and retail partners ","showSummary":null,"url":"/mutual-benefits","date":"2004-01-01T00:00:00","author":{"email":"devteam@ashday.com","uname":"ash_root","firstName":"Root","lastName":"Man","bio":null,"title":null,"picture":null,"phone":null,"contactForm":true},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":null,"topics":[{"name":"Direct to Consumer","url":"/direct-consumer"}],"attachedFiles":[]},{"title":"ConAgra Announces New CEO","id":16221,"bundle":"article","summary":"Sean M. Connolly has been announced as ConAgra Foods new CEO, replacing current CEO Gary M. Rodkin, effective April 6. Rodkin had announced his impending retirement, which will take place at the end of ConAgra Foods' fiscal year, May 31, 2015.","showSummary":null,"url":"/conagra-announces-new-ceo","date":"2003-01-01T00:00:00","author":{"email":"devteam@ashday.com","uname":"ash_root","firstName":"Root","lastName":"Man","bio":null,"title":null,"picture":null,"phone":null,"contactForm":true},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":{"id":12470,"url":"https://assets1.consumergoods.com/styles/secondary_articles_short/s3/ConAgra_cgt_02-15-15.jpg?itok=ts3Lv-b6","width":190,"height":216,"alt":null},"topics":[{"name":"Manufacturing","url":"/manufacturing"}],"attachedFiles":[]},{"title":"Mondelez Brand Markets to Millennials ","id":16230,"bundle":"article","summary":"The new campaign is focused on resonating with Millennial consumers through the evolution of a Fuse and Twitter partnership.","showSummary":null,"url":"/mondelez-brand-markets-millennials","date":"2003-01-01T00:00:00","author":{"email":"devteam@ashday.com","uname":"ash_root","firstName":"Root","lastName":"Man","bio":null,"title":null,"picture":null,"phone":null,"contactForm":true},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":null,"topics":[{"name":"Manufacturing","url":"/manufacturing"},{"name":"Sales & Marketing","url":"/sales-and-marketing"}],"attachedFiles":[]},{"title":"Nestle Investigates Child Labor in Supply Chain","id":16234,"bundle":"article","summary":"Nestl is the first food company to partner with the Fair Labor Association to investigate whether children are working on cocoa farms supplying its factories.
","showSummary":null,"url":"/nestle-investigates-child-labor-supply-chain","date":"2003-01-01T00:00:00","author":{"email":"devteam@ashday.com","uname":"ash_root","firstName":"Root","lastName":"Man","bio":null,"title":null,"picture":null,"phone":null,"contactForm":true},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":null,"topics":[{"name":"Supply Chain Management","url":"/supply-chain-management"},{"name":"Manufacturing","url":"/manufacturing"}],"attachedFiles":[]}]},"title":"Supply Chain","contentParagraphs":null,"sections":null};
const country = "US";
const language = null;
const SITE_LANGUAGE = "en";
const siteName = "Consumer Goods Technology";
const userRoles = ["anonymous"];
const userUid = 0;
const indexName = "CG";
const title = "Supply Chain | Consumer Goods Technology";
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 = title || `${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);
}
})();