mturokmturok MemberComments: 43 Received thanks: 1 Member since: June 2011 edited January 2016
Hallo Leute

Ich stehe vor einem kleinen Problem.
Der Shop ist ja so aufgebaut, dass beim Mengeneigabefeld ein dropDown Menue aufgeht. Da ich aber einige Artikel in kleinen (nur bis 100 Stk)und andere in großen Stückzahlen (bis zu 5000 Stk) vertreibe benötige ich das Feld als Eingabefeld.

Hat einer ne Idee, wie man das ändern kann?

Gruß

mturok

Comments

  • skatesandhockeyskatesandhockey MemberComments: 106 Received thanks: 7 Member since: May 2011
  • mturokmturok MemberComments: 43 Received thanks: 1 Member since: June 2011
    Hallo skatesandhockey

    ja, die Frage wurde schon mal gestellt, aber leider nicht beantwortet.

    Gruß

    mturok
  • technikexperttechnikexpert MemberComments: 118 Received thanks: 9 Member since: March 2011
    in templates/_default/frontend/detail/buy.tpl
    <select id="sQuantity" name="sQuantity">
    							{section name="i" start=$sArticle.minpurchase loop=$maxQuantity step=$sArticle.purchasesteps}
    								<option value="{$smarty.section.i.index}">{$smarty.section.i.index}{if $sArticle.packunit} {$sArticle.packunit}{/if}</option>
    							{/section}
    						</select>
    
    in
    <input id="sQuantity" type="text" name="sQuantity" value="1">1</input>
    
    oder ähnlich

    aber auch in folgende Datei muss was geändert werden.

    templates/_default/frontend/checkout/cart_item.tpl

    Aktuelle Menge in Warenkorb ist $sBasketItem.quantity. Diese Variable kommt als value-Wert in input tag
  • mturokmturok MemberComments: 43 Received thanks: 1 Member since: June 2011
    Hallo technikexpert

    Klappt nicht so ganz.

    Die Felder erscheinen zwar. Die anzahl wird auch in den Warenkorb übergeben, aber wenn man im Warenkorb die Menge ändert, wird der Korb nicht aktualisiert, bzw die Änderung wird nicht übernommen, wenn man weiter zur Kasse geht.

    Evtl mache ich aber auch was falsch.
    Habe folgender Code
    {if $sBasketItem.modus == 0}
    				<select name="sQuantity" class="auto_submit">
    				{section name="i" start=$sBasketItem.minpurchase loop=$sBasketItem.maxpurchase+1 step=$sBasketItem.purchasesteps}
    					<option value="{$smarty.section.i.index}" {if $smarty.section.i.index==$sBasketItem.quantity}selected="selected"{/if}>
    							{$smarty.section.i.index} 
    					</option>
    				{/section}
    				</select>
    				<input type="hidden" name="sArticle" value="{$sBasketItem.id}" />
    			{else}
    				 
    			{/if}
    
    durch folgenden ersetzt
    <input class="grid_1" id="sQuantity" type="text" name="sQuantity" value="{$sBasketItem.quantity}"></input>
    
    Gruß

    mturok
  • technikexperttechnikexpert MemberComments: 118 Received thanks: 9 Member since: March 2011
    Pobieren Sie bitte mal so
    <input id="sQuantity" type="text" name="sQuantity" value="{$sBasketItem.quantity}" class="auto_submit">{$sBasketItem.quantity}</input>
    
    in templates/_default/frontend/checkout/cart_item.tpl
  • mturokmturok MemberComments: 43 Received thanks: 1 Member since: June 2011
    Hallo technikexpert

    Geht leider auch nicht.
    wenn ich
    <input id="sQuantity" type="text" name="sQuantity" value="{$sBasketItem.quantity}" class="auto_submit">{$sBasketItem.quantity}</input>
    
    einfüge, steht hinter dem Eingabefeld nochmal die die Artikelmenge. Diese wird aber beim ändern nicht übergeben.
    Wenn ich den Code so ändere, habe das ">" ans Ende verschoben
    <input id="sQuantity" type="text" name="sQuantity" value="{$sBasketItem.quantity}" class="auto_submit" {$sBasketItem.quantity}></input>
    
    verschwindet die Zahl hinter dem Eingabefeld, aber die Artikelmenge wird beim ändern auch nicht übergeben, bzw aktualisiert.
  • technikexperttechnikexpert MemberComments: 118 Received thanks: 9 Member since: March 2011
    also ich habe jetzt geprüft.
    Es muss so aussehen
    {* Article amount *}
    		{block name='frontend_checkout_cart_item_quantity'}
    		<div class="grid_1">
    			{if $sBasketItem.modus == 0}
    				<input id="sQuantity" type="text" name="sQuantity" value="{$sBasketItem.quantity}" class="auto_submit"></input>
    				
    				<input type="hidden" name="sArticle" value="{$sBasketItem.id}" />
    			{else}
    				 
    			{/if}
    		</div>
    		{/block}
    
    Eingabefeld ist ein bißchen zu lang. Bitte mit style korrigieren. Und natürlich besser nicht direkt in templates\_default\frontend\checkout\cart_item.tpl ändern, sondern über Template-Vererbung.
    http://wiki.shopware.de/Templatedokumen ... ererbungen
  • mturokmturok MemberComments: 43 Received thanks: 1 Member since: June 2011
    Hallo technikexpert

    Das sieht schon sehr gut aus, aber vielleicht krigst du ja noch eine Sache hin.

    z.Zt. ist es so, dass wenn man die Anzahl verändert und irgendwo in die Seite klickt, wird die Anzahl und der preis aktualisiert. wenn man direkt auf "zur Kasse" klickt, aktualisiert die Seite auch, geht aber noch nicht zur Kasse. Erst bei nochmaligem klicken auf "zur Kasse"

    Kann man das hinbekommen, dass man mit einem klick auf "zur Kasse" weitergeleitet wird?

    Gruß

    mturok
  • technikexperttechnikexpert MemberComments: 118 Received thanks: 9 Member since: March 2011
    Es ist leider nicht möglich. Einzelne Möglichkeit ist noch ein Button "Aktualisieren" einbauen.
  • fgitsfgits MemberComments: 41 Received thanks: 2 Member since: March 2013
    Für Shopware 5 funktioniert es so ganz gut:
    {block name='frontend_detail_buy_quantity_select'}
    	{*<select id="sQuantity" name="sQuantity" class="quantity--select">
    		{section name="i" start=$sArticle.minpurchase loop=$maxQuantity step=$sArticle.purchasesteps}
    			<option value="{$smarty.section.i.index}">{$smarty.section.i.index}{if $sArticle.packunit} {$sArticle.packunit}{/if}</option>
    		{/section}
    	</select>*}
    	<input id="sQuantity" type="text" name="sQuantity" class="quantity--select" style="max-width:100%;" placeholder="Anzahl: 1" />
    {/block}
    
    Thanked by 1sportversand
  • sportversandsportversand MemberComments: 222 Received thanks: 3 Member since: September 2014
    Wo genau muss das hin?
    Danke für den Post. So lob ich mir ein Forum!

    Gruß Mario
  • sportversandsportversand MemberComments: 222 Received thanks: 3 Member since: September 2014
    Hallo,

    ich finde es nicht.
    Wie kriege ich das Mengenfeld updatesicher geändert in Shopware 5?

    Gruß Mario
  • dreckindreckin MemberComments: 9 Received thanks: 0 Member since: July 2015
    Hallo,

    ich finde es nicht.
    Wie kriege ich das Mengenfeld updatesicher geändert in Shopware 5?

    Gruß Mario
    Hi Mario,
    um das Eingabefeld auf Artikelseite zu ändern, muss du hier :
    .../shopware/themes/Frontend/Dein Theme/frontend/detail/buy.tpl code korregieren.

    für Warenkorb habe noch nicht gemacht, aber ich glaube muss hier geändert werden:
    .../shopware/themes/Frontend/Dein Theme/frontend/checkout/cart_item.tpl

    Gruß
  • useguseg MemberComments: 2235 Received thanks: 536 Member since: January 2013
    fgits wrote:
    Für Shopware 5 funktioniert es so ganz gut:
    {block name='frontend_detail_buy_quantity_select'}
    	{*<select id="sQuantity" name="sQuantity" class="quantity--select">
    		{section name="i" start=$sArticle.minpurchase loop=$maxQuantity step=$sArticle.purchasesteps}
    			<option value="{$smarty.section.i.index}">{$smarty.section.i.index}{if $sArticle.packunit} {$sArticle.packunit}{/if}</option>
    		{/section}
    	</select>*}
    	<input id="sQuantity" type="text" name="sQuantity" class="quantity--select" style="max-width:100%;" placeholder="Anzahl: 1" />
    {/block}
    

    Was Passiert eigentlich wenn nur noch eine begrenzte Stückzahl auf Lager ist(Abverkauf)

    Im Auswahlfeld hatte man dann die Möglichkeit nur die Artikelmenge auszuwählen die auf Lager sind.
    Beim Eingabefeld kann man ja einen höheren Wert eingeben und in der Warenkorb legen.

    Und eine Abfrage einzubauen das bei Abverkauf das Auswahlfeld angezeigt wird und bei anderen Artikeln das Mengeneingabefeld finde ich auch nicht so optimal.
  • sonicsonic MemberComments: 2123 Received thanks: 596 Member since: January 2014
    Da SW5 ja auf HTML5 setzt, könnte Dir ggf. das weiterhelfen:
    http://www.w3schools.com/tags/att_input_max.asp
    Nur IE < 10 wäre wohl aussen vor.
  • useguseg MemberComments: 2235 Received thanks: 536 Member since: January 2013
    sonic wrote:
    Da SW5 ja auf HTML5 setzt, könnte Dir ggf. das weiterhelfen:
    http://www.w3schools.com/tags/att_input_max.asp
    Nur IE < 10 wäre wohl aussen vor.

    Ich muss das Thema noch mal angehen.

    Es gibt zwar schon ein Plugin in Store aber nur für die Artikelseite, der Warenkorb mit den Größeren Problemen ist dort nicht integriert.

    Ich habe es jetzt mit Hilfe eines Skripts realisiert und es funktioniert in Text eigentlich super.

    http://bootsnipp.com/snippets/featured/ ... s-in-input

    Was mir noch Schwierigkeiten bereitet ist das die ganze Sache nicht mehr funktioniert, sobald man in Shopware5.1 eine Option auswählt und man "Variaten Wechsel über AJAX:" angehagt hat.

    da müsste der Skript nachgeladen werden.

    So sieht der angepasste Skript jetzt aus.
    //plugin bootstrap minus and plus
    //http://jsfiddle.net/laelitenetwork/puJ6G/
    
    
    $('.btn-number').click(function(e){
        e.preventDefault();
        
        fieldName = $(this).attr('data-field');
        type      = $(this).attr('data-type');
        var input = $("input[name='"+fieldName+"']");
        var currentVal = parseInt(input.val());
        if (!isNaN(currentVal)) {
            if(type == 'minus') {
                
                if(currentVal > input.attr('min')) {
                    input.val(currentVal - 1).change();
                } 
                if(parseInt(input.val()) == input.attr('min')) {
                    $(this).attr('disabled', true);
                }
    
            } else if(type == 'plus') {
    
                if(currentVal < input.attr('max')) {
                    input.val(currentVal + 1).change();
                }
                if(parseInt(input.val()) == input.attr('max')) {
                    $(this).attr('disabled', true);
                }
    
            }
        } else {
            input.val(0);
        }
    });
    
    $('.input-number').focusin(function(){
       $(this).data('oldValue', $(this).val());
    });
    $('.input-number').change(function() {
        
        minValue =  parseInt($(this).attr('min'));
        maxValue =  parseInt($(this).attr('max'));
        valueCurrent = parseInt($(this).val());
        
        name = $(this).attr('name');
        if(valueCurrent >= minValue) {
            $(".btn-number[data-type='minus'][data-field='"+name+"']").removeAttr('disabled')
        } else {
            alert('Sorry, the minimum value was reached');
            $(this).val($(this).data('oldValue'));
        }
        if(valueCurrent <= maxValue) {
            $(".btn-number[data-type='plus'][data-field='"+name+"']").removeAttr('disabled')
        } else {
            alert('Sorry, the maximum value was reached');
            $(this).val($(this).data('oldValue'));
        }
        
        
    });
    $(".input-number").keydown(function (e) {
            // Allow: backspace, delete, tab, escape, enter and .
            if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 190]) !== -1 ||
                 // Allow: Ctrl+A
                (e.keyCode == 65 && e.ctrlKey === true) || 
                 // Allow: home, end, left, right
                (e.keyCode >= 35 && e.keyCode <= 39)) {
                     // let it happen, don't do anything
                     return;
            }
            // Ensure that it is a number and stop the keypress
            if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
                e.preventDefault();
            }
        });
    
  • pierre-schmitzpierre-schmitz MemberComments: 257 Received thanks: 44 Member since: September 2015
    Gibt es zu dem Thema schon eine endgültige Vorgehensweise (gern auch mal ein Kommentar von SWAG!). Das ganze Shopsystem scheint mir ansonsten für Großhandelszwecke eher ungeeignet. :thumbdown:

    Grüße
    Pierre
  • artepartep MemberComments: 3591 Received thanks: 588 Member since: July 2010
    useg wrote:
    [

    Ich muss das Thema noch mal angehen.

    Es gibt zwar schon ein Plugin in Store aber nur für die Artikelseite, der Warenkorb mit den Größeren Problemen ist dort nicht integriert.
    Gibt es auch im Plugin für den Warenkorb. Sieht auch super aus: http://store.shopware.com/scha170490582 ... erung.html
  • useguseg MemberComments: 2235 Received thanks: 536 Member since: January 2013
    artep wrote:
    Gibt es auch im Plugin für den Warenkorb. Sieht auch super aus: http://store.shopware.com/scha170490582 ... erung.html
    Hallo Petra,

    ja das ist mir nicht entgangen und durch Beiträge im Forum hat sich der Plugin-Hersteller kurzzeitig entschlossen den Warenkorb mit rein zu nehmen.
    Da der Preis ok ist muss man sich auch nicht weiter stundenlang mit der Sache beschäftigen.
  • pierre-schmitzpierre-schmitz MemberComments: 257 Received thanks: 44 Member since: September 2015
    Danke Petra,

    wenn es wirklich genau so wie beschrieben funktioniert, ist der Funktionsumfang ziemlich beeindruckend und das Plugin ist auf jeden Fall sein Geld wert. Dafür setzt man sich nicht selbst hin.

    Bin aber trotzdem verwundert, warum man für so eine (meiner Meinung nach Standard-)Funktionalität extra ein Kaufplugin braucht. Ich denke, es gibt eine aktive Entwickler-Community, warum wurde das noch in nicht in den Core eingebaut?

    Das ist absolut wichtig. Wenn ich einen Großhandelsshop machen will und ich hab Kleinkram zu verkaufen, wo auch mal 20.000 Stück in einer Bestellung drin sind, kann ich das mit dem Dropdownmenü knicken. Nicht nur, dass das Menü bei so vielen Einträgen praktisch unbedienbar wird, weil man sich einen Wolf scrollt, sondern auch, weil das Menü im Quelltext etliche 100 Kilobyte groß wird und das ganze Frontend in die Knie geht. Kann ja gern mal jemand ausprobieren.

    Wenn man das mit der hohen Flexibilität des Systems bzgl. Kundengruppen etc. in Relation setzt, passt das für mich an der Stelle nicht wirklich zusammen.

    Grüße
    Pierre
  • pierre-schmitzpierre-schmitz MemberComments: 257 Received thanks: 44 Member since: September 2015
    Hallo zusammen,

    ich wärme den Thread nochmal auf, hab das empfohlene Pluign Bestellmengenauswahl über ein Eingabefeld mit Gesamtpreisaktualisierung soeben gekauft und installiert.

    http://store.shopware.com/scha170490582 ... 0490582037

    Scheint auch soweit zu funktionieren, nur sind auch damit keine beliebig hohen Bestellmengen möglich, weil das Feld Max. auswählbare Artikelmenge in den Grundeinstellungen nach wie vor berücksichtigt wird und hier nichts eingetragen werden kann, was dem Wert "beliebig" entspricht (stimmt doch, oder?). Ein sehr hoher Wert (z.B. 10.000) wird auch ignoriert, die Bestellmenge im Frontend springt immer wieder auf 100 um.

    Der Wert 500 scheint zu funktionieren aber das ist zu wenig für mich. Ganz grober Fehler noch: Der Wert ist weder getrennt für Sprachshops definierbar noch wird der Wert vom Hauptshop vererbt. Heißt: In den weiteren Sprachshops steht in dem ausgegrauten Feld festgebacken 100 und es werden auch nur 100 akzeptiert, egal, was beim Hauptshop eingetragen ist.

    Was ist zu tun?

    Grüße
    Pierre
  • sschreiersschreier MemberComments: 3013 Received thanks: 824 Member since: August 2014
    Hallo zusammen,

    ich wärme den Thread nochmal auf, hab das empfohlene Pluign Bestellmengenauswahl über ein Eingabefeld mit Gesamtpreisaktualisierung soeben gekauft und installiert.

    http://store.shopware.com/scha170490582 ... 0490582037

    Scheint auch soweit zu funktionieren, nur sind auch damit keine beliebig hohen Bestellmengen möglich, weil das Feld Max. auswählbare Artikelmenge in den Grundeinstellungen nach wie vor berücksichtigt wird und hier nichts eingetragen werden kann, was dem Wert "beliebig" entspricht (stimmt doch, oder?). Ein sehr hoher Wert (z.B. 10.000) wird auch ignoriert, die Bestellmenge im Frontend springt immer wieder auf 100 um.

    Der Wert 500 scheint zu funktionieren aber das ist zu wenig für mich. Ganz grober Fehler noch: Der Wert ist weder getrennt für Sprachshops definierbar noch wird der Wert vom Hauptshop vererbt. Heißt: In den weiteren Sprachshops steht in dem ausgegrauten Feld festgebacken 100 und es werden auch nur 100 akzeptiert, egal, was beim Hauptshop eingetragen ist.

    Was ist zu tun?

    Grüße
    Pierre
    Hallo Pierre,

    natürlich wird wie im Shopware Standard der Wert von "Max. auswählbare Artikelmenge" berücksichtigt. Es steht auch nirgends, das man eine "beliebig hohe Menge" eintragen kann. Und da der Wert von "Max. auswählbare Artikelmenge" berücksichtigt wird und dieser auch nicht Supshopfähig ist (er steht ja schließlich in den Grundeinstellungen von Shopware), ist dies ja auch kein Fehler des Plugins.

    Ich habe selbst schon den Wert von 10.000 bei "Max. auswählbare Artikelmenge" eingetragen - funktioniert problemlos. Warum sollte da ein höherer Wert nicht funktionieren?

    Das "Zurückspringen" kann ja auch an anderen Einstellungen liegen, bspw. der "Maximalabnahme" etc.

    Sicher könnte man aber beides noch im Plugin realisieren, dass man selbst auswählen kann, ob der Wert von "Max. auswählbare Artikelmenge" berücksichtigt werden soll oder nicht (und hier Eingaben bis 1000000 oder ähnliches möglich sind). Ebenso dass man den Wert für "Max. auswählbare Artikelmenge" subshopfähig macht statt diesen in den Grundeinstellungen festzulegen.

    Beziehungsweise ist "Sprachshop" auch nicht gleich "Subshop".

    Beste Grüße

    Sebastian
  • pierre-schmitzpierre-schmitz MemberComments: 257 Received thanks: 44 Member since: September 2015
    Hallo,

    ich versteh nicht so genau, was du mir damit sagen willst.

    Was ist denn die maximal mögliche Menge, die in den Grundeinstellungen hinterlegt werden kann? Wie gesagt, der Wert 10000 wird nicht akzeptiert.

    Das Feld muss auch nicht subshopfähig sein, in dem Sinne dass für jeden Subshop getrennte Werte vergeben werden können. Wenn aber beim Hauptshop ein anderer Wert als 100 vergeben wird, sollte dieser aber doch auf alle Subshops vererbt werden. Das ist aber nicht der Fall. In den Sprachshops steht fest der Wert 100 drin, egal, was beim Hauptshop definiert ist. Das ist doch auf jeden Fall ein Fehler, es kann doch nicht gewollt sein, dass beim deutschen Shop 500 akzeptiert werden und beim holländischen nur 100.

    Maximalmengen bei den Artikeln sind nicht definiert.

    Grüße
    Pierre
  • pierre-schmitzpierre-schmitz MemberComments: 257 Received thanks: 44 Member since: September 2015
    Kommando zurück,

    es klappt doch, der Wert wird akzeptiert und vererbt. Man muss das Backend neu laden!

    Grüße
    Pierre
  • pierre-schmitzpierre-schmitz MemberComments: 257 Received thanks: 44 Member since: September 2015
    Sorry, ich muss doch nochmal nachfragen: Bei mir ist es so, dass in den Grundeinstellungen jetzt 10000 drin steht und beim Subshop ausgegraut jetzt auch.

    Im Frontend springt die Menge jedoch auf die zuvor definierten 500 zurück und die Subshops verhalten sich auch weiterhin unterschiedlich.

    Wo könnte der Wert zwischengespeichert sein? Habe schon das Theme neu kompiliert und den Cache gelöscht, leider ohne Erfolg...

    Grüße
  • sschreiersschreier MemberComments: 3013 Received thanks: 824 Member since: August 2014
    Hallo,
    Was ist denn die maximal mögliche Menge, die in den Grundeinstellungen hinterlegt werden kann? Wie gesagt, der Wert 10000 wird nicht akzeptiert.
    das müsstest du Shopware Fragen, das hat ja nichts mit dem Plugin zu tun, was man in den Grundeinstellungen von Shopware selbst als Maximalwerte eingeben kann. Ich hab selbst schon Werte von über 10000 dort eingetragen und das hat auch funktioniert.
    Kommando zurück,

    es klappt doch, der Wert wird akzeptiert und vererbt. Man muss das Backend neu laden!

    Grüße
    Pierre
    Also hat nach einer Neuanmeldung im Backend alles funktioniert?

    Von welchem Wert sprichst du eigentlich genau, wirklich von dem "Max. wählbare Artikelmenge / Artikel über Pulldown-Menü" aus den Grundeinstellungen von Shopware ("Einstellungen" -> "Grundeinstellungen" -> "Storefront" -> "Warenkorb/Artikeldetails")?

    Beste Grüße

    Sebastian
  • pierre-schmitzpierre-schmitz MemberComments: 257 Received thanks: 44 Member since: September 2015
    Hallo,

    ja genau, den Wert meine ich.

    Hab auch noch ein komisches Verhalten festgestellt: Ich hab von einem Produkt 5000 in den Warenkorb gelegt, oben rechts im kleinen Warenkorb wird die Summe auch korrekt ausgerechnet und wenn ich dann dort auf den Warenkorb klicke, sind auf der Warenkorbseite nur 500 (also der vormals definierte Maximalwert) drin mit entsprechend reduzierter Summe. Im Warenkorb kann ich aber den Wert wieder auf 5000 ändern und das akzeptiert er auch jetzt.

    Ist echt komisch. Browsercache ist auch standardmäßig aus, ich weiß echt nicht, wo er sich diese Werte herholt.
  • sschreiersschreier MemberComments: 3013 Received thanks: 824 Member since: August 2014
    Hallo,
    Sorry, ich muss doch nochmal nachfragen: Bei mir ist es so, dass in den Grundeinstellungen jetzt 10000 drin steht und beim Subshop ausgegraut jetzt auch.
    wenn das Eingabefeld bei Subshops ausgegraut ist, ist dieser Wert nicht subshopfähig - warum müsstest du dann eher Shopware fragen, da auf diesen Bereich das Plugin ja keinen Einfluss hat.
    Im Frontend springt die Menge jedoch auf die zuvor definierten 500 zurück und die Subshops verhalten sich auch weiterhin unterschiedlich.
    Am besten du sendest mir mal ein Beispiel per PN zu, ich habe hier einen Artikel, bei dem man problemlos bspw. 9999 in das Eingabefeld eingegeben kann, ohne dass das Eingabefeld zurückspringt. Der liegt dann auch überall mit der Menge von 9999 drin, auch im Warenkorb etc. Wichtig wäre sicher auch, was du genau bei dem Artikel alles für Werte hinterlegt hast.

    Seitens Shopware wird auch nur die Menge in den Warenkorb gelegt, die überhaupt möglich ist - es ist also egal ob der Nutzer 1000 eingibt, wenn nur 500 möglich sind. Dies ist ein reiner Sicherheitsmechanismus seitens Shopware.

    Beste Grüße

    Sebastian
Sign In or Register to comment.