Trader d’images, spécialiste de l’objet de table personnalisé et de l’accessoire de communication pour le secteur CHR, souhaitait franchir une nouvelle étape dans sa stratégie digitale. L’objectif était clair : transformer une expertise historique en une plateforme web performante, capable de concilier inspiration esthétique et efficacité commerciale.
Ma mission :
En tant que concepteur et développeur au sein de l’équipe, mon rôle est de traduire l’ADN créatif de Trader d’images en une expérience utilisateur (UX) fluide et génératrice de business. Mes responsabilités incluent :
- Refonte de l’interface utilisateur (UI) : Créer un design moderne et visuel qui met en avant la qualité des produits (sous-bocks, menus, serviettes personnalisées) tout en restant ergonomique pour des restaurateurs pressés.
- Développement d’une double approche métier :
- Expertise & Conseil : Valoriser le rôle d’accompagnement de l’agence (Studio Graphique, sur-mesure) pour montrer que Trader d’images n’est pas qu’un fournisseur, mais un partenaire créatif.
- E-commerce B2B : Optimiser le tunnel de commande et la gestion du catalogue pour permettre une navigation fluide entre les milliers de références et d’options de personnalisation.
- Mise en valeur du catalogue produit : Structurer des fiches produits claires, intégrant les spécificités techniques (matières, types d’impression) et les innovations éco-responsables, cruciales pour le secteur aujourd’hui.
- Architecture de l’information : Organiser le contenu par univers (Hôtellerie, Restauration, Événementiel) pour que chaque client trouve immédiatement la solution adaptée à son établissement.
- Stratégie SEO & Performance : Assurer un positionnement de leader sur les requêtes liées à la personnalisation CHR, tout en garantissant un temps de chargement optimal pour mobile (usage fréquent sur le terrain).
Le résultat :
La plateforme de Trader d’images s’affirme comme un outil robuste et intuitif. Elle réussit l’équilibre entre la vitrine d’un studio de création et la puissance d’un site e-commerce B2B. Ce travail permet de renforcer l’image de marque de l’entreprise tout en simplifiant le parcours d’achat, transformant ainsi chaque visite en une opportunité de collaboration durable avec les professionnels de la gastronomie et de l’accueil.
Ajout d’un sélecteur de quantité modifiant le prix affiché et compatible avec l’option d’ajout au panier.
jQuery(function($) {
const QUANTITY_INPUT_SELECTOR = '.quantity input.qty';
const PLUS_BUTTON_SELECTOR = '.plus-btn';
const MINUS_BUTTON_SELECTOR = '.minus-btn';
let singleItemPrice = 0;
function initializePrice() {
const totalElement = $('#newTotal');
if (totalElement.length && totalElement.text().trim() !== '') {
const initialPriceText = totalElement.text().replace(/[^0-9.,]/g, '').replace(',', '.');
singleItemPrice = parseFloat(initialPriceText);
}
}
function updateTotalPrice() {
const quantityInput = $(QUANTITY_INPUT_SELECTOR);
const totalElement = $('#newTotal');
if (quantityInput.length === 0 || totalElement.length === 0 || singleItemPrice === 0) {
return;
}
const currencySymbol = totalElement.parent().find('.woocommerce-Price-currencySymbol').prop('outerHTML') || '€';
const quantity = parseInt(quantityInput.val());
const validQuantity = isNaN(quantity) ? 1 : quantity;
const newTotal = singleItemPrice * validQuantity;
const newPriceString = newTotal.toFixed(1).replace('.', ',');
totalElement.html(`${newPriceString} ${currencySymbol}`);
}
$('.variations_form').on('found_variation', function(event, variation) {
singleItemPrice = variation.display_price;
updateTotalPrice();
});
$('body').on('input click', `${QUANTITY_INPUT_SELECTOR}, ${PLUS_BUTTON_SELECTOR}, ${MINUS_BUTTON_SELECTOR}`, function() {
setTimeout(updateTotalPrice, 50);
});
initializePrice();
});
<?php
}
>
.woocommerce div.product form.cart div.quantity {
display: flex !important;
border-radius: 20px;
width: 250px;
background-color: #f8f5f1;
align-self: center;
margin: 0px 0px 15px 0px !important;
}
.woocommerce .quantity input.qty, .woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea {
background-color: #f8f5f1;
}
.et-db #et-boc .et-l .et_pb_wc_add_to_cart .quantity input.qty {
max-width: none;
width: 100%;
order: 2;
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
.minus-btn {
order: 0;
align-self: center;
border-radius: 10px;
border-color: #000000;
border-width: 2px;
margin: 5px;
padding: 5px 10px 5px 10px;
}
.plus-btn {
order: 3;
align-self: center;
border-radius: 10px;
border-color: #000000;
border-width: 2px;
margin: 5px;
padding: 5px 10px 5px 10px;
}
.quantity-label {
margin-bottom: none;
order: 1;
white-space: nowrap;
align-self: center;
margin-left: 10px;
}
Ajout d’un sélecteur de quantité modifiant le prix affiché et compatible avec l’option d’ajout au panier.
<?php
}
>
.juyo-glass-card {
margin-top: 12px;
margin-bottom: 5px;
padding: 10px 12px;
display: inline-mansory;
background: rgba(240, 242, 245, 0.75);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
border: 0.25px solid rgba(255, 255, 255, 0.6);
border-radius: 12px;
box-shadow:
0 4px 6px rgba(0, 0, 0, 0.05),
0 10px 15px rgba(0, 0, 0, 0.03);
font-size: 12px;
text-align: left;
line-height: 1.5;
color: #555;
transition: all 0.3s ease;
}
.woocommerce ul.products li.product:hover .juyo-glass-card {
background: rgba(240, 242, 245, 0.95);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
transform: translateY(-2px);
}
.juyo-line-primary {
font-weight: 700;
color: #333;
margin-bottom: 4px;
border-bottom: 1px solid rgba(0,0,0,0.05);
padding-bottom: 4px;
}
@media only screen and (max-width: 768px) {
.juyo-line-primary {
font-size: 10px;
}
}
.juyo-line-secondary {
font-size: 11px;
color: #666;
}
@media only screen and (max-width: 768px) {
.juyo-line-secondary {
font-size: 8px;
}
}
Problématique : Les textes du site utilisent depuis sa création la locution
« personnalisé », au féminin et masculin, au pluriel et singulier.


