buy-widget-form twig Fehler

Hallo , versuche die buy-widget-form zu erweitern bzw dem select Element eine Klasse zu geben. 

Leider nicht ohne Fehlermeldung

An exception has been thrown during the rendering of a template („Warning: range(): step exceeds the specified range“).

Meine buy-widget-form.html.twig

{% sw_extends '@Storefront/storefront/page/product-detail/buy-widget-form.html.twig' %}


{% block page_product_detail_buy_quantity %}
    
        {% for quantity in range(product.minPurchase, product.calculatedMaxPurchase, product.purchaseSteps) %}
            
                {{ quantity }}{% if product.packUnit %} {{ product.packUnit }}{% endif %}
            
        {% endfor %}
    
{% endblock %}

Hab nur die Klasse selectpicker zum select Element hinzugefügt

Link zur originalen buy-widget-form.twig.html

https://github.com/shopware/platform/blob/master/src/Storefront/Resources/views/storefront/page/product-detail/buy-widget-form.html.twig

bist du im dev mode (APP_ENV=dev)?

Jap, bin ich.

Sicher dass selectpicker in name="" stehen soll?

Nein, habs auch bereits in class="" gesetzt aber ändert die Fehlermeldung nicht.

Grüße

Schau dir mal vendor\shopware\storefront\Resources\views\storefront\page\product-detail\buy-widget-form.html.twig deiner Installation (nicht github Repo) an, dort sieht der Block anders aus. Da wird vorher nämlich die Variable $maxQuantity gesetzt, ohne die vermitlich das Warning erzeugt wird.

                            {% block page_product_detail_buy_quantity %}
                                {% if page.product.maxPurchase %}
                                    {% if page.product.availableStock < page.product.maxPurchase %}
                                        {% set maxQuantity = page.product.availableStock %}
                                    {% else %}
                                        {% set maxQuantity = page.product.maxPurchase %}
                                    {% endif %}
                                {% else %}
                                    {% set maxQuantity = shopware.config.core.cart.maxQuantity %}
                                {% endif %}

                                
                                    {% for quantity in range(page.product.minPurchase, maxQuantity, page.product.purchaseSteps) %}
                                        
                                            {{ quantity }}{% if page.product.packUnit %} {{ page.product.packUnit }}{% endif %}
                                        
                                    {% endfor %}
                                
                            {% endblock %}

 

Hallo zusammen, 

ich stehe aktuell vor ähnlichem Problem. Ich möchte gerne eine unterschiedliche Mengenstaffelung für eine Netto-Preis-Kundengruppe erstellen.
Ich befinde mich in der ...storefront\page\product-detail\buy-widget-form.html.twig meines Themes. Und hole mir den min purchase (free4) und die
purchase steps (free5) aus Zusatzfeldern aus der Administration.

{% block page_product_detail_buy_quantity %}
    

        {% set distributorMinPurchase = product.translated.customFields.free4 %}
        {% set distributorPurchaseSteps = product.translated.customFields.free5 %}

        {% if context.currentCustomerGroup.displayGross == false %}
            {% for quantity in range(distributorMinPurchase, product.calculatedMaxPurchase, distributorPurchaseSteps) %}
                
                    {{ quantity }}
                    {% if quantity == 1 %}
                        {% if product.translated.packUnit %} {{ product.translated.packUnit }}{% endif %}
                    {% else %}
                        {% if product.translated.packUnitPlural %}
                            {{ product.translated.packUnitPlural }}
                        {% elseif product.translated.packUnit %}
                            {{ product.translated.packUnit }}
                        {% endif %}
                    {% endif %}
                
            {% endfor %}
        {% else %}
            {% for quantity in range(product.minPurchase, product.calculatedMaxPurchase, product.purchaseSteps) %}
                
                    {{ quantity }}
                    {% if quantity == 1 %}
                        {% if product.translated.packUnit %} {{ product.translated.packUnit }}{% endif %}
                    {% else %}
                        {% if product.translated.packUnitPlural %}
                            {{ product.translated.packUnitPlural }}
                        {% elseif product.translated.packUnit %}
                            {{ product.translated.packUnit }}
                        {% endif %}
                    {% endif %}
                
            {% endfor %}
        {% endif %}
    
{% endblock %}

In free4 und free5 ist jeweils die integer 25 übergeben. Somit erwarte ich eine Mengenstaffelung von 25, 50, 75, 100… maxPurchase.
Dies ist jedoch nur der Fall wenn ich:

{% set distributorPurchaseSteps = 25 %}

hardcodiert setze. Er kommt also einfach nicht mit dem Zusatzfeld klar. Ich habe auch schon unterschiedliche Zusatzfelder angelegt jedoch bekomme ich
immer wieder den Fehler:

An exception has been thrown during the rendering of a template („Warning: range(): step exceeds the specified range“).

in der Produktdetailseite. Hat jemand eine Idee, an was das liegen könnte?

Viele Grüße!

Sieht für mich nach dem falschen Datentyp aus. Ich denke die Variable wird als String interpretiert, schau mal hier nach einer Konvertierung in einen Int

https://twig.symfony.com/doc/2.x/filters/format_number.html