Hat jemand eine angepasste hermes.php?

Thema wurde von Petra, 3. Juli 2012 erstellt.

  1. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    Guten Morgen,

    seit gestern geht der Export zu Hermes nicht mehr, da die Tabellenstruktur verändert wurde. Anscheinend raffe ich es nicht, die Datei anzupassen. Hat das vielleicht schon jemand getan?
     
  2. tobywan

    tobywan Erfahrener Benutzer

    Registriert seit:
    22. September 2011
    Beiträge:
    55
    Danke erhalten:
    0
    Danke vergeben:
    1
    Hallo, ja ich weiß warum es nicht mehr geht.
    Es liegt daran dass Hermes eine Spalte mehr eingefügt hat (Sperrgutgewicht glaub ich war das).
    Einfach die neue Vorlage downloaden und vergleichen.

    Grüße
     
  3. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    Hallo Toby,

    habe ich bereits getan, aber ich blicke da nicht durch. Was auch immer ich "anpasse", irgendwie passen die Spalten nie.
     
  4. tobywan

    tobywan Erfahrener Benutzer

    Registriert seit:
    22. September 2011
    Beiträge:
    55
    Danke erhalten:
    0
    Danke vergeben:
    1
    Ich hab leider gerade keinen Zugriff.
    Aber lade mal die Hermes Vorlagedatei runter (neue) und vergleich diese mit der alten.
    Da solltest du dann auf jedenfall einen Unterschied sehen.
    Ich glaube so weißt du schneller was man anpassen muss.
    Wenn ich später noch Info habe kann ich Sie dir ja durchgeben.
     
  5. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    Meinst du die Excel-Musterdatei? Die habe ich und dennoch steige ich nicht durch.
     
  6. tobywan

    tobywan Erfahrener Benutzer

    Registriert seit:
    22. September 2011
    Beiträge:
    55
    Danke erhalten:
    0
    Danke vergeben:
    1
    Ja genau die meine ich.
     
  7. andreaskrueger

    andreaskrueger Aktives Mitglied

    Registriert seit:
    3. Oktober 2011
    Beiträge:
    40
    Danke erhalten:
    3
    Danke vergeben:
    11
    Hallo ! Ich habe versucht, die php Datei zu ändern ( Sperrgutzuschlag ergänzt ). Dies reicht aber leider nicht, der Gambio Support findet keinen Fehler,
    obwohl beim Import immer Fehlermeldung:Fehler in Zeile 1, Spalte 9: Die Rufnummer enthält nicht nur Ziffern kommt.
    Weiß jemand Rat ? Danke Andreas
     
  8. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    Hallo Andreas,

    genau so ging es mir auch. Ich schätze, da ist wahrscheinlich die E-Mail Adresse drin. Ich habe schon vieles hin- und hergeschoben, irgendwas passt immer nicht.
     
  9. andreaskrueger

    andreaskrueger Aktives Mitglied

    Registriert seit:
    3. Oktober 2011
    Beiträge:
    40
    Danke erhalten:
    3
    Danke vergeben:
    11
    Hallo, Petra !
    Danke für die Antwort. Ich verstehe aber die Fehlermeldung nicht, an der Spalte Telefonnummer hat sich ja nichts verändert.
    Die Antwort von Gambio auf ein an sich bekanntes Problem ::wir konnten im Kundenexport keine Formatierungsfehler feststellen.
    ist ja auch sehr interessant, da hat man sich große Mühe gemacht ... :O)
     
  10. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    Deshalb habe ich gar nicht erst ein Ticket eröffnet. Ein wirklicher Formatierungsfehler ist es ja nicht, es ist halt eine Spalte dazugekommen und die muss nur an die richtige Stelle. Bei meinen Anpassungsversuchen hatte ich immer das Gefühl, dass es verschiebt aber nicht einfügt. Wenn du verstehst, was ich meine :D
     
  11. Teelirium

    Teelirium Erfahrener Benutzer

    Registriert seit:
    13. Juni 2012
    Beiträge:
    287
    Danke erhalten:
    22
    Danke vergeben:
    141
    Ich mache den Export in eine hermes.txt mit dem "aktuellen" Modul und lösche dann in einem Texteditor einfach die letzten paar Einträge pro Zeile raus, bis als letzter Eintrag pro Zeile die Mailadresse und das abschließende Semikolon steht.

    Das ist suboptimal.

    Ich habe versucht, die hermes.php im Ordner /admin/includes/modules/gm_export anzupassen - was ja eigentlich kein großes Problem sein sollte, da ja "nur" die letzten zwei, drei Einträge bei der Erstellung der Textzeile entfallen. Habe diese angepasste Datei dann in den Ordner hochgeladen und bekomme bei Admin > Kundenexport einen Fatal Error, vonwegen der Shop könne die Klasse "Hermes" nicht neu definieren (oder sowas in der Art). Also habe ich es gelassen und behelfe mit mit dem manuellen löschen der letzten paar Einträge in der exportierten hermes.txt Datei. Die kann ich dann gut einbinden bei Hermes.

    Aber wäre echt besser, wenn das richtig funktionieren würde.

    Viele Grüße
    Florian
     
  12. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    #12 Petra, 5. August 2012
    Zuletzt bearbeitet: 5. August 2012
    Problem gelöst mit einer neuen hermes.php:

    PHP:
    <?php
    /* --------------------------------------------------------------
       hermes.php 2010-03-23 gm
       Gambio GmbH
       http://www.gambio.de
       Copyright (c) 2010 Gambio GmbH
       Released under the GNU General Public License (Version 2)
       [http://www.gnu.org/licenses/gpl-2.0.html]
       --------------------------------------------------------------


       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce(cod.php,v 1.28 2003/02/14); www.oscommerce.com
       (c) 2003     nextcommerce (invoice.php,v 1.6 2003/08/24); www.nextcommerce.org
       (c) 2003 XT-Commerce - community made shopping http://www.xt-commerce.com ($Id: froogle.php 1188 2005-08-28 14:24:34Z matthias $)

       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/
    defined('_VALID_XTC') or die('Direct Access to this location is not allowed.');

    define('MODULE_HERMES_TEXT_DESCRIPTION''Export - Hermes');
    define('MODULE_HERMES_TEXT_TITLE''Hermes - TXT');
    define('MODULE_HERMES_FILE_TITLE''<hr noshade>Dateiname');
    define('MODULE_HERMES_FILE_DESC''Geben Sie einen Dateinamen ein, falls die Exportadatei am Server gespeichert werden soll.<br>(Verzeichnis export/)');
    define('MODULE_HERMES_STATUS_DESC''Modulstatus');
    define('MODULE_HERMES_STATUS_TITLE''Status');
    define('MODULE_HERMES_CURRENCY_TITLE''W&auml;hrung');
    define('MODULE_HERMES_CURRENCY_DESC''Welche W&auml;hrung soll exportiert werden?');
    define('EXPORT_YES''Nur Herunterladen');
    define('EXPORT_NO''Am Server Speichern');
    define('CURRENCY''<hr noshade><b>W&auml;hrung:</b>');
    define('CURRENCY_DESC''W&auml;hrung in der Exportdatei');
    define('EXPORT''Bitte den Sicherungsprozess AUF KEINEN FALL unterbrechen. Dieser kann einige Minuten in Anspruch nehmen.');
    define('EXPORT_TYPE''<hr noshade><b>Speicherart:</b>');
    define('EXPORT_STATUS_TYPE''<hr noshade><b>Kundengruppe:</b>');
    define('EXPORT_STATUS''Bitte w&auml;hlen Sie die Kundengruppe, die Basis f&uuml;r den Exportierten Preis bildet. (Falls Sie keine Kundengruppenpreise haben, w&auml;hlen Sie <i>Gast</i>):</b>');
    define('ORDERS_STATUS''<hr noshade><b>Bestellstatus:</b>');
    define('ORDERS_STATUS_DESC''Bitte wählen Sie den Bestellstatus der Bestellungen, die Sie exportieren wollen:');
    define('ORDERS_STATUS_NEW_DESC''Bitte wählen Sie den Bestellstatus, der nach dem Export für die jeweilige Bestellung gelten soll:');
    define('DATE_FORMAT_EXPORT''%d.%m.%Y'); // this is used for strftime()
    define('GM_PAKET''<hr noshade><b>Paketgr&ouml;&szlig;e:</b><br><input type="text" name="gm_paket" value="S" size="4" />');
    // include needed functions

    class hermes {
        var 
    $code$title$description$enabled;

        function 
    hermes() {
            global 
    $order;

            
    $this->code 'hermes';
            
    $this->title MODULE_HERMES_TEXT_TITLE;
            
    $this->description MODULE_HERMES_TEXT_DESCRIPTION;
            
    $this->sort_order MODULE_HERMES_SORT_ORDER;
            
    $this->enabled = ((MODULE_HERMES_STATUS == 'True') ? true false);
            
    $this->CAT = array ();
            
    $this->PARENT = array ();

        }

        function 
    process($file) {
            @ 
    xtc_set_time_limit(0);
            
    $orders_query_where"WHERE c.countries_iso_code_2=o.delivery_country_iso_code_2 ";
            if (
    $_POST['oders_status'] != null) {
                
    $orders_query_where .= "AND o.orders_status='" $_POST['oders_status']."'";
            }
            
    $schema '';
            
    //$schema = 'Vorname(20);Nachname/Firmenname(25);Adresszusatz(20);Straße(27);Hausnummer(5);PLZ(5);Ort(25);Bezirk(25)*;Land(3);Tel. Vorwahl(6);Telefonnummer(8);E-Mail Adresse(80);Kundenreferenznummer(20); Paketklasse(3); Nachnahmebetrag(7); ' . "\n";
            
    $orders_query "SELECT o.orders_id,
                                                            o.customers_id,
                                                            o.customers_telephone,
                                                            o.customers_email_address,
                                                            o.delivery_name,
                                                            o.delivery_firstname,
                                                            o.delivery_lastname,
                                                            o.delivery_company,
                                                            o.delivery_street_address,
                                                            o.delivery_suburb,
                                                            o.delivery_city,
                                                            o.delivery_postcode,
                                                            o.delivery_state,
                                                            o.delivery_country,
                                                            o.delivery_country_iso_code_2,
                                                            c.countries_iso_code_3,
                                                            o.payment_method,
                                                            o.comments,
                                                            o.date_purchased,
                                                            o.orders_status,
                                                            o.currency,
                                                            o.shipping_class
                                                            FROM orders o, countries c "
                                                            
    $orders_query_where;

            
    $customers_query xtc_db_query($orders_query);
            while (
    $customers xtc_db_fetch_array($customers_query)) {
                
    $paket trim($_POST['gm_paket']);
                
    $order_value=" ";
                if (
    $customers[payment_method] == 'cod') {
                    
    $cod_query "SELECT text from orders_total where orders_id='" $customers['orders_id'] . "' and class='ot_cod_fee'";
                    
    $cod_query xtc_db_query($cod_query);
                    
    $cod_array xtc_db_fetch_array($cod_query);
                  
    $order_value_query "SELECT value FROM orders_total WHERE orders_id='".$customers['orders_id']."' AND class='ot_total'";
                  
    $order_value_query xtc_db_query($order_value_query);
                  
    $order_value_array xtc_db_fetch_array($order_value_query);
                  
    $order_value number_format((double)$order_value_array['value'], 2);
                  
    $order_value str_replace('.',',',$order_value);
                }
                
    $comment preg_replace("/\s+/"" "$customers['comments']);
                
    $cod_value str_replace(" " $customers['currency'], ''$cod_array['text']);

                
    $delivery_firstname $customers['delivery_firstname'];
                if(empty(
    $delivery_firstname))
                {
                    
    $delivery_firstname ' ';
                }

                
    $delivery_lastname $customers['delivery_lastname'];
                if(empty(
    $delivery_lastname))
                {
                    
    $delivery_lastname ' ';
                }

                
    $delivery_street_address $customers['delivery_street_address'];
                if(empty(
    $delivery_street_address))
                {
                    
    $delivery_street_address ' ';
                }

                
    $delivery_postcode $customers['delivery_postcode'];
                if(empty(
    $delivery_postcode))
                {
                    
    $delivery_postcode ' ';
                }

                
    $delivery_city $customers['delivery_city'];
                if(empty(
    $delivery_city))
                {
                    
    $delivery_city ' ';
                }

                
    $delivery_suburb $customers['delivery_suburb'];
                if(empty(
    $delivery_suburb))
                {
                    
    $delivery_suburb ' ';
                }

                
    $countries_iso_code_3 $customers['countries_iso_code_3'];
                if(empty(
    $countries_iso_code_3))
                {
                    
    $countries_iso_code_3 ' ';
                }

                
    $customers_email_address $customers['customers_email_address'];
                if(empty(
    $customers_email_address))
                {
                    
    $customers_email_address ' ';
                }

                
    $customers_id $customers['customers_id'];
                if(empty(
    $customers_id))
                {
                    
    $customers_id ' ';
                }

                if(empty(
    $paket))
                {
                    
    $paket ' ';
                }

                if(empty(
    $order_value))
                {
                    
    $order_value ' ';
                }


                
    $schema_entry =

                
    //Vorname
                
    $delivery_firstname .";".
                
    //Nachname
                
    $delivery_lastname .";".
                
    //Adresszusatz
                
    $delivery_suburb .";".
                
    //Straße
                
    $delivery_street_address .";".
                
    //Hausnummer
                
    ' ' ";" .
                
    //Postleitzahl
                
    $delivery_postcode .";".
                
    //Ort
                
    $delivery_city .";".
                
    //Tel. Vorwahl
                
    ' ' ";" .
                
    //Telefonnummer
                
    ' ' ";" .
                
    //E-Mail Adresse
                
    $customers_email_address .";".
                
    //Kundenreverenznummer
                
    $customers_id .";".
                
    //Paketklasse
                
    $paket .";".
                
    //Sperrrgut
                
    '0' ";" .
                
    $order_value .";".
                
    ' ' ";" "\n" ;

                
    $schema .= $schema_entry;
            }
            if(empty(
    $schema)) {
                
    $schema ' ';
            }
            
    // create File
            
    $fp fopen(DIR_FS_DOCUMENT_ROOT 'export/' $file"w+");
            
    fputs($fp$schema);
            
    fclose($fp);

            switch (
    $_POST['export']) {
                case 
    'yes' :
                    
    // send File to Browser
                    
    $extension substr($file, -3);
                    
    $fp fopen(DIR_FS_DOCUMENT_ROOT 'export/' $file"rb");
                    
    $buffer fread($fpfilesize(DIR_FS_DOCUMENT_ROOT 'export/' $file));
                    
    fclose($fp);
                    
    header('Content-type: application/x-octet-stream');
                    
    header('Content-disposition: attachment; filename=' $file);
                    echo 
    $buffer;
                    if (
    $_POST['oders_status_new'] != null AND $_POST['oders_status'] != null) {
                
    $query "UPDATE orders SET orders_status ='" $_POST['oders_status_new'] . "' WHERE orders_status = '" $_POST['oders_status'] . "'";
                
    xtc_db_query($query);
            }
                    exit;

                    break;
            }
            if (
    $_POST['oders_status_new'] != null AND $_POST['oders_status'] != null) {
                
    $query "UPDATE orders SET orders_status ='" $_POST['oders_status_new'] . "' WHERE orders_status = '" $_POST['oders_status'] . "'";
                
    xtc_db_query($query);
            }
        }

        function 
    display() {

            
    $customers_statuses_array xtc_get_customers_statuses();

            
    // build Currency Select

            
    $orders_status_array = array (
                array (
                    
    'id' => '',
                    
    'text' => 'alle'
                
    )
            );
            
    $orders_status_query xtc_db_query("select orders_status_name, orders_status_id from " TABLE_ORDERS_STATUS " WHERE language_id='2' order by orders_status_id");
            while (
    $orders_status xtc_db_fetch_array($orders_status_query)) {
                
    $orders_status_array[] = array (
                    
    'id' => $orders_status['orders_status_id'],
                    
    'text' => $orders_status['orders_status_name'],


                );
            }
            
    $orders_status_new_array $orders_status_array;
            
    $orders_status_new_array[0]['text'] = 'nicht ändern';
            return array (
                
    'text' => ORDERS_STATUS '<br>' .
                
    ORDERS_STATUS_DESC '<br>' .
                
    xtc_draw_pull_down_menu('oders_status',
                
    $orders_status_array
            
    ) . '<br><br>' .
            
    ORDERS_STATUS_NEW_DESC '<br>' .
            
    xtc_draw_pull_down_menu('oders_status_new'$orders_status_new_array) . '<br>' .
            
    GM_PAKET.'<br>'.
            
    EXPORT_TYPE '<br>' .
            
    EXPORT '<br>' .
            
    xtc_draw_radio_field('export''no'false) . EXPORT_NO '<br>' .
            
    xtc_draw_radio_field('export''yes'true) . EXPORT_YES '<br>' .
            
    '<br><div align="center">' xtc_button(BUTTON_EXPORT) .
            
    xtc_button_link(BUTTON_CANCELxtc_href_link(FILENAME_GM_MODULE_EXPORT'set=' $_GET['set'] . '&module=hermes')) .'</div>');

        }

        function 
    check() {
            if (!isset (
    $this->_check)) {
                
    $check_query xtc_db_query("select configuration_value from " TABLE_CONFIGURATION " where configuration_key = 'MODULE_HERMES_STATUS'");
                
    $this->_check xtc_db_num_rows($check_query);
            }
            return 
    $this->_check;
        }

        function 
    install() {
            
    xtc_db_query("insert into " TABLE_CONFIGURATION " (configuration_key, configuration_value,  configuration_group_id, sort_order, set_function, date_added) values ('MODULE_HERMES_FILE', 'hermes.txt',  '6', '1', '', now())");
            
    xtc_db_query("insert into " TABLE_CONFIGURATION " (configuration_key, configuration_value,  configuration_group_id, sort_order, set_function, date_added) values ('MODULE_HERMES_STATUS', 'True',  '6', '1', 'gm_cfg_select_option(array(\'True\', \'False\'), ', now())");
        }

        function 
    remove() {
            
    xtc_db_query("delete from " TABLE_CONFIGURATION " where configuration_key in ('" implode("', '"$this->keys()) . "')");
        }

        function 
    keys() {
            return array (
                
    'MODULE_HERMES_STATUS',
                
    'MODULE_HERMES_FILE'
            
    );
        }

    }
    ?>
    Und hier gehört die hermes.php rein: admin/includes/modules/gm_export/
     
  13. Teelirium

    Teelirium Erfahrener Benutzer

    Registriert seit:
    13. Juni 2012
    Beiträge:
    287
    Danke erhalten:
    22
    Danke vergeben:
    141
    Zumindest bei mir funktioniert die Datei nicht. Hermes kann die Datei nicht einlesen und bringt folgenden Fehler:

    Das liegt - denke ich - daran, dass Hermes das so erwartet:
    aber die obenstehende PHP Datei dies auswirft:
    Zumindest bei mir kann Hermes mit allem, was nach der Mailadresse noch in der Zeile steht, nichts anfangen und weist die Importdatei als fehlerhaft zurück. Wie ich in meinem vorherigen Post schon erwähnt habe, passe ich die Exportdatei des Shops manuell an und lösche in jeder Zeile die letzten paar Einträge, sodass die Mailadresse der letzte Eintrag in der Zeile ist. So wie ich die Vorlagendatei von Hermes verstehe, ist es auch garnicht mehr möglich, die Paketgröße mit zu übergeben!?!

    Viele Grüße
    Florian
    Shopversion v2.0.10d r6138
     
  14. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    Guten Morgen Florian,

    bei mir funktioniert es einwandfrei - so wie früher. Vielleicht habe ich beim Kopieren irgendwas unterschlagen ;) deshalb hänge ich die Datei einfach mal als Download an.
     

    Anhänge:

  15. Teelirium

    Teelirium Erfahrener Benutzer

    Registriert seit:
    13. Juni 2012
    Beiträge:
    287
    Danke erhalten:
    22
    Danke vergeben:
    141
    Mmmhhhh,, sehr seltsam, ich bekomme mit der eingespielten Datei genau die gleichen Fehler wie oben beschreiben. Könnte es daran liegen, dass ich bei Hermes noch kein ProfiPaketService nutze, sondern meine Pakete als Privatkunde versende? Evtl. sind die Vorlagen für Privatkunden anders als die für ProfiPaketService-Kunden.

    Wenn ich die Musterdatei zum csv Import von Hermes runterlade, ist eine readme Datei enthalten. Diese:
    Ist die anders als die Datei für ProfiPaketService Kunden? Denn in der Datei steht ja, dass die Mailadresse der letzte Eintrag sein soll. Die hermes.php Exportdatei für den Shop wirft aber noch mehr Felder aus, die Hermes nicht braucht und daher auch nicht versteht.

    Alles sehr seltsam:-D
     
  16. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    Hi Florian,

    kann ich mir nicht vorstellen, aber möglich ist alles. Andererseits: Warum meldest du dich eigentlich nicht als PPS-Kunde an? Mittlerweile kann man das schon ab 300 Paketen pro Jahr.
     
  17. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    30.948
    Danke erhalten:
    6.089
    Danke vergeben:
    1.078
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    kannst bei GLS / DPD auch schon ab 100-150 Pakete im Jahr Kunde werden mit abholung.
     
  18. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    Kann man auch :D
     
  19. Teelirium

    Teelirium Erfahrener Benutzer

    Registriert seit:
    13. Juni 2012
    Beiträge:
    287
    Danke erhalten:
    22
    Danke vergeben:
    141
    Ich habe zwar ein vielfaches dieser 300 Pakete im Jahr, aber Hermes als PPS Kunde bringt mir nichts. Ich versende die meisten meiner Pakete in der Größe XS. Als "normaler" Kunde darf dieses Paket dann bis 37cm groß sein, als PPS Kunde nur noch bis maximal 30cm. Dann passen aber meine Päckchen nicht mehr und ich müsste alles in Größe S versenden. Das ist dann wiederum teurer als die Päckchen als "normaler" Kunde in XS zu versenden. Blöd, aber ist nunmal so :-(

    Aber ich schaue mir mal GLS und/oder DPD an, evtl. geht da noch was günstiger.

    Wie sieht denn die Excelvorlage (oder *.csv Vorlage) aus, wenn ich die als PPS Kunde herunterlade? Ist die Beschreibung, die dabei ist, genauso wie die, die ich gepostet habe? Würde mich mal so aus Neugier interessieren.

    Das wurmt mich nämlich schon irgendwie.....
     
  20. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    Uno momento por favor...