- Posts: 386
- Thank you received: 76
Une question au sujet de l'affichage sur une page produit
- guillenphoto
-
Topic Author
- Offline
Less
More
4 hours 27 minutes ago #100000082
by guillenphoto
-- url of the page with the problem -- :
www.guillenphoto.com/fr/les-photos-d-art...-et-blanc-245-7.html
-- Browser(s) name and version -- : Chrome 154.0
Bonjour,
Avant de vous poser ma question, je voudrai vous féliciter pour le nouveau design de votre site web. C'est très réussi. Très aéré, moderne et très clair. Facile à naviguer.
J'apprécie beaucoup.
Je viens d'avoir un souci avec un client. Il faut que je trouve une solution.
Voici ma question.
- Aller sur cette page : www.guillenphoto.com/fr/les-photos-d-art...-et-blanc-245-7.html
- Dans le premier champ, sélectionnez "Finition contemporaine".
- Dans le deuxième champ, sélectionnez une taille.
J'aimerai que Finition contemporaine apparaisse automatiquement dans le troisième champ. Aujourd'hui, les clients doivent manuellement effectuer un choix confirmant le premier. C'est le moyen que j'ai trouvé pour afficher les détails du produit.
Tout fonctionnait bien jusqu'à aujourd'hui. Pour une commande, un client vient de sélectionner dans le premier champ "Finition contemporaine" puis il a choisi la finition Museum dans le troisième champ. Je ne sais pas quel produit lui livrer.
J'espère que mes explications sont claires. N'hésitez pas à me demander des détails.
J'espère aussi que c'est possible. Les montants sont importants. je ne peux pas me permettre de reproduire ce fonctionnement.
Sincèrement,
A. Guillen
-- Browser(s) name and version -- : Chrome 154.0
Bonjour,
Avant de vous poser ma question, je voudrai vous féliciter pour le nouveau design de votre site web. C'est très réussi. Très aéré, moderne et très clair. Facile à naviguer.
J'apprécie beaucoup.
Je viens d'avoir un souci avec un client. Il faut que je trouve une solution.
Voici ma question.
- Aller sur cette page : www.guillenphoto.com/fr/les-photos-d-art...-et-blanc-245-7.html
- Dans le premier champ, sélectionnez "Finition contemporaine".
- Dans le deuxième champ, sélectionnez une taille.
J'aimerai que Finition contemporaine apparaisse automatiquement dans le troisième champ. Aujourd'hui, les clients doivent manuellement effectuer un choix confirmant le premier. C'est le moyen que j'ai trouvé pour afficher les détails du produit.
Tout fonctionnait bien jusqu'à aujourd'hui. Pour une commande, un client vient de sélectionner dans le premier champ "Finition contemporaine" puis il a choisi la finition Museum dans le troisième champ. Je ne sais pas quel produit lui livrer.
J'espère que mes explications sont claires. N'hésitez pas à me demander des détails.
J'espère aussi que c'est possible. Les montants sont importants. je ne peux pas me permettre de reproduire ce fonctionnement.
Sincèrement,
A. Guillen
Please Log in or Create an account to join the conversation.
9 minutes ago #100000085
by nicolas
Replied by nicolas on topic Une question au sujet de l'affichage sur une page produit
Bonjour,
Merci pour vos mots sur le nouveau site.
Ce qui s'est passé : le premier champ (la finition) est une caractéristique de variante, alors que le troisième est un champ personnalisé de produit en panier. HikaShop ne relie pas les deux : un champ personnalisé ne peut dépendre que d'un autre champ personnalisé, jamais d'une caractéristique. Rien n'empêchait donc un client de choisir « Finition contemporaine » en haut et « Finition museum » plus bas, et c'est ce qui est arrivé. Ce n'est pas une panne : cela a toujours été possible, personne ne l'avait encore fait.
Pour la commande déjà passée, la commande contient les deux choix et HikaShop ne peut pas savoir lequel était voulu : le plus sûr est de demander au client quelle finition il souhaite (et la couleur de cadre qui va avec), le prix payé correspondant à la variante choisie dans le premier champ.
Pour que cela ne se reproduise pas, vous pouvez garder vos champs tels qu'ils sont et ajouter un petit script sur la page produit : il coche automatiquement dans le troisième champ la finition choisie dans le premier, cache ce troisième champ, et vos champs de couleur de cadre continuent de s'afficher selon la finition comme aujourd'hui. Le client ne peut donc plus choisir deux finitions différentes.
Pour l'ajouter :
1. Dans l'administration de HikaShop, allez dans Affichage > Vues.
2. Choisissez le template de votre site dans le filtre, et cherchez la vue « show_default » du type « product » (côté site).
3. Éditez-la et collez le code ci-dessous tout à la fin du fichier, après la dernière ligne. Si le fichier ne se termine pas par ?> , ajoutez une ligne avec ?> juste avant le code.
4. Enregistrez, puis testez sur la page produit : choisissez une finition dans le premier champ, le troisième doit disparaître et vos champs de couleur de la bonne finition doivent s'afficher.
Les valeurs 1, 5 et 6 et le nom du champ sont ceux que nous voyons sur vos pages produit (la caractéristique de finition, ses valeurs « Finition contemporaine » et « Finition museum », et votre champ « Choisissez une finition pour votre tirage en édition limitée »). Si vous renommez un jour ces valeurs du champ personnalisé, pensez à mettre à jour la ligne « var map » du code. Si une finition n'a pas de correspondance dans le champ, le script laisse simplement le champ visible pour que le client choisisse lui-même.
Nous avons testé ce code sur une boutique de test reproduisant votre configuration (caractéristique en boutons radio, champ de confirmation obligatoire et champs dépendants) : la valeur suit bien la finition choisie et les champs de couleur s'affichent correctement. Faites tout de même une commande test sur votre site après l'avoir ajouté.
Merci pour vos mots sur le nouveau site.
Ce qui s'est passé : le premier champ (la finition) est une caractéristique de variante, alors que le troisième est un champ personnalisé de produit en panier. HikaShop ne relie pas les deux : un champ personnalisé ne peut dépendre que d'un autre champ personnalisé, jamais d'une caractéristique. Rien n'empêchait donc un client de choisir « Finition contemporaine » en haut et « Finition museum » plus bas, et c'est ce qui est arrivé. Ce n'est pas une panne : cela a toujours été possible, personne ne l'avait encore fait.
Pour la commande déjà passée, la commande contient les deux choix et HikaShop ne peut pas savoir lequel était voulu : le plus sûr est de demander au client quelle finition il souhaite (et la couleur de cadre qui va avec), le prix payé correspondant à la variante choisie dans le premier champ.
Pour que cela ne se reproduise pas, vous pouvez garder vos champs tels qu'ils sont et ajouter un petit script sur la page produit : il coche automatiquement dans le troisième champ la finition choisie dans le premier, cache ce troisième champ, et vos champs de couleur de cadre continuent de s'afficher selon la finition comme aujourd'hui. Le client ne peut donc plus choisir deux finitions différentes.
Pour l'ajouter :
1. Dans l'administration de HikaShop, allez dans Affichage > Vues.
2. Choisissez le template de votre site dans le filtre, et cherchez la vue « show_default » du type « product » (côté site).
3. Éditez-la et collez le code ci-dessous tout à la fin du fichier, après la dernière ligne. Si le fichier ne se termine pas par ?> , ajoutez une ligne avec ?> juste avant le code.
4. Enregistrez, puis testez sur la page produit : choisissez une finition dans le premier champ, le troisième doit disparaître et vos champs de couleur de la bonne finition doivent s'afficher.
Code:
window.hikashop.ready(function() {
// Remplit le champ de finition à partir de la finition choisie plus haut, et le cache
var characteristic = 'hikashop_product_characteristic[1]';
var field = 'lesoptionsdepersonnalisationdevotretiragedart';
var map = {'5': 'Finition contemporaine', '6': 'Finition museum'};
var row = document.getElementById('hikashop_item_' + field);
if(!row)
return;
// on cache les cellules et non la ligne : HikaShop cacherait aussi les champs qui en dépendent
var show = function(visible) {
row.querySelectorAll('td').forEach(function(td) { td.style.display = visible ? '' : 'none'; });
};
var sync = function() {
var chosen = '';
document.querySelectorAll('[name="' + characteristic + '"]').forEach(function(el) {
if(el.tagName == 'SELECT' || el.checked)
chosen = el.value;
});
var value = map[chosen] || '';
var found = false;
document.querySelectorAll('[name="data[item][' + field + ']"]').forEach(function(input) {
if(input.tagName == 'SELECT') {
input.value = value;
found = found || (value !== '' && input.value == value);
} else {
input.checked = (value !== '' && input.value == value);
found = found || input.checked;
}
});
// valeur sans correspondance : on laisse le client choisir
show(chosen !== '' && !found);
window.hikashop.toggleField(found ? value : '', field, 'item', 0);
};
document.addEventListener('change', function(e) {
if(e.target && e.target.name == characteristic)
sync();
});
sync();
});
Les valeurs 1, 5 et 6 et le nom du champ sont ceux que nous voyons sur vos pages produit (la caractéristique de finition, ses valeurs « Finition contemporaine » et « Finition museum », et votre champ « Choisissez une finition pour votre tirage en édition limitée »). Si vous renommez un jour ces valeurs du champ personnalisé, pensez à mettre à jour la ligne « var map » du code. Si une finition n'a pas de correspondance dans le champ, le script laisse simplement le champ visible pour que le client choisisse lui-même.
Nous avons testé ce code sur une boutique de test reproduisant votre configuration (caractéristique en boutons radio, champ de confirmation obligatoire et champs dépendants) : la valeur suit bien la finition choisie et les champs de couleur s'affichent correctement. Faites tout de même une commande test sur votre site après l'avoir ajouté.
Please Log in or Create an account to join the conversation.
Time to create page: 0.147 seconds