Modification modes de livraison

  • Posts: 13
  • Thank you received: 0
5 days 2 hours ago #308549

-- HikaShop version -- : 4.1.0
-- Joomla version -- : 3.9.10
-- PHP version -- : 7.2

Hello.

I've created shipping methods for my site, and I want to display them as a drop-down list, rather than radio buttons.

So I changed the show_block_shipping view of my template, and it works: I have a drop-down list, and when I select a delivery method, the "You have chosen the delivery method:" message at the bottom of the page is updated.

But I have two problems:

  1. I'm unable to validate my form: the page is reloaded, no error message is displayed, but it's impossible to proceed to the payment (If I return to the display with the radio buttons, the access to the payment is ok).
  2. I would like to have multiple delivery mode selectors, depending on what items customers order. Technically, changing the view is quite simple, and I can easily view a drop-down list by article or group of articles. On the other hand, I ask myself the question of the treatment with the validation of the form: is it possible to save several delivery modes?

Thanks in advance for your help

David

Last edit: 5 days 1 hour ago by plastic1st.

Please Log in or Create an account to join the conversation.

  • Posts: 66270
  • Thank you received: 9720
  • MODERATOR
4 days 19 hours ago #308551

Bonjour,

1. Difficile de vous aider sans reproduire le problème. Pourriez-vous fournir un lien vers le site avec les instructions nécessaires pour reproduire le soucis ?

2. Dans ce cas vous voulez créer un "entrepôt" par groupe de produit. Dans les produits et dans les méthodes de livraison, vous pourrez ainsi sélectionner l'entrepôt correspondant. Ainsi, avec la vue par défaut, vous verrez que vous aurez un groupe de radios par entrepôt en fonction des produits dans le panier. Et il vous suffira de gérer l'affichage en dropdown pour chaque groupe.

Please Log in or Create an account to join the conversation.

  • Posts: 13
  • Thank you received: 0
3 days 25 minutes ago #308639

Bonjour Nicolas.

Merci pour votre réponse.
J'ai fini par résoudre le problème N°1 tout seul.

Mon problème venait de l'attribut 'name' de mon select.
Je l'avais nommé initialement "checkout[shipping]", ce qui fait qu'on moment de la validation, je récupérais :

$data['shipping'] = <mon id>

alors que dans le fichier administrator/components/com_hikashop/helpers/checkout/shipping.php, on attend un tableau :
$shipping_ids = array();
foreach($data['shipping'] as $group => $shipping) {
	if(!isset($shipping['id']))
		continue;
	if(is_numeric($group))
		$group = (int)$group;
	if(is_numeric($shipping['id']))
		$shipping['id'] = (int)$shipping['id'];
	$shipping_ids[$group] = $shipping['id'];
}

J'ai renommé mon select comme suit, et cela fonctionne
echo JHTML::_('select.genericlist', $selector['values'], 'checkout[shipping]['. $shipping_group_key .'][id]', 'class="hikashop_field_dropdown" data-hk-checkout="' . $this->escape(json_encode($selector['input_data'])) . '" onchange="window.checkout.shippingSelected(this);"', 'value', 'text', $shipping_json[$shipping_group_key], 'hikashop_shipping_selector_'.$this->step.'_'.$this->module_position);


Reste le problème N°2 à résoudre...

Je ne suis pas sûr de pouvoir le résoudre avec la solution que vous proposez, car les points de retrait des marchandises sont évolutifs.
Chaque vendeur peut choisir des points de retrait à sa guise parmi une liste de points de retrait disponibles (il peut modifier sa liste quand il le souhaite).

Lorsque l'acheteur sélectionne une marchandise, je veux lui proposer la pré-selection du vendeur, et lui laisser la possibilité de choisir le point de retrait qui lui convient le mieux.
Si l'acheteur achète plusieurs marchandises (différents vendeurs possibles), au moment de l'affichage du panier, je récupère la liste des points de retrait de tous les vendeurs concernés, et je veux proposer à l'acheteur :
- soit une seule liste des points de retrait en commun (afin que l'acheteur récupère tous ses marchandises au même endroit),
- soit une liste de points de retrait pour chaque marchandise si aucun point de retrait en commun.


En parcourant le forum hikashop, j'ai lu qu'il valait mieux créer des modes de livraison que des entrepôts. J'ai donc créé des modes de livraison pour chacun de mes points de retrait, et je pensais ensuite désactiver les points de retrait non retenus par les vendeurs au moment d'afficher le panier.

Avec ce descriptif plus détaillé de mon besoin, partiriez-vous toujours sur des entrepôts ?
Je ne suis pas sûr d'avoir bien compris votre explication : est-ce que les entrepôts s'affichent dans la zone de livraison, à la place des modes de livraison ?

Merci d'avance pour votre aide.

David

Please Log in or Create an account to join the conversation.

  • Posts: 66270
  • Thank you received: 9720
  • MODERATOR
2 days 3 hours ago #308663

Bonjour,

En effet, dans votre cas, l'utilisation des entrepôts ne semble pas adéquat.
Vous pouvez en effet créer une méthode de livraison manuelle par point relai avec l'option "shipping price per product" activée dans les méthodes de livraison.
Ainsi, lorsque le vendeur crée/édite ses produits, il aura une zone "shipping prices" où il pourra bloquer certaines méthodes de livraison (points relai) pour le produit en question.
Durant le passage en caisse, le système triera ensuite les produits automatiquement et proposera plusieurs sélection de méthode de livraison si nécessaire.

Please Log in or Create an account to join the conversation.

  • Posts: 13
  • Thank you received: 0
1 day 20 hours ago #308704

Merci pour votre réponse.
Je vais partir sur cette solution.

Je laisse ce sujet ouvert au cas où je rencontrerais des problèmes, et aurais besoin de précisions.
Je le fermerai au plus tard dans 1 ou 2 jours.

Encore merci !

Please Log in or Create an account to join the conversation.

Time to create page: 0.057 seconds
Powered by Kunena Forum