2016-07-23 4 views
0

J'ai calculé le prix total de la commande avant que la boucle ne valide la valeur en imprimant en sortie. Mentionnés ci-dessous est le bloc de code pour le même:L'utilisation de filtres mathématiques dans shopify avec des propriétés donne 0 fonctionne bien avec des valeurs codées en dur

{% assign total_items_price = 0 %} 
    {% for line_item in line_items %} 
     {%assign total_items_price = total_items_price | plus:line_item.price %} 
    {% endfor %} 

Voici les scénarios que je l'ai mis en œuvre pour d'autres calculs:

  1. Essayer de diviser le chaque prix des articles par total_items_price, mais la sortie est 0. même si je le convertir en résultat format argent reste la même:

    {{ line_item.price | divided_by:total_items_price }} 
    {{ line_item.price | divided_by:total_items_price | money }} 
    
    1. J'ai utilisé plusieurs ple aussi les filtres de maths mais le résultat est 0:

      {{line_item.price | divisé_par: total_items_price | times: discounts_amount}} {{line_item.price | divisé_par: total_items_price | fois: remises_amount | argent}}

Les valeurs des variables/propriétés (line_item.price, total_items_price, discounts_amount) sont disponibles à l'intérieur de la boucle validée par l'impression sur l'interface utilisateur. Si j'utilise des valeurs codées en dur au lieu de propriétés/variables, la sortie est correcte. par exemple:

{{ line_item.price | divided_by:5 }} //gives the correct output 

Répondre

0

Peut-être pourriez-vous utiliser la valeur forloop.length. Comme vous n'avez aucune instruction conditionnelle dans votre boucle, une indexation manuelle n'est pas nécessaire.

HTH

0

Vous devriez essayer d'utiliser un filtre mathématique sur line_item.price.

{% assign total_items_price = 0 %} 
{% for line_item in line_items %} 
    {% assign total_items_price = total_items_price | plus: line_item.price %} 
    {{ line_item.price | times: 1.0 | divided_by: total_items_price }} 
{% endfor %} 

Notez le "temps: 1,0" filtre appliqué après line_item.price en ligne 4.