Markets
Morocco North Africa's most diversified economy, with globally recognised brands in beauty, gastronomy, and artisanal goods β leveraging argan oil heritage, proximity to Europe, and a growing reputation as the continent's gateway market.
0 Brands
Share
Africa's Gateway North Africa's most diversified economy transforming rich artisanal heritage β from argan oil to leather goods β into globally competitive brands, with strategic access to both European and African markets.
Population
37M
GDP
$140 billion
Growth
3.5%
Premium Growth
10%
Trade Access for Morocco Brands
--
Accessible
--
Restricted --
People
Loading market access data...
Trade accessible
Trade restricted
Map unavailable in your region. Brands from this market can trade with 150+ countries globally.
Explore Brands by Location Interactive map showing brand locations across the Global South. Use proximity search, view regional clusters, and explore nearby brands.
Interactive map is temporarily unavailable in your region. We're working on a China-compatible solution.
Tier
Clear
All Brands Resilient Profiled Listed Sector
Clear
All Sectors Artisan Ceramics Artisan Crafts Artisan Foods Baby Care Beauty Personal Care Beauty Retail Beauty Services Beer Boutique Hospitality Color Cosmetics Confectionery Consumer Electronics Cured Meats Dairy Products Department Stores Dried Fruits & Nuts Electric Vehicles Fashion & Accessories Fermented Dairy Flexible Workspace Fragrances Furniture & Home Decor Gourmet Foods Grocery & Specialty Retail Halal Foods Herbal & Traditional Medicine Honey & Bee Products Hotels & Resorts Jewelry & Watches Kitchen Appliances Leather Goods Mineral Waters Natural Beauty Natural Foods Natural Supplements Olive Oil & Agriculture Packaged Beverages Packaged Snacks Pharmacy & Health Retail Private Education Processed Foods Professional Services Restaurants Skincare Spa Services Specialty Cheeses Spices & Condiments Spirits Sporting Goods Tea & Coffee Heritage Textiles & Fabrics Wellness Services Wine Attribute
Clear
All Attributes Artisanal Excellence Award Winning Crisis-Tested Emerging Voice Founder-Led Founder-Owned Heritage Brand Legacy Dynasty Premium Positioning Regional Icon Second Generation Vertically Integrated Signals
PREMIUM
Export Ready Scale Ready Succession Ready
Unlock exclusive premium access to filter by Growth Signals
website: feature.properties.website || '',
tier: feature.properties.contentTier || 'basic'
}));
this.loading = false;
// Update hero brand count
const heroCount = document.getElementById('hero-brand-count');
if (heroCount) {
const brandWord = this.brands.length === 1 ? 'brand' : 'Brands';
heroCount.innerHTML = this.brands.length + ' ' + brandWord;
}
console.log('Loaded ' + this.brands.length + ' brands for ' + taxonomyType + ': ' + termSlug);
} catch (error) {
console.error('Error loading brand data:', error);
this.brands = [];
this.loading = false;
}
// Initialize filters from URL parameters
const params = new URLSearchParams(window.location.search);
if (params.has('search')) this.search = params.get('search');
if (params.has('country')) this.country = params.get('country');
if (params.has('tier')) this.brandTier = params.get('tier');
if (params.has('website')) this.hasWebsite = params.get('website') === 'true';
// Watch for filter changes and update URL (debounced for search)
let searchTimeout;
this.$watch('search', () => {
clearTimeout(searchTimeout);
searchTimeout = setTimeout(() => this.updateURL(), 300);
});
this.$watch('country', () => this.updateURL());
this.$watch('brandTier', () => this.updateURL());
this.$watch('hasWebsite', () => this.updateURL());
},
updateURL() {
const params = new URLSearchParams();
if (this.search) params.set('search', this.search);
if (this.country) params.set('country', this.country);
if (this.brandTier) params.set('tier', this.brandTier);
if (this.hasWebsite) params.set('website', 'true');
const newURL = params.toString()
? window.location.pathname + '?' + params.toString()
: window.location.pathname;
window.history.pushState({}, '', newURL);
},
get activeFilterCount() {
let count = 0;
if (this.search) count++;
if (this.country) count++;
if (this.brandTier) count++;
if (this.hasWebsite) count++;
return count;
},
get filteredBrands() {
return this.brands.filter(brand => {
const matchesSearch = !this.search || brand.name.toLowerCase().includes(this.search.toLowerCase());
const matchesCountry = !this.country || brand.countryCode === this.country;
const matchesTier = !this.brandTier || brand.tier === this.brandTier;
const matchesWebsite = !this.hasWebsite || brand.website;
return matchesSearch && matchesCountry && matchesTier && matchesWebsite;
});
},
get sortedBrands() {
return [...this.filteredBrands].sort((a, b) => {
let aVal, bVal;
if (this.sortBy === 'founded') {
aVal = a.founded || 0;
bVal = b.founded || 0;
} else if (this.sortBy === 'tier') {
const tierOrder = { 'complete': 3, 'partial': 2, 'basic': 1 };
aVal = tierOrder[a.tier] || 0;
bVal = tierOrder[b.tier] || 0;
} else if (this.sortBy === 'country') {
aVal = a.country || '';
bVal = b.country || '';
} else if (this.sortBy === 'city') {
aVal = a.city || '';
bVal = b.city || '';
} else {
aVal = a.name || '';
bVal = b.name || '';
}
if (this.sortDirection === 'asc') {
return aVal > bVal ? 1 : aVal < bVal ? -1 : 0;
} else {
return aVal < bVal ? 1 : aVal > bVal ? -1 : 0;
}
});
},
get visibleCount() {
return this.filteredBrands.length;
},
get uniqueCountries() {
return [...new Set(this.brands.map(b => b.countryCode).filter(c => c))].sort();
},
getCountryName(code) {
const countryNames = {
'ru': 'Russia',
'cn': 'China',
'mn': 'Mongolia',
'et': 'Ethiopia',
'in': 'India'
};
return countryNames[code] || code.toUpperCase();
},
clearAllFilters() {
this.search = '';
this.country = '';
this.brandTier = '';
this.hasWebsite = false;
},
removeFilter(filterName) {
if (filterName === 'search') this.search = '';
else if (filterName === 'country') this.country = '';
else if (filterName === 'tier') this.brandTier = '';
else if (filterName === 'website') this.hasWebsite = false;
},
sortTable(column) {
if (this.sortBy === column) {
this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';
} else {
this.sortBy = column;
this.sortDirection = (column === 'founded') ? 'desc' : 'asc';
}
},
downloadCSV() {
const headers = ['Brand', 'City', 'Country', 'Founded', 'Website', 'Tier'];
let csv = headers.join(',') + '\n';
this.sortedBrands.forEach(brand => {
const rowData = [
this.escapeCSV(brand.name),
this.escapeCSV(brand.city || 'β'),
this.escapeCSV(brand.country || 'β'),
this.escapeCSV(brand.founded ? String(brand.founded) : 'β'),
this.escapeCSV(brand.website || 'β'),
this.escapeCSV(brand.tier)
];
csv += rowData.join(',') + '\n';
});
const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
const link = document.createElement('a');
const url = URL.createObjectURL(blob);
const today = new Date().toISOString().split('T')[0];
let filename = 'morocco-directory-' + today;
if (this.activeFilterCount > 0) {
filename += '-filtered';
}
filename += '.csv';
link.setAttribute('href', url);
link.setAttribute('download', filename);
link.style.visibility = 'hidden';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
},
escapeCSV(str) {
if (!str) return '';
const comma = String.fromCharCode(44);
const quote = String.fromCharCode(34);
const newline = String.fromCharCode(10);
if (str.includes(comma) || str.includes(quote) || str.includes(newline)) {
return quote + str.replace(new RegExp(quote, 'g'), quote + quote) + quote;
}
return str;
}
}" class="directory-table-container">
Search:
Country:
Tier:
With Website
Clear all
Loading...
Country
All countries
Brand Tier
All Brands Resilient Profiled Listed
With Website
Brand
City
Country
Year
Website Tier
Loading... No brands found matching your criteria. Visit
β Resilient
Profiled
Listed
End of Directory Listing (Hub-only feature)
*/}}Related Insights π²π¦
August 2, 2026
15 min read
Portugal captured the rock in a matter of hours in 1415 β and lost the trade network overnight. Ceuta has never recovered its centrality since.
π²π¦
August 2, 2026
21 min read
Phoenician port, Spanish presidio, EU border, live fault line β Melilla survived by repricing what it sells to whoever holds power.
π²π¦
May 6, 2026
15 min read
The oasis that minted medieval Europe's gold β until its citizens killed the governor and the Portuguese found a sea route around it.
π²π¦
March 26, 2026
14 min read
A liberalisation wave created Morocco's founder generation. Now 150,000 family businesses approach transition with almost nothing in place.
Coming Soon
Premium Feature: CSV Export CSV export is available to our premium members! This feature allows you to export your filtered search results for offline analysis, presentations, or integration with your own tools. Premium membership includes unlimited CSV exports across all directories.
Close