Jump to content

Résolu - Trier les transporteurs suivant les points relais ou domicile


Recommended Posts

Bonjour,

je voudrais savoir s'il y a un moyen ou un module pour trier les transporteurs par livraison

Exemple, j'ai 6 transporteurs, 3 en relais, et 3 à domicile.

Mais je voudrais les distinguer.

LIVRAISON EN RELAIS

transporteur 1

transporteur 2

transporteur 3

---------------

LIVRAISON A DOMICILE

transporteur 1

transporteur 2

transporteur 3

Merci pour votre aide.

Edited by Manu-41
ok (see edit history)
Link to comment
Share on other sites

Je comprends pour le tri.

J'aurais voulu ajouter un texte avant chaque liste. Comme dans mon exemple :

LIVRAISON EN RELAIS

transporteur 1

transporteur 2

transporteur 3

---------------

LIVRAISON A DOMICILE

transporteur 1

transporteur 2

transporteur 3

 

Link to comment
Share on other sites

Voici le code dans mon tpl

{foreach from=$delivery_options item=carrier key=carrier_id}
              <div class="delivery-option pb-2 mb-2 border-bottom">
                <div class="custom-control custom-radio">
                  <input class="custom-control-input" type="radio" name="delivery_option[{$id_address}]" id="delivery_option_{$carrier.id}" value="{$carrier_id}" {if $delivery_option == $carrier_id}checked{/if}>				  
                  <label class="custom-control-label d-block d-sm-flex justify-content-between align-items-center" for="delivery_option_{$carrier.id}">				  {*<div style="position: absolute;"><img class="hidden" src="{$urls.img_url}ship/{$carrier.id}.jpg" /></div>*}
                    <div class="d-flex flex-column" {*style="margin-left: 4rem;"*}>
                      <span class="text-dark font-size-md font-weight-medium">{$carrier.name}</span>
                      <span class="text-muted carrier-delay">{$carrier.delay}</span>
                    </div>
                    <span class="text-accent font-size-md">
                        {if !$display_taxe_label}
                            {str_replace("TTC", "HT", $carrier.price)}
                        {else}
                            {$carrier.price}
                        {/if}
                    </span>
                  </label>
                </div>
                {if $carrier.extraContent}
                  <div class="carrier-extra-content js-carrier-extra-content" {if $delivery_option != $carrier_id}style="display: none;"{/if}>
                    {$carrier.extraContent nofilter}
                  </div>
                {/if}
              </div>
            {/foreach}

 

est-ce que je suis sur le bon chemin ? 1, 2 ,3 étant mes transporteurs

{foreach from=$delivery_options item=carrier key=carrier_id}
{if $delivery_option && ($carrier.id == 1 || $carrier.id == 2 || $carrier.id == 3)}

Merci pour votre aide

Edited by Manu-41
ok (see edit history)
Link to comment
Share on other sites

5 hours ago, Eolia said:

Ben là il faudra aller mettre les mains dans le code du tpl dans la boucle {foreach} qui gère l'affichage des deliveryOptionList.

J'ai poursuivi mes recherches, et ca fonctionne

{foreach from=$delivery_options item=carrier key=carrier_id}
{if $delivery_option && ($carrier.id == 282 || $carrier.id == 284 || $carrier.id == 283 )}
<div class="delivery-option pb-2 mb-2 border-bottom hidden">
                <div class="custom-control custom-radio">
                  <input class="custom-control-input" type="radio" name="delivery_option[{$id_address}]" id="delivery_option_{$carrier.id}" value="{$carrier_id}" {if $delivery_option == $carrier_id}checked{/if}>				  
                  <label class="custom-control-label d-block d-sm-flex justify-content-between align-items-center" for="delivery_option_{$carrier.id}">				  {*<div style="position: absolute;"><img class="hidden" src="{$urls.img_url}ship/{$carrier.id}.jpg" /></div>*}
                    <div class="d-flex flex-column" {*style="margin-left: 4rem;"*}>
                      <span class="text-dark font-size-md font-weight-medium">{$carrier.name}</span>
                      <span class="text-muted carrier-delay">{$carrier.delay}</span>
                    </div>
                    <span class="text-accent font-size-md">
                        {if !$display_taxe_label}
                            {str_replace("TTC", "HT", $carrier.price)}
                        {else}
                            {$carrier.price}
                        {/if}
                    </span>
                  </label>
                </div>
                {if $carrier.extraContent}
                  <div class="carrier-extra-content js-carrier-extra-content" {if $delivery_option != $carrier_id}style="display: none;"{/if}>
                    {$carrier.extraContent nofilter}
                  </div>
                {/if}
              </div>
     {/if}
            {/foreach}

J'ai collé 2 fois ce code en modifiant les autres id de transporteur.

Mais, oui il en faut bien un, quand on sélectionne un mode de livraison en relais par exemple, le curseur reste sélectionné, et pas possible de sélectionner un autre transporteur, normalement pour la livraison à domicile.

Ai-je oublié quelque chose?

Link to comment
Share on other sites

J'avance, mais là, je cale. Une aide serait la bienvenue

voici où j'en suis :

{foreach from=$delivery_options item=carrier key=carrier_id}
{if $delivery_option && ($carrier.id == 282 || $carrier.id == 283 || $carrier.id == 284 )}
	<div class='order-1">Mes infos pour chaque transporteurs point relais</div>
{/if}

{if $delivery_option && ($carrier.id == 270 || $carrier.id == 277 || $carrier.id == 233 )}
            <div class='order-2">Mes infos pour chaque transporteurs domicile</div>
{/if}
{/foreach

En ajoutant une classe CSS avec order, mes listes de transporteurs s'affichent bien dans l'ordre voulu.

Là où le problème se pose, c'est que j'ai besoin d'ajouter un texte devant chaque liste.

Il n'est pas possible d'ajouter un élément dans mon if, car il est dupliqué.

Merci pour votre aide toujours précieuse

Link to comment
Share on other sites

14 minutes ago, Mediacom87 said:

il faut passer par un compteur qui s'incrémente à chaque transporteur puis qu'on réinitialise lorsque l'on passe à un autre groupe de transporteur ou sinon il faut créer deux tableaux de transporteurs puis les afficher l'un après l'autre.

j'avais testé avec 2 foreach, mais ça posait souci, car impossible de saisir un transporteur.

 

J'ai retesté, et voici le résultat :

Il me reste à regarder comment cacher le titre si il n'y a pas de transporteur dans ce groupe

une idée ?

livraisonCapture.PNG

  • Like 1
Link to comment
Share on other sites

Pour afficher le nom du groupe (En point relais par exemple) si seulement les transporteurs sont disponibles,

 j'ai testé avec

{if $delivery_option && ($carrier.id == 282 || $carrier.id == 283 || $carrier.id == 284 || $carrier.id == 264)}	
En point relais{/if}

mais rien ne s'affiche.

J'ai aussi testé avec ca:

{foreach from=$delivery_options item=carrier key=carrier_id}
		  {if $delivery_option && ($carrier.id == 282 || $carrier.id == 283 || $carrier.id == 284 || $carrier.id == 264)}	
<span class="hidden">En point relais</span> {/if}
  {/foreach}

mais ça affiche 3 fois En point relais.

Une idée?

Edited by Manu-41
ok (see edit history)
Link to comment
Share on other sites

6 hours ago, Mediacom87 said:

il faut passer par un compteur qui s'incrémente à chaque transporteur puis qu'on réinitialise lorsque l'on passe à un autre groupe de transporteur ou sinon il faut créer deux tableaux de transporteurs puis les afficher l'un après l'autre.

j'ia beau chercher, je ne trouve pas la solution pour afficher mon texte uniquement s'il y a l'un des transporteurs.

Car s'il n'y a pas de transporteur dans mon groupe, le texte reste affiché.

Link to comment
Share on other sites

8 hours ago, Eolia said:

C'est quoi votre tpl d'origine ?

 

le TPL d'origine

 <div class="delivery-options-list">
    {if $delivery_options|count}
      <form id="js-delivery" method="post" data-url-update="{url entity='order' params=['ajax' => 1, 'action' => 'selectDeliveryOption']}">
        {block name='delivery_options'}
          <div class="delivery-options mb-4 row">
	
            {foreach from=$delivery_options item=carrier key=carrier_id}
		
              <div class="delivery-option pb-2 mb-2 border-bottom" style="width: 100%;padding-left: 15px;">
                <div class="custom-control custom-radio">
                  <input class="custom-control-input" type="radio" name="delivery_option[{$id_address}]" id="delivery_option_{$carrier.id}" value="{$carrier_id}" {if $delivery_option == $carrier_id}checked{/if}>				  
                  <label class="custom-control-label d-block d-sm-flex justify-content-between align-items-center" for="delivery_option_{$carrier.id}">		
                    <div class="d-flex flex-column" {*style="margin-left: 4rem;"*}>
                      <span class="text-dark font-size-md font-weight-medium">{$carrier.name}</span>
                      <span class="text-muted carrier-delay">{$carrier.delay}</span>
                    </div>
                    <span class="text-accent font-size-md">
                        {if !$display_taxe_label}
                            {str_replace("TTC", "HT", $carrier.price)}
                        {else}
                            {$carrier.price}
                        {/if}
                    </span>
                  </label>
                </div>
                {if $carrier.extraContent}
                  <div class="carrier-extra-content js-carrier-extra-content" {if $delivery_option != $carrier_id}style="display: none;"{/if}>
                    {$carrier.extraContent nofilter}
                  </div>
                {/if}
              </div>
          
  {/foreach}

          </div>
        {/block}

        {block name='order_options'}
          <div class="order-options mb-4">
            {if $gift.allowed}
		<div style="display: inline-flex;">	
			<div class="mr-3"><i style="font-size: 1.6rem !important;" class="czi-gift"></i></div>
              <div class="custom-control custom-checkbox">
                <input class="custom-control-input js-gift-checkbox" type="checkbox" name="gift" id="input_gift" value="1" {if $gift.isGift}checked{/if}>
                <label class="custom-control-label" for="input_gift">Emballage cadeau <span style="font-size: .8rem;">(+ 2.40€ ){*$gift.label*}</span></label>
				<span style="font-size: .75rem;color: #777; display: inline-flex;">Vos articles seront emballés séparément</span>
              </div>
              <div class="{*collapse pt-1 pb-3*}{if $gift.isGift} {*show*}{/if}" id="gift">
                <textarea class="form-control hidden" name="gift_message" id="gift_message" placeholder="{l s='Add a note to the gift' d='Shop.Theme.Checkout'}" rows="2">{$gift.message}</textarea>
              </div>
		</div>	  
            {/if}
            {if $recyclablePackAllowed}
              <div class="custom-control custom-checkbox">
                <input class="custom-control-input" type="checkbox" name="recyclable" id="input_recyclable" value="1" {if $recyclable}checked{/if}>
                <label class="custom-control-label" for="input_recyclable">{l s='I would like to receive my order in recycled packaging.' d='Shop.Theme.Checkout'}</label>
              </div>
            {/if}
            <textarea class="form-control" name="delivery_message" id="delivery_message" placeholder="{l s='Add a comment about your order' d='Shop.Theme.Checkout'}" rows="2">{$delivery_message}</textarea>
          </div>
        {/block}
        
        <button class="continue btn btn-primary" type="submit" name="confirmDeliveryOption" value="1">Valider la livraison{*l s='Continue' d='Shop.Theme.Actions'*}</button>
      </form>
    {else}
      <p class="alert alert-danger">{l s='Unfortunately, there are no carriers available for your delivery address.' d='Shop.Theme.Checkout'}</p>
    {/if}
  </div>

  <div id="hook-display-after-carrier">
    {$hookDisplayAfterCarrier nofilter}
  </div>

  <div id="extra_carrier"></div>

 

Link to comment
Share on other sites

Donc comme ça, ça devrait le faire!

<div class="delivery-options-list">
    {if $delivery_options|count}
      <form id="js-delivery" method="post" data-url-update="{url entity='order' params=['ajax' => 1, 'action' => 'selectDeliveryOption']}">
        {block name='delivery_options'}		
		{assign var="order-1" value="0"} 
		{assign var="order-2" value="0"} 
          <div class="delivery-options mb-4 row">	
            {foreach from=$delivery_options item=carrier key=carrier_id}
		{if $order-1 == 0 && in_array($carrier.id, array(282, 283, 284))}
		<div class='order-1">Mes infos pour chaque transporteurs point relais</div>
		{assign var="order-1" value="1"} 
		{/if}
		{if $order-2 == 0 &&  in_array($carrier.id, array(233, 270, 277))}
		<div class='order-2">Mes infos pour chaque transporteurs domicile</div>
		{assign var="order-2" value="1"} 
		{/if}		
              <div class="delivery-option pb-2 mb-2 border-bottom" style="width: 100%;padding-left: 15px;">
                <div class="custom-control custom-radio">
                  <input class="custom-control-input" type="radio" name="delivery_option[{$id_address}]" id="delivery_option_{$carrier.id}" value="{$carrier_id}" {if $delivery_option == $carrier_id}checked{/if}>				  
                  <label class="custom-control-label d-block d-sm-flex justify-content-between align-items-center" for="delivery_option_{$carrier.id}">		
                    <div class="d-flex flex-column" {*style="margin-left: 4rem;"*}>
                      <span class="text-dark font-size-md font-weight-medium">{$carrier.name}</span>
                      <span class="text-muted carrier-delay">{$carrier.delay}</span>
                    </div>
                    <span class="text-accent font-size-md">
                        {if !$display_taxe_label}
                            {str_replace("TTC", "HT", $carrier.price)}
                        {else}
                            {$carrier.price}
                        {/if}
                    </span>
                  </label>
                </div>
                {if $carrier.extraContent}
                  <div class="carrier-extra-content js-carrier-extra-content" {if $delivery_option != $carrier_id}style="display: none;"{/if}>
                    {$carrier.extraContent nofilter}
                  </div>
                {/if}
              </div>        
	{/foreach}
			...

On assigne les 2 variables à 0.

Si un des transporteurs voulu existe et que la variable est à 0 on ajoute le titre et on incrémente la variable à 1, sinon on ne fait rien.

Link to comment
Share on other sites

Merci Eolia pour ton aide.

J'ai testé, mais rien ne s'affiche.

{assign var="order-1" value="0"} 
		{assign var="order-2" value="0"} 
          <div class="delivery-options mb-4 row">	
            {foreach from=$delivery_options item=carrier key=carrier_id}
		{if $order-1 == 0 && in_array($carrier.id, array(282, 283, 284))}
		<div class='order-1">Mes infos pour chaque transporteurs point relais</div>
		{assign var="order-1" value="1"} 
		{/if}
		{if $order-2 == 0 &&  in_array($carrier.id, array(233, 270, 277))}
		<div class='order-2">Mes infos pour chaque transporteurs domicile</div>
		{assign var="order-2" value="1"} 
		{/if}		
              

Notamment, ça devrait renvoyer la phrase

if $order-1 == 0 && in_array($carrier.id, array(282, 283, 284))}
		<div class='order-1">Mes infos pour chaque transporteurs point relais</div>
		{assign var="order-1" value="1"} 
		{/if}

mais ça n'affiche rien

Link to comment
Share on other sites

il doit donner 0 ou 1 mais si vous avez remis celui d'origine rien ne va s'afficher car cette variable n'existe pas

Moi je l'avais assigné avant la boucle, pour démarrer à 0

{assign var="order-1" value="0"} 
{assign var="order-2" value="0"} 

 

Link to comment
Share on other sites

Il n'y a aucun changement, ni ordre, ni texte.

Voici ce que j'ai testé avec le fichier d'origine

    {if $delivery_options|count}
      <form id="js-delivery" method="post" data-url-update="{url entity='order' params=['ajax' => 1, 'action' => 'selectDeliveryOption']}">
        {block name='delivery_options'}
		
{assign var="order-1" value="0"} 
		{assign var="order-2" value="0"} 	
		
          <div class="delivery-options mb-4 row">
		 
    {foreach from=$delivery_options item=carrier key=carrier_id}
		
		{if $order-1 == 0 && in_array($carrier.id, array(282, 283, 284, 264))}
		<div class='order-1">Mes infos pour chaque transporteurs point relais</div>
		{assign var="order-1" value="1"} 
		{/if}
		{if $order-2 == 0 &&  in_array($carrier.id, array(270, 277, 263 , 266))}
		<div class='order-2">Mes infos pour chaque transporteurs domicile</div>
		{assign var="order-2" value="1"} 
		{/if}		
              
              <div class="delivery-option pb-2 mb-2 border-bottom" style="width: 100%;padding-left: 15px;">
                <div class="custom-control custom-radio">
                  <input class="custom-control-input" type="radio" name="delivery_option[{$id_address}]" id="delivery_option_{$carrier.id}" value="{$carrier_id}" {if $delivery_option == $carrier_id}checked{/if}>				  
                  <label class="custom-control-label d-block d-sm-flex justify-content-between align-items-center" for="delivery_option_{$carrier.id}">				  {*<div style="position: absolute;"><img class="hidden" src="{$urls.img_url}ship/{$carrier.id}.jpg" /></div>*}
                    <div class="d-flex flex-column" {*style="margin-left: 4rem;"*}>
                      <span class="text-dark font-size-md font-weight-medium">{$carrier.name}</span>
                      <span class="text-muted carrier-delay">{$carrier.delay}</span>
                    </div>
                    <span class="text-accent font-size-md">
                        {if !$display_taxe_label}
                            {str_replace("TTC", "HT", $carrier.price)}
                        {else}
                            {$carrier.price}
                        {/if}
                    </span>
                  </label>
                </div>
                {if $carrier.extraContent}
                  <div class="carrier-extra-content js-carrier-extra-content" {if $delivery_option != $carrier_id}style="display: none;"{/if}>
                    {$carrier.extraContent nofilter}
                  </div>
                {/if}
              </div>
          
  {/foreach}

et j'ai testé aussi avec le dernier fichier que j'ai fait, celui ou j'ai juste le problème de titre si pas de transporteur dans le groupe

 {if $delivery_options|count}
      <form id="js-delivery" method="post" data-url-update="{url entity='order' params=['ajax' => 1, 'action' => 'selectDeliveryOption']}">
        {block name='delivery_options'}
		
		{assign var="order-1" value="0"} 
{assign var="order-2" value="0"} 
		
          <div class="delivery-options mb-4 row">
		  <div style="width: 100%;background: #f7f7f7;text-align: center;padding-top: 1rem;border-radius: 5px;margin-bottom: 1rem;"><p style="font-weight: 500;"><i class="czi-location pr-2" style="font-size: 1.1rem;color: #e76136;"></i>En point relais</p></div>
            {foreach from=$delivery_options item=carrier key=carrier_id}
			
			{if $order-1 == 0 && in_array($carrier.id, array(282, 283, 284, 264))}
		<div class='order-1">Mes infos pour chaque transporteurs point relais</div>
		{assign var="order-1" value="1"} 
		{/if}
		
		{if $delivery_option && ($carrier.id == 282 || $carrier.id == 283 || $carrier.id == 284 || $carrier.id == 264)}	
              <div class="delivery-option pb-2 mb-2 border-bottom" style="width: 100%;padding-left: 15px;">
                <div class="custom-control custom-radio">
                  <input class="custom-control-input" type="radio" name="delivery_option[{$id_address}]" id="delivery_option_{$carrier.id}" value="{$carrier_id}" {if $delivery_option == $carrier_id}checked{/if}>				  
                  <label class="custom-control-label d-block d-sm-flex justify-content-between align-items-center" for="delivery_option_{$carrier.id}">				  {*<div style="position: absolute;"><img class="hidden" src="{$urls.img_url}ship/{$carrier.id}.jpg" /></div>*}
                    <div class="d-flex flex-column" {*style="margin-left: 4rem;"*}>
                      <span class="text-dark font-size-md font-weight-medium">{$carrier.name}</span>
                      <span class="text-muted carrier-delay">{$carrier.delay}</span>
                    </div>
                    <span class="text-accent font-size-md">
                        {if !$display_taxe_label}
                            {str_replace("TTC", "HT", $carrier.price)}
                        {else}
                            {$carrier.price}
                        {/if}
                    </span>
                  </label>
                </div>
                {if $carrier.extraContent}
                  <div class="carrier-extra-content js-carrier-extra-content" {if $delivery_option != $carrier_id}style="display: none;"{/if}>
                    {$carrier.extraContent nofilter}
                  </div>
                {/if}
              </div>
           {/if}  
  {/foreach}
 <div style="width: 100%;background: #f7f7f7;text-align: center;padding-top: 1rem;border-radius: 5px;margin-bottom: 1rem;"><p style="font-weight: 500;"><i class="czi-home pr-2" style="font-size: 1.1rem;color: #e76136;"></i>A domicile</p></div>
  {foreach from=$delivery_options item=carrier key=carrier_id}
                    {if $order-2 == 0 &&  in_array($carrier.id, array(263, 270, 277, 266))}
		<div class='order-2">Mes infos pour chaque transporteurs domicile</div>
		{assign var="order-2" value="1"} 
		{/if}		
              
		{if $delivery_option && ($carrier.id == 270 || $carrier.id == 277 || $carrier.id == 263 || $carrier.id == 266)}	
              <div class="delivery-option pb-2 mb-2 border-bottom" style="width: 100%;padding-left: 15px;">
                <div class="custom-control custom-radio">
                  <input class="custom-control-input" type="radio" name="delivery_option[{$id_address}]" id="delivery_option_{$carrier.id}" value="{$carrier_id}" {if $delivery_option == $carrier_id}checked{/if}>				  
                  <label class="custom-control-label d-block d-sm-flex justify-content-between align-items-center" for="delivery_option_{$carrier.id}">				  {*<div style="position: absolute;"><img class="hidden" src="{$urls.img_url}ship/{$carrier.id}.jpg" /></div>*}
                    <div class="d-flex flex-column" {*style="margin-left: 4rem;"*}>
                      <span class="text-dark font-size-md font-weight-medium">{$carrier.name}</span>
                      <span class="text-muted carrier-delay">{$carrier.delay}</span>
                    </div>
                    <span class="text-accent font-size-md">
                        {if !$display_taxe_label}
                            {str_replace("TTC", "HT", $carrier.price)}
                        {else}
                            {$carrier.price}
                        {/if}
                    </span>
                  </label>
                </div>
                {if $carrier.extraContent}
                  <div class="carrier-extra-content js-carrier-extra-content" {if $delivery_option != $carrier_id}style="display: none;"{/if}>
                    {$carrier.extraContent nofilter}
                  </div>
                {/if}
              </div>
           {/if}      
		   
		   
		   {/foreach}
          </div>
        {/block}

mais rien ne change aussi

Link to comment
Share on other sites

 {$order-1} seul, il n'y en as pas.

J'ai confondu avec

{foreach from=$delivery_options item=carrier key=carrier_id}
		
		{if $order-1 == 0 && in_array($carrier.id, array(282, 283, 284, 264))}
		<div class='order-1">Mes infos pour chaque transporteurs point relais</div>
		{assign var="order-1" value="1"} 
		{/if}
		{if $order-2 == 0 &&  in_array($carrier.id, array(270, 277, 263 , 266))}
		<div class='order-2">Mes infos pour chaque transporteurs domicile</div>
		{assign var="order-2" value="1"} 
		{/if}		

 

Link to comment
Share on other sites

ok, donc vous l'ajoutez comme ceci:

{foreach from=$delivery_options item=carrier key=carrier_id}
		{$order-1}
		{if $order-1 == 0 && in_array($carrier.id, array(282, 283, 284, 264))}
		<div class='order-1">Mes infos pour chaque transporteurs point relais</div>
		{assign var="order-1" value="1"} 
		{/if}
		{if $order-2 == 0 &&  in_array($carrier.id, array(270, 277, 263 , 266))}
		<div class='order-2">Mes infos pour chaque transporteurs domicile</div>
		{assign var="order-2" value="1"} 
		{/if}	

Et regardez si quelque chose s'affiche.

Normalement vous devriez avoir 0 1 1 1

Link to comment
Share on other sites

Il y a du changement, ça m'a enlevé des transporteurs (relais et domicile)

voici ce que j'ai mis :

{block name='delivery_options'}
		
		{assign var="order_1" value="0"} 
		{assign var="order_2" value="0"} 	
		
          <div class="delivery-options mb-4 row">
		  
            {foreach from=$delivery_options item=carrier key=carrier_id}
			
			{$order_1}
		{if $order_1 == 0 && in_array($carrier.id, array(282, 283, 284, 264))}
		<div class='order-1">Mes infos pour chaque transporteurs point relais</div>
		{assign var="order_1" value="1"} 
		{/if}
		{if $order_2 == 0 &&  in_array($carrier.id, array(270, 277, 263 , 266))}
		<div class='order-2">Mes infos pour chaque transporteurs domicile</div>
		{assign var="order-2" value="1"} 
		{/if}	
		
		
		
              <div class="delivery-option pb-2 mb-2 border-bottom" style="width: 100%;padding-left: 15px;">

j'ai dû faire un loupé?

Link to comment
Share on other sites

Euh... le code ne fait qu'afficher ou pas les phrases, il ne touche pas aux transporteurs.

Cependant, 2 remarques:

- Vous avez loupé celui-là: {assign var="order-2" value="1"}

- Et si vous modifiez vos transporteurs, les id ne seront plus bon.

En général on se base sur l'id_reference du transporteur, qui elle ne change jamais

Link to comment
Share on other sites

Ha, j'ai enfin réussi, ca fonctionne.

Tu m'avais demandé le fichier d'origine. Je m'étais donc basé dessus.

J'ai repris le fichier que j'ai modifié, et ça fonctionne. Le texte se cache s'il n'y a pas de transporteurs.

J'ai aussi regardé pour utiliser l'id_reference du transporteur, mais je ne trouve pas d'informations à ce sujet.

C'est pour cela que j'ai utilisé les id

Merci pour ton aide, toujours précieuse !

 

 

Link to comment
Share on other sites

Lorsqu'un transporteur est créé, sa référence = son id

A chaque fois qu'il est modifié, Prestashop le passe en "deleted" et le copie dans un nouveau, pour conserver la cohérence de commandes qui auraient utilisé le transporteur dans sa version précédente.

Par contre sa référence reste la même.

image.png.6e397be89bbc6b8bbdc9c3f4eed89566.pngimage.png.72e62b3ab222692b694b4045f716f9db.png

Link to comment
Share on other sites

J'ai réussi à retrouver les id références carrier et les lister.

J'ai testé avec une ligne

{if $delivery_option && ($carrier.id_reference == 229 || $carrier.id == 247|| $carrier.id == 250|| $carrier.id == 249)} 123 {/if}

Il doit avoir un souci quelque part, car ça m'affiche qu'un seul transporteur ayant l'id référence 229.

Une idée ?

Link to comment
Share on other sites

  • Manu-41 changed the title to Résolu - Trier les transporteurs suivant les points relais ou domicile

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...