Arrow Company Food Distribution

📝 REX Customer Datasheet – Arrow Company

1. Background and challenges

Arrow Company, a major player in the distribution of consumer goods in the Middle East, was at a strategic turning point:

  • An aging brand image, with little competitive differentiation.

  • A digital presence limited to a basic showcase site, with no advanced e-commerce functionalities.

  • Rapidly changing customer expectations, with growing demand for simple, fast and integrated B2B digital experiences.

The objective was twofold: to redefine the brand’s identity, and to accelerate its digital transformation to turn it into a growth driver.


2. Palmer Consulting’s mission

a) Redefining brand positioning

  • Strategic analysis of Arrow’s values, strengths and aspirations.

  • Building a modernized brand territory, in line with its ambitions as a digital leader.

  • Creation of a new, clear and differentiating brand platform.

b) Creation of a new visual identity & logo

  • Development of a new logo reflecting modernity, dynamism and regional roots.

  • Development of a complete graphic charter (typography, color codes, iconography).

  • Multi-media deployment (print, digital, social networks).

c) Deployment of a new website – arrowcompany.com

  • From a simple showcase site to a strategic digital platform.

  • Integration of fundamentals: UX design, navigation architecture, product templates

    PALMER – Digitalize your B2B co…

    .

  • Setting up e-commerce-ready functionalities: product pages, visual catalogs, reusable templates

    PALMER – Digitalize your B2B co…

    .

  • Consistency between branding, design and customer experience.


3. Digital Project: E-Commerce connected to SAP

In addition to the image, Palmer helped Arrow design and frame its future B2B e-commerce channel:

  • Functional foundations: definition of priority user paths and e-commerce use cases

  • Technical architecture: integration with SAP to synchronize prices, inventory and orders in real time

  • Customer experience: secure accounts, order history, advanced filters, intelligent search, multilingual support (Arabic/English)

  • Roadmap: from showcase phase to complete digital engine for Arrow’s future sales force


4. Results

  • New visual identity: successful adoption of the new logo and graphic charter.

  • Modernized website: a corporate showcase transformed into a veritable digital hub for customers.

  • Accelerating digital maturity: Arrow has moved from a showcase site to a solid e-commerce base

  • Strategic alignment: internal teams now have a clear framework for digital deployment and customer onboarding.


5. Lessons learned & keys to success

  • 360° vision: combining branding, visual identity and digital transformation ensures a consistent customer experience.

  • Co-construction with Arrow: strong involvement of in-house teams and joint workshops.

  • Pragmatic approach: rapidly deliver “quick wins” (new logo, improved showcase site) while preparing for the e-commerce ramp-up.


✅ Arrow Company now benefits from a new brand image and a modern digital platform, ready to evolve towards fully integrated B2B e-commerce.

Share

Other customers

A major player in the insurance and financial services sector
Cash flow optimization in a context of rising interest rates for a major player in the insurance sector…
A major player in the insurance and asset management sector
Optimization and compliance of asset management processes for a major player in the insurance and asset management sector
A French international insurance group
RGPD compliance and optimization of personal data management at a major financial services institution
jQuery(function ($) { var SOURCE = '.custom-cta'; var CIBLE = '.contenu'; var MIN_CTA = 1; // nb minimum de CTA (le 1er est toujours en fin de contenu) var MAX_CTA = 3; // nb maximum de CTA var MOTS_PAR_CTA = 200; // 1 CTA par tranche de X mots var $source = $(SOURCE).first(); var $contenu = $(CIBLE).first(); if (!$source.length || !$contenu.length) return; function creerCta() { var $clone = $source.clone(); $clone.removeAttr('id').find('[id]').removeAttr('id'); $clone.addClass('cta-clone').removeAttr('hidden').show(); return $clone; } // 1. Conteneur du texte (le parent qui contient le plus de

) var $texte = null; var maxP = 0; $contenu.find('p').parent().each(function () { var nb = $(this).children('p').length; if (nb > maxP) { maxP = nb; $texte = $(this); } }); var $blocs = $texte ? $texte.children().not($source).not('.cta-clone') : $(); var n = $blocs.length; // 2. Mots cumulés à la fin de chaque bloc var cumul = []; var total = 0; $blocs.each(function () { var t = $.trim($(this).text()); total += t ? t.split(/\s+/).length : 0; cumul.push(total); }); // 3. Nombre de CTA proportionnel à la longueur, borné entre MIN et MAX var nbCta = Math.floor(total / MOTS_PAR_CTA); nbCta = Math.max(MIN_CTA, Math.min(MAX_CTA, nbCta)); console.log('[CTA] mots :', total, '| CTA :', nbCta); if (nbCta === 0) return; // 4. CTA de fin, toujours présent $contenu.append(creerCta()); // 5. Autres CTA placés à leur proportion exacte du texte try { if (nbCta === 1 || n === 0) return; var $h2 = $blocs.filter('h2'); var tolerance = total / (nbCta * 4); // écart max (en mots) pour se caler sur un h2 var utilises = []; for (var i = 1; nbCta > i; i++) { var cible = (total * i) / nbCta; // position idéale en nombre de mots // Bloc où l'on atteint cette position var idx = 0; while (idx !== n - 1 && cible > cumul[idx]) idx++; // h2 dont le début est le plus proche de la position idéale var $titre = null; var ecart = Infinity; $h2.each(function () { if (utilises.indexOf(this) !== -1) return; var j = $blocs.index(this); var d = Math.abs((j ? cumul[j - 1] : 0) - cible); if (ecart > d) { ecart = d; $titre = $(this); } }); if ($titre && tolerance >= ecart) { utilises.push($titre[0]); $titre.before(creerCta()); } else if ($blocs.eq(idx).is('h1, h2, h3, h4, h5, h6')) { $blocs.eq(idx).before(creerCta()); } else { $blocs.eq(idx).after(creerCta()); } } } catch (e) { console.error('[CTA] erreur :', e); } });