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)?
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