Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: TEMPLATE: Bootstrap4 für Shop 2.x - freies responsive Template

    Timm

    • Fördermitglied
    • Beiträge: 6.165
    Die Sachen stehen so oder ähnlich auch beim modified Template. Wird nicht der Grund sein. Was richtig Zeit kostet sind meist extern geladene Skripte. Zb der Amazon Pay Login kostet dich zweistellig Punkte, oder Shopvote oder Paypal Ratenzahlung auf jeder Artikelseite statt nur im Warenkorb.

    Wenn du sowas im Einsatz hast, dann musst du mal einzelne Module im Backend deaktivieren und wieder testen, bis du das Modul gefunden hast, was die meiste Zeit und Punkte frisst.

    Gruß Timm

    sb_cbo-do

    • Fördermitglied
    • Beiträge: 464
    Hallo Timm,

    danke für die schnelle Antwort.
    Diese Module sind nicht aktiv.
    Ich habe aber schon befürchtet, dass da nicht mehr viel zu optimieren ist.
    Dann bleibt in Zukunft wahrscheinlich doch nur der wechsel auf einen anderen Server, falls Google unsere Seite irgendwann
     merklich abstuft.

    Gruß,

    Sven

    Karl1

    • Experte
    • Beiträge: 1.805
    Hallo Sven,
    wie Timm schon geschrieben hat, wird sich nicht viel ändern lassen.

    Du könntest versuchen aus der bootstrap.min.css alle ungenutzten CSS-Klassen zu entfernen, ist aber meiner Ansicht nach vertane Zeit.
    Einzig Easyzoom könntest du abschalten, da viele deiner Originalproduktbilder nicht groß genug zum Zoomen sind.

    Gruß Karl

    P.S.: Gib mal bei Google "shopping" ein und analysiere mal die ganz oben stehenden Shops - an den vergebenen Punkten von PageSpeed kann's nicht liegen.

    sb_cbo-do

    • Fördermitglied
    • Beiträge: 464
    Hallo Karl,

    danke für die Antwort.
    Dann werde ich mich damit auch nicht weiter beschäftigen.
    Ich werde aber mal testen was Easyzoom deaktivieren bringt.

    Gruß,

    Sven

    derheiko

    • Fördermitglied
    • Beiträge: 465
    • Geschlecht:
    Lieber Karl1,

    ich muss leider noch mal um deinen Rat bitten.

    Ich versuche auf der Startseite die Bestseller Box anzupassen, deren Dateien ich aber nicht finde.

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Wo finde ich die dazugehörige Datei?
    Ich möchte sie so "anpassen" wie die Box  "Unsere TOP-Artikel" darüber.

    Vielen lieben Dank vorab für deine Hilfe.

    Gruß Heiko

    Karl1

    • Experte
    • Beiträge: 1.805
    Hallo Heiko,
    du suchst die Box Bestsellers - templates/bootstrap4/boxes/box_best_sellers.html.

    Gruß Karl

    derheiko

    • Fördermitglied
    • Beiträge: 465
    • Geschlecht:
    Danke für die schnelle Hilfe.
    Da war ich auch schon, aber dann muss mein vorhaben einen anderen Fehler haben :)

    Ich habe eine kleine Regel zur Anzeige der Versandzeit in der /templates/bootstrap4/module/product_info/product_info_v1.html

    Code: PHP  [Auswählen]
         
                            {if $PRODUCTS_QUANTITY >= '5.1'}
    <p>Lieferzeit: 1-3 Tage <img alt="" src="/images/gruen.jpg" /><br><br><big><span style="color: #000000;">Zur Zeit mehr als 5 St&uuml;ck auf Lager</span></big></a></p>
    {/if}      

    {if $PRODUCTS_QUANTITY <= '5' and $PRODUCTS_QUANTITY >= '5'}
    <p>Lieferzeit: 1-3 Tage  <img alt="" src="/images/gruen.jpg" /><br><br><big><span style="color: #000000;">Zur zeit 5 St&uuml;ck auf Lager</span></big></a></p>
    {/if}  

    {if $PRODUCTS_QUANTITY <= '4' and $PRODUCTS_QUANTITY >= '4'}
    <p>Lieferzeit: 1-3 Tage <img alt="" src="/images/gruen.jpg" /><br><br><big><span style="color: #000000;">Zur zeit 4 St&uuml;ck auf Lager</span></big></a></p>
    {/if}  

    {if $PRODUCTS_QUANTITY <= '3' and $PRODUCTS_QUANTITY >= '3'}
    <p>Lieferzeit: 1-3 Tage  <img alt="" src="/images/gruen.jpg" /><br><br><big><span style="color: #000000;">Zur Zeit 3 St&uuml;ck auf Lager</span></big></a></p>
    {/if}  

    {if $PRODUCTS_QUANTITY <= '2' and $PRODUCTS_QUANTITY >= '2'}
    <p>Lieferzeit: 1-3 Tage  <img alt="" src="/images/gruen.jpg" /><br><br><big><span style="color: #000000;">Zur Zeit 2 St&uuml;ck auf Lager</span></big></a></p>
    {/if}          

    {if $PRODUCTS_QUANTITY <= '1' and $PRODUCTS_QUANTITY >= '1'}
    <p>Lieferzeit: 1-3 Tage  <img alt="" src="/images/gruen.jpg" /><br><br><big><span style="color: #000000;">Zur Zeit 1 St&uuml;ck auf Lager</span></big></a></p>
    {/if}

    {if $PRODUCTS_QUANTITY <= '0'}<br>{if $SHIPPING_NAME}<p class="shippingtime"><strong>{#text_shippingtime#}</strong>{/if} {if $SHIPPING_IMAGE}<img src="{$SHIPPING_IMAGE}" alt="{$SHIPPING_NAME}" /><{/if} {$SHIPPING_NAME}</b></p>
    {/if}
     

    Für die Boxen nutze ich in der /templates/bootstrap4/module/includes/product_listing_include.html nur die Zeit anzeige.

    Code: PHP  [Auswählen]
              {if $module_data.PRODUCTS_QUANTITY >= '5'}
    <br><b>Lieferzeit: 1-3 Tage </b>
    {/if}  

    {if $module_data.PRODUCTS_QUANTITY <= '4' and $module_data.PRODUCTS_QUANTITY >= '5'}
    <br><b>Lieferzeit: 1-3 Tage </b>
    {/if}  

    {if $module_data.PRODUCTS_QUANTITY <= '4' and $module_data.PRODUCTS_QUANTITY >= '4'}
    <br><b>Lieferzeit: 1-3 Tage </b>
    {/if}  

    {if $module_data.PRODUCTS_QUANTITY <= '3' and $module_data.PRODUCTS_QUANTITY >= '3'}
    <br><b>Lieferzeit: 1-3 Tage </b>
    {/if}  

    {if $module_data.PRODUCTS_QUANTITY <= '2' and $module_data.PRODUCTS_QUANTITY >= '2'}
    <br><b>Lieferzeit: 1-3 Tage </b>
    {/if}          

    {if $module_data.PRODUCTS_QUANTITY <= '1' and $module_data.PRODUCTS_QUANTITY >= '1'}
    <br><b>Lieferzeit: 1-3 Tage </b>
    {/if}    


    {if $module_data.PRODUCTS_QUANTITY <= '0'}{if $module_data.PRODUCTS_SHIPPING_NAME}<b><br>
    {#text_shippingtime#}{if $module_data.PRODUCTS_SHIPPING_IMAGE}
    <img src="{$module_data.PRODUCTS_SHIPPING_IMAGE}" alt="{$module_data.PRODUCTS_SHIPPING_NAME}" />{/if}
                            {$module_data.PRODUCTS_SHIPPING_NAME}</b>
    {/if}{/if}
     

    Das setzt er auch in den regulären Boxen um.
    Nur bei box_last_viewed und box_best_sellers nicht.

    So sieht meine Umsetzung zum Beispiel in der box_best_sellers aus:

    Code: PHP  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="boxes"}
    {config_load file="lang_`$language`.custom"}
    {assign "dummy" ""}
    {if isset($box_content) && count($box_content) > 0}
    <div id="bs4_BsCarousel" class="bs4-carousel">
            <div class="h1 card p-2 bg-h">{#heading_best_sellers#}
                <span class="carousel-controls position-absolute invisible">
                            <a class="d-inline-block" href="#bsCarousel" data-slide="prev">
                                    {$dummy|bs4button:'button_carousel1': 'aria-hidden="true"'}
                                    <span class="sr-only">{$smarty.const.IMAGE_BUTTON_BACK}</span>
                            </a>
                            <a class="d-inline-block" href="#bsCarousel" data-slide="next">
                                    {$dummy|bs4button:'button_carousel2': 'aria-hidden="true"'}
                                    <span class="sr-only">{$smarty.const.IMAGE_BUTTON_CONTINUE}</span>
                            </a>
                </span>
            </div>
            <div id="bsCarousel" class="row carousel slide{if $smarty.const.BS4_BSCAROUSEL_FADE == 'true'} carousel-fade{/if} invisible" data-ride="carousel">
                    <div class="carousel-inner mb-2">
                    {foreach name=aussen item=box_data from=$box_content}
                            <div class="cols card mb-1">
                                    <a class="card-body pb-2 flex-fill d-flex flex-column text-center" href="{$box_data.PRODUCTS_LINK}">
                                    {if $smarty.const.BS4_FLAG_SPECIAL_SHOW == 'true' && $box_data.PRODUCTS_PRICE_ARRAY.0.PRODUCTS_PRICE_SAVE_PERCENT != ''}<div class="ribbon bg-danger text-white shadow-sm">{#BS4_special#}</div>
                                    {elseif $smarty.const.BS4_FLAG_TOP_SHOW == 'true' && $box_data.PRODUCTS_STARTPAGE == '1'}<div class="ribbon bg-primary text-white shadow-sm">{#BS4_top#}</div>
                                    {elseif $smarty.const.BS4_FLAG_NEW_SHOW == 'true' && $box_data.PRODUCTS_OLDNEW == '1'}<div class="ribbon bg-success text-white shadow-sm">{#BS4_new#}</div>{/if}
                                            <div class="lb_image w-100 mb-auto">
                                                    {if $box_data.PRODUCTS_IMAGE != ''}
                                                    <img class="img-fluid" src="{$box_data.PRODUCTS_IMAGE}" alt="{$box_data.PRODUCTS_NAME|onlytext}" />
                                                    {else}
                                                    &nbsp;
                                                    {/if}
                                            </div>
                                            <div class="lb_title lead text-secondary mt-1 mb-0">{$box_data.PRODUCTS_NAME}</div>
                                    </a>
                                    <div class="p-1 text-center">
                                            {if (isset($box_data.BS4_AWIDS_PRODUCTS_SUM_REVIEWS) && $box_data.BS4_AWIDS_PRODUCTS_SUM_REVIEWS > 0 || $smarty.const.BS4_AWIDSRATINGBREAKDOWN_SHOW_NULL_REVIEWS == 'true') && $smarty.const.BS4_AWIDSRATINGBREAKDOWN_PRODLIST == 'true'}
                                                    <div class="lb_ratings mb-2 small">
                            {if $box_data.BS4_AWIDS_PRODUCTS_SUM_REVIEWS > 0}
                                                            <a class="bs4_avg_container" href="#" data-pid="{$box_data.PRODUCTS_ID}" data-class="list" title="{$smarty.const.BS4_AWIDSRATINGBREAKDOWN_ARROW_TITLE}">
                                                                    <span class="ratings mb-1">
                                                                            <span class="fas empty-stars"></span><span class="fas full-stars" style="width:{$box_data.BS4_AWIDS_PRODUCTS_AVERAGE_PERCENT}%"></span>
                                                                    </span>&nbsp;({$box_data.BS4_AWIDS_PRODUCTS_SUM_REVIEWS})
                                                                    <i class="fas fa-chevron-down"></i>
                                                            </a>
                                                    {else}
                                                            <span class="ratings mb-1">
                                                                    <span class="fas empty-stars"></span><span class="fas full-stars" style="width:0%"></span>
                                                            </span>
                                                            <span class="text-secondary">&nbsp;(0)</span>
                                                    {/if}
                                                    </div>
                                            {/if}
                                            <div class="lb_buttons mb-2">{if $box_data.PRODUCTS_BUTTON_BUY_NOW || ($box_data.PRODUCTS_FSK18 != '0' && $smarty.const.SHOW_BUTTON_BUY_NOW != 'false')}{$box_data.PRODUCTS_BUTTON_BUY_NOW|replace:'<a':'<a aria-label="buy now"'}&nbsp;&nbsp;{/if}{if $box_data.PRODUCTS_LINK_WISHLIST_NOW}<a href="{$box_data.PRODUCTS_LINK_WISHLIST_NOW}" aria-label="{$smarty.const.TEXT_TO_WISHLIST}">{$dummy|bs4button:'button_wishlist_now'}</a>&nbsp;&nbsp;{/if}{$box_data.PRODUCTS_BUTTON_DETAILS}</div>
                                    </div>
                                    <div class="card-footer">
                                            <div class="lb_shipping small">
                                           
                                                      {if $module_data.PRODUCTS_QUANTITY >= '5'}
    <br><b>Lieferzeit: 1-3 Tage </b>
    {/if}  

    {if $module_data.PRODUCTS_QUANTITY <= '4' and $module_data.PRODUCTS_QUANTITY >= '5'}
    <br><b>Lieferzeit: 1-3 Tage </b>
    {/if}  

    {if $module_data.PRODUCTS_QUANTITY <= '4' and $module_data.PRODUCTS_QUANTITY >= '4'}
    <br><b>Lieferzeit: 1-3 Tage </b>
    {/if}  

    {if $module_data.PRODUCTS_QUANTITY <= '3' and $module_data.PRODUCTS_QUANTITY >= '3'}
    <br><b>Lieferzeit: 1-3 Tage </b>
    {/if}  

    {if $module_data.PRODUCTS_QUANTITY <= '2' and $module_data.PRODUCTS_QUANTITY >= '2'}
    <br><b>Lieferzeit: 1-3 Tage </b>
    {/if}          

    {if $module_data.PRODUCTS_QUANTITY <= '1' and $module_data.PRODUCTS_QUANTITY >= '1'}
    <br><b>Lieferzeit: 1-3 Tage </b>
    {/if}    


    {if $module_data.PRODUCTS_QUANTITY <= '0'}{if $module_data.PRODUCTS_SHIPPING_NAME}<b><br>
    {#text_shippingtime#}{if $module_data.PRODUCTS_SHIPPING_IMAGE}
    <img src="{$module_data.PRODUCTS_SHIPPING_IMAGE}" alt="{$module_data.PRODUCTS_SHIPPING_NAME}" />{/if}
                            {$module_data.PRODUCTS_SHIPPING_NAME}</b>
    {/if}{/if}

                                           
                                            </div>
                                            <div class="lb_price text-right mb-1">
                                                    {foreach name=inner item=price_data from=$box_data.PRODUCTS_PRICE_ARRAY}
                                                            {include file="module/includes/price_box.html"}
                                                    {/foreach}
                                                    {if $box_data.PRODUCTS_PRICE_ARRAY.0.PRODUCTS_PRICE_FLAG != 'NotAllowed'}
                                                            {if $box_data.PRODUCTS_VPE}<div class="lb_vpe text-secondary small">{$box_data.PRODUCTS_VPE}</div>{/if}
                                                    {/if}
                                            </div>
                                            {if $box_data.PRODUCTS_PRICE_ARRAY.0.PRODUCTS_PRICE_FLAG != 'NotAllowed'}
                                                    <div class="lb_tax text-right text-secondary small mb-1">{$box_data.PRODUCTS_TAX_INFO}{$box_data.PRODUCTS_SHIPPING_LINK}<br /></div>
                                            {/if}
                                    </div>
                            </div>
                    {/foreach}
                    </div>
            </div>
    </div>
    <br class="clearfix" />
    {/if}
     

    Weißt du vielleicht was ich falsch mache?

    Danke vorab, gruß Heiko

    Karl1

    • Experte
    • Beiträge: 1.805
    Hallo Heiko,
    du verwendest "$module_data.PRODUCTS_QUANTITY", in der Bestsellerbox sollte es aber "$box_data.PRODUCTS_QUANTITY" und in Last viewed "$box_content.PRODUCTS_QUANTITY" heißen.

    Wenn du wissen willst welche Daten zur Verfügung stehen setze einfach "{debug}" in die Templatedatei und aktualisiere die Seite.

    Gruß Karl

    derheiko

    • Fördermitglied
    • Beiträge: 465
    • Geschlecht:
    Vielen lieben Dank für deine Erläuterung. Leider hat auch dein Tipp mit "{if $smarty.const.BS4_BSCAROUSEL_SHOW == 'true'}{if isset($box_BESTSELLERS)}{$box_BESTSELLERS}{/if}{/if}" keine Lieferzeit ausgegeben.
    Er macht nur "Platz" aber es steht nichts drin.

    Aber ich werde mich mal mit dem Debug beschäftigen und versuchen dahinter zu kommen :)
    Danke dir aber dennoch vielmals für deine unermüdliche Hilfe.

    Karl1

    • Experte
    • Beiträge: 1.805
    Hallo Heiko,
    wann habe ich dir einen Tip "{if $smarty.const.BS4_BSCAROUSEL_SHOW == 'true'}..." gegeben, damit die Lieferzeit angezeigt wird?

    Geschrieben habe ich den Hinweis, dass du falsche Variablennamen in den Boxen benutzt.

    Du musst aber deine Abfragen nochmal genau durchgehen.
    Schau dir z.B. mal diese Zeile an
    Code: PHP  [Auswählen]
    {if $PRODUCTS_QUANTITY <= '4' and $PRODUCTS_QUANTITY >= '4'}
    Bedeutet:
    Wenn Anzahl der Produkte kleiner oder gleich 4 ist => Lösungsmenge L = {... 0, 1, 2, 3, 4}
    und
    wenn die Anzahl der Produkte größer oder gleich 4 => Lösungsmenge L = {4, 5, 6, ...}
    sind wird die folgende Anweisung ausgeführt.
    Einzig gültige Schnittmenge S = {4}.

    Gruß Karl

    P.S.: Zur Vereinfachung habe ich im Beispiel nur Ganzzahlen benutzt.

    Scubi

    • Mitglied
    • Beiträge: 220
    Einige von uns haben ja bemerkt, das der Shop nach Umstellung langsamer geworden ist. Evtl. greift hier schon der Google Core Web Vitals. Nachlesen kann man das in der Übersetzung hier: https://webmaster-de.googleblog.com/2020/06/evaluating-page-experience.html

    Timm

    • Fördermitglied
    • Beiträge: 6.165
    Was heißt der Shop ist langsamer geworden und nach welcher Umstellung? Umstellung von Google oder Shopupdate? Ist der Shop wirklich langsamer in Zeit gemessen, oder „nur“ die pagespeed insights Werte?

    Alles sehr vage und wenig lösungsorientiert. Und in deinem Link steht selbst, dass diese Neuerung erst nächstes Jahr als einer von mehr als hundert Faktoren Einfluss haben wird, man aber jetzt schon informiert wird, um sich drauf einzustellen und zu optimieren.

    Dennoch sollte man das im Auge behalten. Auch mit dem responsive template von modified sind die Werte von über 90 bei mir mobil auf ca 70 gefallen in unverändertem 2.0.4.2 Shop. Ich denke Google hat die Kriterien einfach verschärft und daran muss man sich anpassen. Lauf der Dinge.

    Gruß Timm

    derheiko

    • Fördermitglied
    • Beiträge: 465
    • Geschlecht:
    Mit dem Bootttaps4  template erreiche ich mobil 99% und auf dem Desktop 98%.

    Mit dem offiziellen template von modified erreiche ich mobil 99% und auf dem Desktop 100%.

    Beide Shops laufen mit PHP 7.4 und der neuesten Version.

    Ich habe bis jetzt keinen geschwindigkeitsverlust festgestellt.

    Mein älterer Shop läuft nun schon seit über 10 Jahren und hat sogar über 300.000 Artikel in der Datenbank.

    Ich denke da gibt es andere Faktoren, die viel wichtiger sind.

    Ich habe vor langer Zeit mal einen Datenbank Experten über einen rootserver den Shop analysieren lassen und dabei haben wir festgestellt dass die Warteschlange der Tabelle products_description bei vielen aufrufen sehr voll wird.

    Diese habe ich auf innodb umgestellt und seitdem habe ich einen ordentlichen Performance Schub.

    Auch mache ich mir die Mühe und Werte mir einmal die Woche die Apache log aus und schaue nach welche Bots meinen Shop abgrasen.

    Diese Sperre ich dann über die .htaccess aus. Erst vor drei Wochen habe ich fast das komplette Amazon Cloud Netzwerk aussperren müssen, weil von dort etliche Pricebots so viele Anfragen auf unsere Datenbank gemacht haben dass der Shop langsam mal wurde.

    Und wenn Bedarf besteht, kann ich gerne einmal einen eigenen Beitrag hier im Detail posten wie ich meinen Shop so optimiert habe, dass ich mit 0,06 Sekunden parsetime arbeiten kann und auch so hohe Zahlen bei Google erreiche. Mit welchen Programmen ich arbeite.

    Aber weder hatte ein Update noch das template irgendetwas langsamer gemacht

    Timm

    • Fördermitglied
    • Beiträge: 6.165
    @derHeiko
    Hast du es mit der aktuellen Version von Pagespeed insights getestet? Also wo nun auch „largest contentful paint“ und „kumulative layoutversvhiebung“ dabei ist.

    Da kommt die Startseite des Demoshops mobil nur noch auf 85 Punkte.

    Gruß Timm

    derheiko

    • Fördermitglied
    • Beiträge: 465
    • Geschlecht:
    Du meinst https://developers.google.com/speed/pagespeed/insights/ ?

    Hier habe ich mit der neusten Bootstrap4 und Shopversion folgende Werte:

    [ Für Gäste sind keine Dateianhänge sichtbar ] [ Für Gäste sind keine Dateianhänge sichtbar ]

    Da ich das Projekt noch nicht fertig habe und mir das Forum hier zu Seo stark ist, mag ich die URL nicht zeigen ;)
    Aber die kann ich dir gerne per PN schicken, wenn du dir das mal anschauen möchtest.

    Einzig über https://search.google.com/structured-data/testing-tool

    erhalte ich bei diesem Template die Meldung:

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    image   
    Das Feld image ist ein empfohlenes Feld. Bitte gib einen Wert ein, falls verfügbar.

    Ich weiß nicht ob ich da was kaputt gemacht habe oder der Wert nicht korrekt übergeben wird, aber das wollte ich mir am Freitag mal in Ruhe anschauen.
    1266 Antworten
    408313 Aufrufe
    12. Dezember 2023, 07:46:30 von Karl1
    135 Antworten
    5919 Aufrufe
    28. April 2024, 21:40:12 von xzillen
    1228 Antworten
    637704 Aufrufe
    11. März 2020, 16:11:33 von Baschtl
    1 Antworten
    3129 Aufrufe
    24. April 2018, 09:36:44 von lukass
               
    anything