Wie lange darf das Generieren der Sitemap dauern?

Thema wurde von markus_wick, 20. Januar 2020 erstellt.

  1. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    966
    Danke erhalten:
    214
    Danke vergeben:
    153
    Ich habe etwa 100 Kategorien, ca. 650 Artikel, zweisprachig, keine Eigenschaften, keine Attribute.

    Wie lange sollte da das Generieren einer Sitemap (das erste Mal) dauern? Vor einer knappen halben Stunde hab ich das angestossen, seitdem drehen sich hier die Kreise.... Ist das normal? Soll ich das mal neu anstupsen oder einfach machen lassen? 3.14.3.0, Theme basiert, Estugo als Hoster.
     
  2. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Du kannst in der Browserkonsole zuschauen. Jede Kategorie erzeugt einen Request, die Dauer pro Request hängt von der Menge der Artikel in der Kategorie ab. Wir haben schon Leute gehabt wo gut 6-stellige Mengen an Artikeln in einer Kategorie sind, da dauert das dann schon mal 30mins. Bei dem bisschen Zeug bei dir sollte das massiv schneller sein.
     
  3. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    966
    Danke erhalten:
    214
    Danke vergeben:
    153
    #3 markus_wick, 20. Januar 2020
    Zuletzt bearbeitet: 20. Januar 2020
    Die Konsole in FireFox und Safari zeigen beide nur:
    Code:
    [Warning] JQMIGRATE: jQuery.fn.live() is deprecated (compatibility-vendor.min.js, line 1)
    [Log] Ablaufverfolgung
        s (compatibility-vendor.min.js:1:174)
        live (compatibility-vendor.min.js:1:7849)
        (anonyme Funktion) (GMFavMaster.min.js:1:131)
        c (vendor.min.js:2:9248)
        fireWith (vendor.min.js:2:10013)
        ready (vendor.min.js:2:11842)
        s (vendor.min.js:1:1140)
    [Log] GMLeftBoxes document ready (GMLeftBoxes.min.js, line 1)
    Ist da was "outdated"?
    Oder meinst Du was anderes mit Browserkonsole?

    Seit dem Update auf 3.14.2.0 glaube ich blendet sich bei mir übrigens auch bei fast jedem Klick im Backend rechts oben beim Megafon kurz die Benachrichtigungssprechblase ein...
     
  4. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    966
    Danke erhalten:
    214
    Danke vergeben:
    153
    #4 markus_wick, 20. Januar 2020
    Zuletzt bearbeitet: 21. Januar 2020
    Ah, und ups, im Log sieht es recht rot aus.... Das scheinen aber alte Einträge aus dem Shopumzug zu sein.
    Ich habe den Shop vor einigen Tagen auf eine andere Adresse umgezogen, aber die beiden configure.php korrekt geändert. Sollte passen.
    Es geht wohl hauptsächlich um:
    Code:
    2020-01-20 19:38:38 (b7a7b98b5d669528054ad450f76d34af) WARNING(2): "count(): Parameter must be an array or an object that implements Countable" in /var/www/vhosts/xxx.hostkraft.de/rec/admin/includes/gm/classes/GMSitemapXML.php:484 (Details)
    2020-01-20 19:38:38 (b7a7b98b5d669528054ad450f76d34af) WARNING(2): "count(): Parameter must be an array or an object that implements Countable" in /var/www/vhosts/xxx.hostkraft.de/rec/admin/includes/gm/classes/GMSitemapXML.php:484 (Details)
    2020-01-20 19:41:28 (b7a7b98b5d669528054ad450f76d34af) WARNING(2): "count(): Parameter must be an array or an object that implements Countable" in /var/www/vhosts/xxx.hostkraft.de/rec/admin/includes/gm/classes/GMSitemapXML.php:484 (Details)
    2020-01-20 19:41:28 (b7a7b98b5d669528054ad450f76d34af) WARNING(2): "count(): Parameter must be an array or an object that implements Countable" in /var/www/vhosts/xxx.hostkraft.de/rec/admin/includes/gm/classes/GMSitemapXML.php:484 (Details)
    #2    File: /var/www/vhosts/xxx.hostkraft.de/rec/admin/includes/gm/classes/GMSitemapXML.php:484 (Details)
    #1    File: /var/www/vhosts/xxx.hostkraft.de/rec/admin/includes/gm/classes/GMSitemapXML.php:254 (Details)
    #0    File: /var/www/vhosts/xxx.hostkraft.de/rec/admin/gm_sitemap_creator.php:31 (Details)
    Request: GET /admin/gm_sitemap_creator.php?action=prepare_categories&page_token=ee2e59f1401d50268d2874fdce2f68e6 (Details)
    Session:  (Details)
    Get:  (Details)
    Ich glaube ich mach mal ein Ticket.... für realrecyclers.com

    #100859152
     
  5. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    966
    Danke erhalten:
    214
    Danke vergeben:
    153
    Nachdem das Ticket nun vom FirstLevel Support zum SecondLevel Support weitergereicht wurde und nun noch zu den Entwicklern... Bin ich wirklich der einzige der mit dem Generieren der Sitemap zu kämpfen hat???

    Ich habe mir gestern mal die Mühe gemacht, einen völlig frischen 3.14.4.0 Shop aufzusetzen. Frische Installation, neue, leere Datenbank. Ich habe lediglich die beiden Versandarten angepasst (Deutsche Post und das DPD Modul für DHL), mein netdexx-theme installiert und einige Inhaltsseiten generiert. Alles komplett frisch. Keine Kategorien angelegt, keine Artikel angelegt. Sitemap lies sich generieren.
    Dann habe ich noch ein paar weitere Dinge eingestellt, alles nur im Backend, nix wildes, keine superspeziellen Module. Aktiv waren nur IT-Recht, Cookie ConsentTool, Direkthilfe, Fehlerberichte senden.

    Dann bin ich in den Feierabend gegangen.
    Heute früh habe ich die Dateien und die Datenbank erst mal frisch gesichert, bevor ich andere Sachen ausprobieren wollte. Und siehe da: Die Sitemap kann nicht generiert werden....
    Der Shop war offline, es ist nix besonderes gewesen (war auch alles in einem Testbereich, nicht live). Keine Ahnung ob Cronjobs gelaufen sind, von meiner Seite aus war nichts besonderes eingestellt.

    Also noch BEVOR ich überhaupt versucht habe, per REST API mal eine Kategorie oder einen Artikel einzustellen, hat das generieren der Sitemap nicht mehr geklappt. Der Fehler sieht im LOG immer wie folgt aus:

    Code:
    ================================================================================
    
    2020-01-28 12:35:51 (c686dc457456b2681078b8758b9d6502) WARNING(2): "count(): Parameter must be an array or an object that implements Countable" in /var/www/vhosts/mwick.www74.hostkraft.de/shop/admin/includes/gm/classes/GMSitemapXML.php:484
    
    #2    File: /var/www/vhosts/mwick.www74.hostkraft.de/shop/admin/includes/gm/classes/GMSitemapXML.php:484
    
        Code:
    │    line 482:     {
    │    line 483:         $urls = [];
    ├─    line 484:         $last_index = count($categories) -1;
    │    line 485:         $last_index = ($limit + $offset -1) > $last_index ? $last_index : $limit + $offset - 1;
    │    line 486:
    
    #1    File: /var/www/vhosts/mwick.www74.hostkraft.de/shop/admin/includes/gm/classes/GMSitemapXML.php:254
    
        Code:
    │    line 252:             }
    │    line 253:             // Get categories
    ├─    line 254:             $urls = $this->getCategoryUrls($categoriesList[$languageId], $cache['offset'], $step);
    │    line 255:             $cache['data'][$languageId] = array_merge($cache['data'][$languageId], $urls);
    │    line 256:         }
    
    #0    File: /var/www/vhosts/mwick.www74.hostkraft.de/shop/admin/gm_sitemap_creator.php:31
    
        Code:
    │    line 29: {   
    │    line 30:     case 'prepare_categories':
    ├─    line 31:         $categories = $sitemap->prepare();
    │    line 32:         if($categories === false)
    │    line 33:         {
    
    Request: GET /admin/gm_sitemap_creator.php?action=prepare_categories&page_token=e121c7c507b08cbc65e5095025301871
        - duration: ~33ms
        - server: Apache
        - server address: 37.218.252.109
        - user agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Safari/605.1.15
        - remote address: c686dc457456b2681078b8758b9d6502
    
    Session:
        - tpl: Honeygrid
        - language: german
        - languages_id: 2
        - language_charset: utf-8
        - language_code: de
        - currency: EUR
        - customers_status: Array
            (
                [customers_status_id] => 0
                [customers_status_name] => Admin
                [customers_status_image] => admin_status.gif
                [customers_status_public] => 0
                [customers_status_min_order] => 0
                [customers_status_max_order] => 0
                [customers_status_discount] => 0.00
                [customers_status_ot_discount_flag] => 1
                [customers_status_ot_discount] => 0.00
                [customers_status_graduated_prices] => 1
                [customers_status_show_price] => 1
                [customers_status_show_price_tax] => 1
                [customers_status_add_tax_ot] => 1
                [customers_status_payment_unallowed] =>
                [customers_status_shipping_unallowed] =>
                [customers_status_discount_attributes] => 0
                [customers_fsk18_purchasable] => 0
                [customers_fsk18_display] => 1
                [customers_status_write_reviews] => 1
                [customers_status_read_reviews] => 1
            )
           
        - cart: shoppingCart Object
            (
                [contents] => Array
                    (
                    )
           
                [total] => 0
                [weight] => 0
                [error_data:protected] => Array
                    (
                    )
           
                [cartID] =>
                [content_type] =>
                [tax] => Array
                    (
                    )
           
            )
           
        - wishList: wishList Object
            (
                [contents] => Array
                    (
                    )
           
                [total] => 0
                [weight] => 0
                [cartID] =>
                [content_type] =>
            )
           
        - customer_id: 1
        - payment: ### Session entry not present ###
        - shipping: ### Session entry not present ###
        - cartID: ### Session entry not present ###
        - sendto: ### Session entry not present ###
        - billto: ### Session entry not present ###
    
    Get:
        - action: prepare_categories
        - page_token: e121c7c507b08cbc65e5095025301871
    Das einzige was mir gestern noch aufgefallen ist: Als ich den Link zur Sitemap im Footer aufrufen wollte, kam eine Fehlermeldung, die im Log so aussieht:

    Code:
    2020-01-27 15:53:18 (c686dc457456b2681078b8758b9d6502) FATAL ERROR(1): "Uncaught  --> Smarty: Unable to load template 'file:sitemap.html' <--
      thrown"
    Request: GET /shop_content.php?coID=8 (Details)
    Session:  (Details)
    Get:  (Details)
    Information:
    <br />
    <b>Fatal error</b>:  Uncaught  --&gt; Smarty: Unable to load template 'file:sitemap.html' &lt;--
      thrown in <b>/var/www/vhosts/mwick.www74.hostkraft.de/shop/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php</b> on line <b>195</b><br />
    Keine Ahnung ob das zusammenhängt und ob dieser Fehler dann ausgelöst hat dass die Sitemap generiert werden kann - sind ja eigentlich zwei Paar Stiefel, oder?

    Ich bin auf jeden Fall ratlos, Ticket #100859152 ist seit 20.Januar offen, ich hoffe gambio findet was raus... Denn solange das nicht vorangeht, geht auch meine Arbeit am Shop nicht voran....
     
  6. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    In meinem Shop Version 3.14.0.0 und in meinem Testshop 3.15.4.0 habe ich keine Probleme eine Sitemap zu generieren.
     
  7. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    966
    Danke erhalten:
    214
    Danke vergeben:
    153
    Danke barbara. Bin auch völlig ratlos. Gambio wohl auch...
    Hast Du wirklich 3.14.0.0 oder doch was neueres wie 3.14.3.0 oder so?
     
  8. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Nein, ich habe 3.14.0.0
    Ich mache die Zwischen-Updates nur, wenn ich von einem Bug betroffen bin.
    Für das ganz neue habe ich meinen Testshop.
     
  9. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Markus:
    Irgendwie ist das hier ein Doppelpost. Bitte nicht machen.
     
  10. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    966
    Danke erhalten:
    214
    Danke vergeben:
    153
    War nicht als Doppelpost gedacht sondern als Ergänzung, da ich im anderen Thread wissen wollte, ob andere auch Probleme damit hatten/haben - und nachdem ich den Titel dieses Threads ja nicht mehr ändern kann, wollte ich diese Frage frisch stellen?

    Gibts denn Neues aus der Entwicklungsabteilung zu dem Problem?
     
  11. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    966
    Danke erhalten:
    214
    Danke vergeben:
    153
    Bin echt am Verzweifeln...
    Ich habe hier ein Backup vom 30.10.2019, noch alles sehr rudimentär. Da geht das Sitemap-Erstellen.
    Dann habe ich ein Backup vom 14.11.2019, da hat sich nicht wirklich viel verändert. Da geht das Sitemap-Erstellen nicht.
    Ich habe Punkt für Punkt verglichen, wo die Unterschiede sind - nichts wirklich anders, Kleinigkeiten in den Backend-Einstellungen. Es ist für mich nicht ersichtlich was das Problem auslöst... :(
     

    Anhänge:

    • image.png
      image.png
      Dateigröße:
      83 Bytes
      Aufrufe:
      2
  12. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    966
    Danke erhalten:
    214
    Danke vergeben:
    153
    #12 markus_wick, 28. Januar 2020
    Zuletzt bearbeitet: 28. Januar 2020
    Ich schreib mal hier weiter auf, was ich so herausfinde, da der Support wohl auch wegen des Tickets hier nachsehen kann...

    Im Log wird ja der count() Parameter moniert, Zeile 484. Der Block in der php Datei admin/includes/gm/classes/GMSitemapXML.php ist:
    Code:
    /*
        * Get urls category and product urls recursively
        * by given language and parent
        */
    protected function getCategoryUrls($categories, $offset = 0, $limit = 5)
        {
            $urls = [];
            $last_index = count($categories) -1;
            $last_index = ($limit + $offset -1) > $last_index ? $last_index : $limit + $offset - 1;
    
    
            for ($i = $offset; $i <= $last_index; $i++){
                $data = $categories[$i];
                // Add images
                if(!empty($data['image']))
                {
                    $data['images'][] = [
                        'url'   => HTTP_SERVER . DIR_WS_CATALOG . 'images/categories/' . rawurlencode($data['image']),
                        'title' => $data['image_alt_text'],
                    ];
                }
    
                // Create link
                if($this->coo_seo_boost->boost_categories)
                {
                    $data['link'] = gm_xtc_href_link($this->coo_seo_boost->get_boosted_category_url($data['id'], $data['language_id']),'','SSL',false,true,true);
                }
                else
                {
                    $data['link'] = gm_xtc_href_link('index.php', xtc_category_link($data['id'], ($data['keyword'] ?: $data['name'])),'SSL',false,true,true);
                }
                $urls[] = [$data];
    
                // Get nested products
                $urls[] = $this->getProductUrls($data['language_id'], $data['id']);
    
            }
    
            return count($urls) ? array_merge(...$urls) : [];
        }
    Moniert wird also das "$last_index = count($categories) -1;" - was auch immer das bedeuten mag...

    Ausserdem steht in der "Warning" dass was in Zeile 254 nicht passt:
    Code:
    // Loop thru languages
            foreach($this->languages as $languageId => $language)
            {
                if(!isset($cache['data'][$languageId])){
                    $cache['data'][$languageId] = [];
                }
                // Get categories
                $urls = $this->getCategoryUrls($categoriesList[$languageId], $cache['offset'], $step);
                $cache['data'][$languageId] = array_merge($cache['data'][$languageId], $urls);
            }
            $cache['offset'] += $step;
    Hier ist dies das Problem: $urls = $this->getCategoryUrls($categoriesList[$languageId], $cache['offset'], $step);

    Ausserdem dann noch in der Datei admin/gm_sitemap_creator.php in Zeile 31:

    Code:
    switch($_GET['action'])
    { 
        case 'prepare_categories':
            $categories = $sitemap->prepare();
            if($categories === false)
            {
                echo json_encode(['repeat' => true]);
            }
            else
            {
                $dataCache->set_data('sitemap_categories', $categories, true);
                echo json_encode(['repeat' => false]);
            }
            break;
    
        case 'create_sitemap':
            echo $sitemap->generate(); 
            break;
    
        case 'publish_all':
            xtc_db_query('UPDATE `categories` SET gm_sitemap_entry = 1');
            xtc_db_query('UPDATE `products` SET gm_sitemap_entry = 1');
         
            echo TITLE_SITEMAP_PUBLISH_ALL_SUCCESS;
            break;
    }
    Hier hakt wohl dann: $categories = $sitemap->prepare();

    So.
    Und was heisst das nun?
    Die php Dateien sind in beiden Versionen (der die geht und der die nicht geht) identisch, Zugriffsrechte passen auch.
     
  13. Anonymous

    Anonymous Neues Mitglied

    Registriert seit:
    26. November 2019
    Beiträge:
    4
    Danke erhalten:
    0
    Danke vergeben:
    1
    @markus_wick: Gibt es mittlerweile irgendeine Antwort vom Seconde-Level-Support oder gibt es eine Erklärung oder gar Lösung? Ich habe das gleiche Problem.
     
  14. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    966
    Danke erhalten:
    214
    Danke vergeben:
    153
    Nö, vom Support kam leider nichts.... Aber ich hatte nach etlichen Tests festgestellt, dass wohl keine Kategorie als "nicht in sitemap" markiert sein darf - sobald ich alle Kategorien als "in Sitemap" markiert hatte, ging das Ganze wieder...
    Also bitte mal prüfen, ob Kategorien existieren, bei denen "nicht in sitemap" angekreuzt ist, die müssen wohl alle in die Sitemap.
     
  15. Nico (Kostbar)

    Nico (Kostbar) Erfahrener Benutzer

    Registriert seit:
    3. Mai 2012
    Beiträge:
    294
    Danke erhalten:
    46
    Danke vergeben:
    73
    Hallo, da ich auf der Suche nach dem selben Problem (mittlerweile bei Gambio 4.8.0.2) auf dieses Thema gestoßen bin, hier eine Ergänzung.
    Bei mir drehte sich der Sitemapgeneratorkreis unaufhörlich und in den Logs standen Fehlermeldungen:

    CRITICAL: count(): Argument #1 ($value) must be of type Countable|array, null given

    class:
    TypeError
    message:
    count(): Argument #1 ($value) must be of type Countable|array, null given
    code:
    0
    file:
    /var/www/vhosts/***/httpdocs/airscape-shop.de/admin/includes/gm/classes/GMSitemapXML.php:493

    Ich bin darauf gekommen, dass es ein Problem ist, wenn es keine Kategorien gibt.
    Ich habe aber nur wenige Artikel im Shop und lasse die alle auf der Startseite darstellen und brauche daher keine Kategorie.
    Es muß aber eine vorhanden und aktiv sein, sonst kommt es zu diesem Problem. Ich habe nun einfach eine Testkategorie angelegt, aktiviert und die Sitemap generiert. Danach habe ich die Testkategorie wieder deaktiviert.

    Ist natürlich nicht die feine englische Art.

    Aber mir hat es geholfen..

    LG
    Nico
     
  16. timogleinig

    timogleinig Erfahrener Benutzer

    Registriert seit:
    7. Juli 2014
    Beiträge:
    150
    Danke erhalten:
    44
    Danke vergeben:
    30
    Danke für den Tipp, denn ich bin soeben auch auf genau diesen Fehler gestoßen. Gambio Version 4.8.0.2 und bei einem Shop ohne aktive Kategorien ist die sitemap erstellung nicht möglich.