Disponible pour missions & renforts d’agence · Réponse rapide, par la personne qui intervient

Objets personnalisés, textile imprimé et marquage : ce qui se développe

Sur une boutique d’objets publicitaires, de textile imprimé ou d’imprimerie en ligne, le catalogue ne contient pas de prix : il contient les éléments qui servent à le calculer. C’est ce déplacement qui rend le secteur exigeant, et c’est aussi ce qui explique que la personnalisation et les configurateurs figurent parmi les demandes de développement les plus fréquentes des marchands.

Décrire mon problème Discuter sur WhatsApp

Le prix ne se lit pas, il se calcule

Le montant dépend de la quantité, avec une dégressivité par palier ; de la technique de marquage choisie — sérigraphie, broderie, gravure, impression numérique ; du nombre de couleurs ; du nombre d’emplacements marqués ; et des frais fixes de composition ou de cliché, amortis sur la quantité commandée. Une même référence peut ainsi produire des centaines de prix différents, ce qui interdit de les stocker un par un.

Ce calcul doit vivre côté serveur. Un prix construit uniquement dans le navigateur se manipule : il suffit d’altérer les valeurs envoyées pour obtenir un montant qui n’a jamais existé dans la grille. Le rôle du script côté client se limite à afficher une estimation ; le montant qui entre dans le panier, celui qui part au paiement et celui qui figure sur la facture doivent être recalculés à partir des mêmes règles, au même endroit.

Ce qu’un CMS ne fournit pas

  • Le téléversement du fichier client depuis la fiche produit, avec contrôle du format (vectoriel ou image), de la résolution, du mode colorimétrique et du fond perdu.
  • Le rattachement du fichier à la ligne de commande et non au compte client, et sa survie au passage du panier à la commande — c’est là que les fichiers se perdent le plus souvent.
  • Le bon à tirer : la production ne démarre qu’après validation. Il faut un statut qui attend un accord, une notification, une relance automatique et une trace horodatée de la validation.
  • L’exclusion du droit de rétractation pour les biens confectionnés selon les spécifications du consommateur ou nettement personnalisés, au titre de l’article L221-28 du code de la consommation, avec la mention affichée au moment où le client valide.
  • Le délai annoncé : il dépend de la technique et de la quantité, pas du produit. Il se calcule à partir du plan de charge de l’atelier et des jours ouvrés, et s’affiche comme une date.
  • Le fichier de fabrication : l’aperçu écran ne suffit pas, il faut générer côté serveur le fichier réellement utilisé en production, aux bonnes dimensions et avec les bons repères, joint au bon de travail.

Là où le serveur lâche en premier

Les fichiers envoyés par les clients sont volumineux : un visuel vectoriel avec ses polices vectorisées, une image en haute résolution destinée à une impression grand format, parfois plusieurs par commande. Les limites de PHP se rencontrent alors très vite, et le symptôme est toujours le même côté client : un envoi qui semble aboutir puis une page vide, ou une commande enregistrée sans son fichier.

Il faut donc régler les limites, mais aussi accepter qu’elles existent : contrôler le poids avant l’envoi, découper le téléversement quand le fichier est lourd, et refuser explicitement plutôt que d’échouer en silence. Un message qui dit ce qui ne va pas dans le fichier évite un aller-retour par courrier électronique et une commande bloquée pendant deux jours.

php.ini
upload_max_filesize = 64M
post_max_size = 72M
max_file_uploads = 20
max_execution_time = 300
memory_limit = 256M

Sur le même terrain

Questions fréquentes

Un configurateur du marché peut-il suffire ?
Parfois, quand la personnalisation se limite à un texte et à une couleur sur un emplacement unique. Dès qu’interviennent les paliers de quantité, plusieurs emplacements, des techniques aux règles différentes et des frais fixes, les modules génériques atteignent leur limite et le calcul doit être écrit pour l’atelier.
Où doit être stocké le fichier envoyé par le client ?
Hors de la racine web, avec un nom qui ne se devine pas, et référencé depuis la ligne de commande. Le rattacher au compte client pose problème dès qu’une même personne commande deux fois avec deux visuels différents.
Comment gérer le bon à tirer sans logiciel externe ?
Avec un statut de commande dédié qui attend l’accord, une page de validation accessible par lien, une relance automatique après quelques jours et l’enregistrement de la date et de l’adresse IP de la validation. La production ne se déclenche qu’au passage de ce statut.
Un article personnalisé peut-il être retourné ?
Les biens confectionnés selon les spécifications du consommateur ou nettement personnalisés sont exclus du droit de rétractation par l’article L221-28 du code de la consommation. Concrètement, la mention doit apparaître à l’étape de validation et l’acceptation être conservée avec la commande.
Pourquoi le téléversement échoue-t-il sur les gros fichiers ?
Le plus souvent à cause d’une limite serveur atteinte : taille maximale d’envoi, taille totale de la requête, nombre de fichiers ou temps d’exécution. Le navigateur n’affiche alors rien d’explicite ; il faut lire les journaux du serveur pour savoir laquelle des limites a été franchie.
L’aperçu affiché au client suffit-il pour produire ?
Non. L’aperçu est une image d’écran, sans les dimensions réelles ni les repères de coupe. Le fichier de production se génère côté serveur à partir des mêmes données, puis se joint au bon de travail pour que l’atelier n’ait rien à reconstruire.

Décrivez votre besoin en 1 minute

Quelques questions ciblées pour que je vous réponde avec une estimation, pas avec un questionnaire de plus.

De quel type de développement s’agit-il ?
Partez-vous de zéro ou faut-il faire évoluer un existant ?

Reprendre un code existant non maîtrisé demande souvent un audit avant même de commencer à développer.

Une stack technique est-elle imposée ? (facultatif)
Combien de personnes utiliseront l’outil ? (facultatif)
Quelle est votre échéance ? (facultatif)
Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.

Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.