{"id":275,"date":"2021-02-01T22:00:38","date_gmt":"2021-02-01T22:00:38","guid":{"rendered":"https:\/\/www.naveedulhaq.com\/?p=275"},"modified":"2021-02-01T22:00:40","modified_gmt":"2021-02-01T22:00:40","slug":"restrict-specific-products-for-sale-in-selected-countries","status":"publish","type":"post","link":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/","title":{"rendered":"Restrict specific products for sale in selected countries"},"content":{"rendered":"\n<p>We come across a requirement to restrict specific products (not complete catalogue) to sale in specific countries (different products per country). On a website with multi-currency per country and worldwide delivery of products its not a straight forward task. <\/p>\n\n\n\n<p>If we want to restrict product for sale in a specific country then potential customers (including anonymous customers) should not able to add to basket and not able to search these products to avoid disappointment. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Available default Options<\/h2>\n\n\n\n<p><span style=\"text-decoration: underline;\">Markets<\/span>: If we create different markets for each country, We can only add a &#8220;Valid&#8221; price for a country where a specific product can be sold. This approach seems fine and it works with Episerver find as well but it is very hard to maintain. We probably need to create 100s of markets as one per country. We also have to add and maintain prices of these markets and if the catalogue has products in 1000s then it will be very hard to manage. A potential customer will still be able to buy (if they manually change cookie value )<\/p>\n\n\n\n<p><span style=\"text-decoration: underline;\">Restrict countries in payment provider (Allowed \/ Disallowed countries)<\/span>. So for example, if the UK is a restricted country in payment provider then customers from the UK would not able to buy any product. The problem with this approach is; payment provider restricts all products from a specific country. We want to restrict specific products per country.<\/p>\n\n\n\n<p><span style=\"text-decoration: underline;\">Customer Groups:<\/span> Product price can be restricted per customer group but it will be very hard to workout Customer groups if the customer is not logged-in and this approach has similar issues like Markets.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Solution<\/h2>\n\n\n\n<p>There are different moving parts of  this solution<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Getting an accurate visitor location<\/li><li>Defining which product or variant is restricted in which country.<\/li><li>Restricting products or variants in search based on their restrictions. <\/li><li>Restricting variant to Add to basket<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Get an accurate visitor location<\/h2>\n\n\n\n<p>All Episerver DXP environments use Cloudflare CDN and it provides a request header (&#8220;CF-IPCountry&#8221;) that tell us visitor location. So we can create a helper method to get a visitor&#8217;s location.<\/p>\n\n\n\n<pre><code>using System.Web;\n\nnamespace Foundation.Helpers\n{\n    public static class CustomerHelpers\n    {\n        public static string GetVisitorLocation(HttpRequestBase httpRequest)\n        {\n            \n            var countryIso = httpRequest.Headers&#91;\"CF-IPCountry\"];\n            return countryIso;\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Add variant Property for restricted countries<\/h2>\n\n\n\n<p>Create a property of variant that takes a list of all restricted countries. I have created string type property that uses a custom selection factory &#8220;CountriesSelectionFactory&#8221; and uses SlectMany property decoration to take more than one country ISO name.<\/p>\n\n\n\n<p><strong>Countries Selection Factory<\/strong><\/p>\n\n\n\n<pre><code>using EPiServer.Shell.ObjectEditing;\nusing System.Collections.Generic;\n\nnamespace Foundation.Features.Blocks.ElevatedRoleBlock\n{\n    public class CountriesSelectionFactory : ISelectionFactory\n    {\n        public virtual IEnumerable&lt;ISelectItem> GetSelections(ExtendedMetadata metadata)\n        {\n            return new ISelectItem&#91;]\n            {\n                new SelectItem { Text = \"United Kingdom\", Value = \"GB\"},\n                new SelectItem { Text = \"United states\", Value = \"US\"},\n                new SelectItem { Text = \"Canada\", Value = \"CA\"}\n                \/\/ Other countries\n            };\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<p><strong>Property<\/strong><\/p>\n\n\n\n<pre><code>&#91;Display(Name = \"Restricted  Countries\", Order = 40)]\n        &#91;SelectMany(SelectionFactoryType = typeof(CountriesSelectionFactory))]\n        &#91;BackingType(typeof(PropertyString))]\n        public virtual string RestrictedCountries { get; set; }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Restricting products or variants in search based on their restrictions<\/h2>\n\n\n\n<p>We have created property in the variant so it will be available in Epi Find. We can create a filter while getting search results from Episerver find. <\/p>\n\n\n\n<p> https:\/\/world.episerver.com\/documentation\/developer-guides\/commerce\/search\/Configuring-facets-and-filters\/<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Restricting variant to Add to basket<\/h2>\n\n\n\n<p>There are two places you can restrict a variant to add to basket<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>IPriceService : If you have created custom price service (an overload of default IPriceService) then you can return invalid price based on visitor location.<\/li><li>Product\/Variant controller: You have visitor location from the helper method and restricted countries from VariantBase. You can create a logic not to show Add to Basket button.<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>We come across a requirement to restrict specific products (not complete catalogue) to sale in specific countries (different products per country). On a website with&#8230;<\/p>\n","protected":false},"author":1,"featured_media":65,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[10,9,32,23,13,22],"class_list":["post-275","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-episerver","tag-cms","tag-commerce","tag-developer","tag-development","tag-episerver","tag-episerver-commerce"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>EpiCommerce: restrict specific products for sale in selected countries<\/title>\n<meta name=\"description\" content=\"Episerver Commerce: Restrict specific products for sale in selected countries - Optimizely - Naveed Ul-Haq&#039;s blog\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"EpiCommerce: restrict specific products for sale in selected countries\" \/>\n<meta property=\"og:description\" content=\"Episerver Commerce: Restrict specific products for sale in selected countries - Optimizely - Naveed Ul-Haq&#039;s blog\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/\" \/>\n<meta property=\"og:site_name\" content=\"Naveed Ul-Haq&#039;s blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-01T22:00:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-01T22:00:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2020\/01\/episerver.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"230\" \/>\n\t<meta property=\"og:image:height\" content=\"230\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Naveed Ul-Haq\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Naveed Ul-Haq\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/restrict-specific-products-for-sale-in-selected-countries\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/restrict-specific-products-for-sale-in-selected-countries\\\/\"},\"author\":{\"name\":\"Naveed Ul-Haq\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/dd6db5980b965fcae41e096d357c65c9\"},\"headline\":\"Restrict specific products for sale in selected countries\",\"datePublished\":\"2021-02-01T22:00:38+00:00\",\"dateModified\":\"2021-02-01T22:00:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/restrict-specific-products-for-sale-in-selected-countries\\\/\"},\"wordCount\":516,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/dd6db5980b965fcae41e096d357c65c9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/restrict-specific-products-for-sale-in-selected-countries\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/episerver.jpeg\",\"keywords\":[\"cms\",\"commerce\",\"developer\",\"development\",\"episerver\",\"Optimizely Customized Commerce\"],\"articleSection\":[\"Optimizely\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/restrict-specific-products-for-sale-in-selected-countries\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/restrict-specific-products-for-sale-in-selected-countries\\\/\",\"url\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/restrict-specific-products-for-sale-in-selected-countries\\\/\",\"name\":\"EpiCommerce: restrict specific products for sale in selected countries\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/restrict-specific-products-for-sale-in-selected-countries\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/restrict-specific-products-for-sale-in-selected-countries\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/episerver.jpeg\",\"datePublished\":\"2021-02-01T22:00:38+00:00\",\"dateModified\":\"2021-02-01T22:00:40+00:00\",\"description\":\"Episerver Commerce: Restrict specific products for sale in selected countries - Optimizely - Naveed Ul-Haq&#039;s blog\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/restrict-specific-products-for-sale-in-selected-countries\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/restrict-specific-products-for-sale-in-selected-countries\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/restrict-specific-products-for-sale-in-selected-countries\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/episerver.jpeg\",\"contentUrl\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/episerver.jpeg\",\"width\":230,\"height\":230,\"caption\":\"episerver\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/restrict-specific-products-for-sale-in-selected-countries\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.naveedulhaq.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Restrict specific products for sale in selected countries\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#website\",\"url\":\"https:\\\/\\\/www.naveedulhaq.com\\\/\",\"name\":\"Naveed Ul-Haq's blog\",\"description\":\"AI, Optimizely, Azure &amp; more\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/dd6db5980b965fcae41e096d357c65c9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.naveedulhaq.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/dd6db5980b965fcae41e096d357c65c9\",\"name\":\"Naveed Ul-Haq\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g\",\"caption\":\"Naveed Ul-Haq\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g\"},\"description\":\"I lead engineering delivery teams for digital commerce and digital experience platforms, combining hands-on architecture experience with strong delivery governance. Over 20+ years, I\u2019ve built and led cross\u2011functional teams (engineering, BA, QA) delivering modern cloud solutions on Azure, microservices, APIs and eCommerce\\\/CMS platforms. My recent focus includes AI-enabled commerce automation: product ingestion and enrichment workflows, content optimisation for SEO and shopping feeds, and agentic tooling to improve marketing and accessibility workflows. I\u2019m passionate about building high-performing teams, establishing quality\\\/release standards, and delivering measurable outcomes across performance, reliability, and speed of change.\",\"sameAs\":[\"https:\\\/\\\/www.naveedulhaq.com\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/naveedulhaq\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"EpiCommerce: restrict specific products for sale in selected countries","description":"Episerver Commerce: Restrict specific products for sale in selected countries - Optimizely - Naveed Ul-Haq&#039;s blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/","og_locale":"en_GB","og_type":"article","og_title":"EpiCommerce: restrict specific products for sale in selected countries","og_description":"Episerver Commerce: Restrict specific products for sale in selected countries - Optimizely - Naveed Ul-Haq&#039;s blog","og_url":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/","og_site_name":"Naveed Ul-Haq&#039;s blog","article_published_time":"2021-02-01T22:00:38+00:00","article_modified_time":"2021-02-01T22:00:40+00:00","og_image":[{"width":230,"height":230,"url":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2020\/01\/episerver.jpeg","type":"image\/jpeg"}],"author":"Naveed Ul-Haq","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Naveed Ul-Haq","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/#article","isPartOf":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/"},"author":{"name":"Naveed Ul-Haq","@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/dd6db5980b965fcae41e096d357c65c9"},"headline":"Restrict specific products for sale in selected countries","datePublished":"2021-02-01T22:00:38+00:00","dateModified":"2021-02-01T22:00:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/"},"wordCount":516,"commentCount":0,"publisher":{"@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/dd6db5980b965fcae41e096d357c65c9"},"image":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/#primaryimage"},"thumbnailUrl":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2020\/01\/episerver.jpeg","keywords":["cms","commerce","developer","development","episerver","Optimizely Customized Commerce"],"articleSection":["Optimizely"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/","url":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/","name":"EpiCommerce: restrict specific products for sale in selected countries","isPartOf":{"@id":"https:\/\/www.naveedulhaq.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/#primaryimage"},"image":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/#primaryimage"},"thumbnailUrl":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2020\/01\/episerver.jpeg","datePublished":"2021-02-01T22:00:38+00:00","dateModified":"2021-02-01T22:00:40+00:00","description":"Episerver Commerce: Restrict specific products for sale in selected countries - Optimizely - Naveed Ul-Haq&#039;s blog","breadcrumb":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/#primaryimage","url":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2020\/01\/episerver.jpeg","contentUrl":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2020\/01\/episerver.jpeg","width":230,"height":230,"caption":"episerver"},{"@type":"BreadcrumbList","@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/restrict-specific-products-for-sale-in-selected-countries\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.naveedulhaq.com\/"},{"@type":"ListItem","position":2,"name":"Restrict specific products for sale in selected countries"}]},{"@type":"WebSite","@id":"https:\/\/www.naveedulhaq.com\/#website","url":"https:\/\/www.naveedulhaq.com\/","name":"Naveed Ul-Haq's blog","description":"AI, Optimizely, Azure &amp; more","publisher":{"@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/dd6db5980b965fcae41e096d357c65c9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.naveedulhaq.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/dd6db5980b965fcae41e096d357c65c9","name":"Naveed Ul-Haq","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g","caption":"Naveed Ul-Haq"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g"},"description":"I lead engineering delivery teams for digital commerce and digital experience platforms, combining hands-on architecture experience with strong delivery governance. Over 20+ years, I\u2019ve built and led cross\u2011functional teams (engineering, BA, QA) delivering modern cloud solutions on Azure, microservices, APIs and eCommerce\/CMS platforms. My recent focus includes AI-enabled commerce automation: product ingestion and enrichment workflows, content optimisation for SEO and shopping feeds, and agentic tooling to improve marketing and accessibility workflows. I\u2019m passionate about building high-performing teams, establishing quality\/release standards, and delivering measurable outcomes across performance, reliability, and speed of change.","sameAs":["https:\/\/www.naveedulhaq.com","https:\/\/www.linkedin.com\/in\/naveedulhaq\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/posts\/275","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/comments?post=275"}],"version-history":[{"count":0,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/posts\/275\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/media\/65"}],"wp:attachment":[{"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/media?parent=275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/categories?post=275"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/tags?post=275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}