Angela Hanson is Senior Editor of Convenience Store News. She joined the brand in 2011. Angela spearheads most of CSNews’ industry awards programs and authors numerous special news reports. In 2016, she took over the foodservice beat, a critical category for the c-store industry.
\r\n","title":"Senior Editor","picture":{"id":24,"url":"https://assets1.csnews.com/files/s3fs-public/styles/portrait_gallery_item/public/2024-02/Angela.jpg?VersionId=3CFergpa4z0b98wZgy.wvv8Xz3p7TfU0&h=6195c030&itok=69hvmTUG","alt":"Angela Hanson","width":489,"height":500},"phone":null,"contactForm":true},"digitalEdition":false,"sponsored":false,"taggedPro":false,"teaserImage":{"id":59181,"url":"https://assets1.csnews.com/files/styles/secondary_articles_short/s3/2023-11/british_american_tobacco_bat_logo_500x281.jpg?VersionId=p99iMtZIHOgjFFB0.I62QtXGVNQSWtfL&h=73306683&itok=fzspmzzT","width":500,"height":281,"alt":"British American Tobacco logo"},"topics":[{"name":"Tobacco","url":"/tobacco"},{"name":"Suppliers & Wholesalers","url":"/suppliers-wholesalers"}],"attachedFiles":[]},{"title":"Supplier Spotlights: Eco-Products, Electric Era Technologies & Fresh Blends","id":54987,"bundle":"article","summary":"Lux Ice USA, National Retail Solutions and the Royston Group, among others, also announce new initiatives and partnerships. ","showSummary":true,"url":"/supplier-spotlights-eco-products-electric-era-technologies-fresh-blends","date":"2023-12-04T15:15:38","author":{"email":"akoprowski@ensembleiq.com","uname":"akoprowski","firstName":"Amanda","lastName":"Koprowski","bio":"Amanda Koprowski is the associate editor at Convenience Store News. She is a new member of the team, having joined the company in December of 2022.
\r\n","title":"Associate Editor","picture":{"id":57214,"url":"https://assets1.csnews.com/files/s3fs-public/styles/portrait_gallery_item/public/2024-02/color_headshot_2_0.png?VersionId=uSmC1E13zWgiM.1DHfjHwo63XZlNPN6F&h=3dc08bd7&itok=PDiC7yH-","alt":"Koprowski Headshot","width":409,"height":494},"phone":null,"contactForm":true},"digitalEdition":false,"sponsored":false,"taggedPro":false,"teaserImage":{"id":59247,"url":"https://assets1.csnews.com/files/s3fs-public/styles/secondary_articles_short/public/2023-11/lux_ice_cocktail_500x281.jpg?VersionId=XnVbzSQQQ.NdfKK9KSwE8F6WhqFl8anU&h=73306683&itok=yxBjPCs5","width":500,"height":281,"alt":"Bartender using Lux Ice balls for cocktails"},"topics":[{"name":"Suppliers & Wholesalers","url":"/suppliers-wholesalers"}],"attachedFiles":[]}]},"title":"Suppliers & Wholesalers","contentParagraphs":null,"sections":null}; const country = "US"; const language = null; const SITE_LANGUAGE = "en"; const siteName = "Convenience Store News"; const userRoles = ["anonymous"]; const userUid = 0; const indexName = "csnews"; const title = "Suppliers & Wholesalers | Convenience Store News"; 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); } })();