","showSummary":null,"url":"/weis-fights-hunger","date":"2010-10-28T00:00:00","author":{"email":"info@progressivegrocer.com","uname":"pg_root","firstName":null,"lastName":null,"bio":null,"title":null,"picture":null,"phone":null,"contactForm":null},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":null,"topics":[{"name":"Food Retailers","url":"/food-retailers"},{"name":"Market Trends","url":"/market-trends"},{"name":"New Products & Promotions","url":"/new-products-promotions"}],"attachedFiles":[]},{"title":"Wakefern to Host 2011 Tribute to N.J. Women and Industry","id":41211,"bundle":"article","summary":"The retail co-op and the organization have a two-decade-long relationship.","showSummary":null,"url":"/wakefern-host-2011-tribute-nj-women-and-industry","date":"2010-10-27T00:00:00","author":{"email":"info@progressivegrocer.com","uname":"pg_root","firstName":null,"lastName":null,"bio":null,"title":null,"picture":null,"phone":null,"contactForm":null},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":null,"topics":[{"name":"Food Retailers","url":"/food-retailers"},{"name":"Research & Analysis","url":"/research-analysis"}],"attachedFiles":[]},{"title":"D'Agostino Supermarkets Upgrades Website","id":41212,"bundle":"article","summary":"GSN helped the iconic New York grocer expand its e-commerce strategy.","showSummary":null,"url":"/dagostino-supermarkets-upgrades-website","date":"2010-10-27T00:00:00","author":{"email":"info@progressivegrocer.com","uname":"pg_root","firstName":null,"lastName":null,"bio":null,"title":null,"picture":null,"phone":null,"contactForm":null},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":null,"topics":[{"name":"Food Retailers","url":"/food-retailers"},{"name":"Supermarket & Grocery Industry News","url":"/supermarket-grocery-industry-news"}],"attachedFiles":[]},{"title":"The Food Emporium Offers 'A Taste of Morocco'","id":41215,"bundle":"article","summary":"Exclusive delicacies will be available at 16 Manhattan stores.","showSummary":null,"url":"/food-emporium-offers-taste-morocco","date":"2010-10-27T00:00:00","author":{"email":"info@progressivegrocer.com","uname":"pg_root","firstName":null,"lastName":null,"bio":null,"title":null,"picture":null,"phone":null,"contactForm":null},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":null,"topics":[{"name":"Food Retailers","url":"/food-retailers"},{"name":"Nonfoods","url":"/nonfoods"},{"name":"Market Trends","url":"/market-trends"},{"name":"Produce / Floral","url":"/produce-floral"},{"name":"Equipment & Design","url":"/equipment-design"}],"attachedFiles":[]},{"title":"Kroger Opts for LLamasoft Software Services","id":41209,"bundle":"article","summary":"The aims are to improve end-to-end supply chain ops, reduce total cost-to-serve.","showSummary":null,"url":"/kroger-opts-llamasoft-software-services","date":"2010-10-27T00:00:00","author":{"email":"info@progressivegrocer.com","uname":"pg_root","firstName":null,"lastName":null,"bio":null,"title":null,"picture":null,"phone":null,"contactForm":null},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":null,"topics":[{"name":"Food Retailers","url":"/food-retailers"},{"name":"Trading Partners","url":"/trading-partners"},{"name":"Supermarket & Grocery Industry News","url":"/supermarket-grocery-industry-news"}],"attachedFiles":[]},{"title":"Kroger Taps New Perishables Chief","id":41206,"bundle":"article","summary":"24-year veteran promoted to group VP spot
","showSummary":null,"url":"/kroger-taps-new-perishables-chief","date":"2010-10-26T00:00:00","author":{"email":"info@progressivegrocer.com","uname":"pg_root","firstName":null,"lastName":null,"bio":null,"title":null,"picture":null,"phone":null,"contactForm":null},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":null,"topics":[{"name":"Food Retailers","url":"/food-retailers"},{"name":"Supermarket & Grocery Industry News","url":"/supermarket-grocery-industry-news"},{"name":"Market Trends","url":"/market-trends"},{"name":"Nonfoods","url":"/nonfoods"}],"attachedFiles":[]},{"title":"U.S. Bank Offers Kroger Rewards","id":41207,"bundle":"article","summary":"Shoppers earn free groceries, fuel discounts and other perks","showSummary":null,"url":"/us-bank-offers-kroger-rewards","date":"2010-10-26T00:00:00","author":{"email":"info@progressivegrocer.com","uname":"pg_root","firstName":null,"lastName":null,"bio":null,"title":null,"picture":null,"phone":null,"contactForm":null},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":null,"topics":[{"name":"Food Retailers","url":"/food-retailers"},{"name":"Research & Analysis","url":"/research-analysis"},{"name":"Market Trends","url":"/market-trends"}],"attachedFiles":[]},{"title":"Coborn's Brings NuVal to Minn. Stores","id":41204,"bundle":"article","summary":"Participating stores now have scores for more than half of their products.","showSummary":null,"url":"/coborns-brings-nuval-minn-stores","date":"2010-10-26T00:00:00","author":{"email":"info@progressivegrocer.com","uname":"pg_root","firstName":null,"lastName":null,"bio":null,"title":null,"picture":null,"phone":null,"contactForm":null},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":null,"topics":[{"name":"Food Retailers","url":"/food-retailers"},{"name":"Nonfoods","url":"/nonfoods"},{"name":"Market Trends","url":"/market-trends"},{"name":"Frozen Foods","url":"/frozen-foods"},{"name":"Deli / Prepared Foods","url":"/deli-prepared-foods"},{"name":"Produce / Floral","url":"/produce-floral"}],"attachedFiles":[]},{"title":"Publix Real Estate VP Retiring","id":41205,"bundle":"article","summary":"John Frazier will be succeeded by Jeff Chamberlain.","showSummary":null,"url":"/publix-real-estate-vp-retiring","date":"2010-10-26T00:00:00","author":{"email":"info@progressivegrocer.com","uname":"pg_root","firstName":null,"lastName":null,"bio":null,"title":null,"picture":null,"phone":null,"contactForm":null},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":null,"topics":[{"name":"Food Retailers","url":"/food-retailers"},{"name":"Equipment & Design","url":"/equipment-design"}],"attachedFiles":[]},{"title":"St. Louis Grocery Workers Ready to Vote on New Contract","id":41190,"bundle":"article","summary":"Contract to cover 9,000 UFCW-member employees
","showSummary":null,"url":"/st-louis-grocery-workers-ready-vote-new-contract","date":"2010-10-25T00:00:00","author":{"email":"info@progressivegrocer.com","uname":"pg_root","firstName":null,"lastName":null,"bio":null,"title":null,"picture":null,"phone":null,"contactForm":null},"digitalEdition":null,"sponsored":false,"taggedPro":null,"teaserImage":null,"topics":[{"name":"Food Retailers","url":"/food-retailers"},{"name":"Market Trends","url":"/market-trends"},{"name":"Frozen Foods","url":"/frozen-foods"}],"attachedFiles":[]}]},"title":"Food Retailers","contentParagraphs":null,"sections":null};
const country = "US";
const language = null;
const SITE_LANGUAGE = "en";
const siteName = "Progressive Grocer";
const userRoles = ["anonymous"];
const userUid = 0;
const indexName = "pg";
const title = "Food Retailers | Progressive Grocer";
window.dataLayer = window.dataLayer || [];
const data = {};
data.entityTaxonomy = {};
const contentTypes = [
"article",
"blog",
"bulletin",
"embed_page",
"landing_page",
"event",
"image",
"page",
"product",
"whitepaper",
"video",
"tags",
"author_profile",
"buyers_guide_listing"
];
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 taxonomy 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);
}
})();