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: SCHNITTSTELLE: JTL-Wawi-Connector für modified eCommerce Shopsoftware

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 44.496
    • Geschlecht:
    Anbei die Connectoren für JTL-WaWi in der Standard-Version 0.9997 sowie für UTF-8 konvertierte Datenbanken.

    Empfohlene Version: "JTL-Wawi_Connector_modified-shop.zip" (UTF-8 bitte nur in Spezialfällen benutzen, wenn ihr wisst, was ihr macht!)

    Hier noch zwei Erweiterungen, die ihr optional einbauen könnt:

    SEO Bildnamen:

    Habe den Connector um die Funktion erweitert, dass die Produktbilder SEO/Benutzerfreundliche Namen haben.

    Suche in Datei "/admin/includes/modules/jtlwawi_connector/dbeS/setArtikelBild.php"

    Code: PHP  [Auswählen]
    // BOF - Tomcraft - 2010-08-12 - GIF/JPG/PNG enhancement - forum.jtl-software.de/xt-commerce/6908-bilder-aus-jtl-wawi-erscheinen-nicht-im-shop-2.html
         $bildname=$products_id."_".(intval($_POST['nNr'])-1).".";

    Ersetze mit:

    Code: PHP  [Auswählen]
            //hole einstellungen
            $cur_query = eS_execute_query("select * from eazysales_einstellungen");
            $einstellungen = mysql_fetch_object($cur_query);
            //hole artikelnamen
            $cur_query = eS_execute_query("select products_name from products_description where products_id=".$products_id." and language_id=".$einstellungen->languages_id);
            $product = mysql_fetch_object($cur_query);
            //ersetze sonderzeichen und alles kleinmachen
            $productname = $product->products_name;
            $search_array =  array('ä',  'Ä',  'ö',       'Ö',  'ü',  'Ü',  'ä', 'Ä', 'ö', 'Ö', 'ü', 'Ü', 'ß', 'ß',  'è', 'é', 'ê', 'à', 'â', 'á', 'É', 'È', 'Ê', 'Á', 'À', 'Â', '&');
            $replace_array = array('ae', 'Ae', 'oe', 'Oe', 'ue', 'Ue', 'ae',     'Ae',     'oe',     'Oe',     'ue',     'Ue',     'ss',      'ss', 'e', 'e', 'e', 'a', 'a', 'a', 'E', 'E', 'E', 'A', 'A', 'A', 'und');
            $productname = str_replace($search_array,$replace_array,$productname);
            $productname = strtolower($productname);
            $replace_param = '/[^a-zA-Z0-9]/';
            $productname = preg_replace($replace_param,'-',$productname);
            $productname = substr($productname, 0, 57);

    // BOF - Tomcraft - 2010-08-12 - GIF/JPG/PNG enhancement - forum.jtl-software.de/xt-commerce/6908-bilder-aus-jtl-wawi-erscheinen-nicht-im-shop-2.html
         $bildname=$productname."-".$products_id."-".(intval($_POST['nNr'])-1).".";

    Im Anhang die bearbeitete Datei. "setArtikelBild.php" als ZIP-Datei.

    Gruß h-h-h

    [EDIT Tomcraft 20.09.2010: Erweiterung in Beitrag 1 mit angefügt.]
    [EDIT Tomcraft 21.10.2010: Fix für lange Artikelnamen integriert.]
    [EDIT Tomcraft 24.01.2011: Fix bei doppelten Artikelnamen integriert.]
    [EDIT Tomcraft 18.08.2011: Fehler im Code korrigiert, Danke an EatMyShorts für den Hinweis.]

    Um die SEO-Bildernamen im laufendem Shop zu aktivieren.
    Bitte "Alle Bilder erneut hochladen" und vorher alle alten Bilder Manuell in den Unterordnern von /images/product_images löschen.
    Achtung: index.html und noimage.gif in den Unterordnern nicht mit löschen.

    Anlegen von Dummy-Sonderangeboten verhindern:

    [...]
    Die JTL-Wawi stellt automatisch jeden übertragenen Artikel als Sonderangebot ein, lässt ihn aber deaktiviert.

    Finde das ziemlich unübersichtlich und habe es deswegen nach diesen Quellen geändert:
    http://forum.jtl-software.de/einstellungen-jtl-wawi/5934-artikel-werden-als-sonderangebot-eingestellt.html
    http://forum.jtl-software.de/xt-commerce/9964-xtc-shop-alle-artikel-als-sonderangebot.html

    In den JTL-Dateien unter dbeS/Artikel.php muss folgender Code wie folgt auskommentiert werden:

    Code: PHP  [Auswählen]
                            /*
                            //erstelle Dummy für Sonderpreise, falls es keinen Sonderpreis für diesen Artikel gibt
                            $spe_query = eS_execute_query("select specials_id from specials where products_id=".$products_id);
                            $special_obj = mysql_fetch_object($spe_query);
                            if (!$special_obj->specials_id)
                            {
                                    eS_execute_query("insert into specials (products_id, status) values ($products_id,0)");
                            }
                            */

    Für alle bei denen der Tipp zu spät kommt, die können die Tabelle "specials" leeren und damit alle Sonderangebote löschen und neu anfangen.

    Also mit phpMyAdmin:

    Code: SQL  [Auswählen]
    TRUNCATE TABLE specials

    Quelle: JTL-Wawi - Artikel werden als Sonderangebot eingestellt verhindern

    FIX für "MODUL: Rabatt auf Zahlungsarten":

    Für alle, die das Problem mit "MODUL: Rabatt auf Zahlungsarten" auch haben hier die Lösung von Thomas Lisson (Firma JTL)

    suche in "GetBestellungPos.php":

    Code: PHP  [Auswählen]
                        case 'ot_payment':
                            $steuersatz = $einstellungen->versandMwst;
                            break;

    ersetze mit:

    Code: PHP  [Auswählen]
                        case 'ot_payment':
                            $total_pos->value*=-1;
                            $steuersatz = $einstellungen->versandMwst;
                            break;

    Tipp: Nur Bestellungen eines bestimmten Bestellstatus abholen:

    Evtl. mag der ein oder andere ja nur Bestellungen aus dem Shop abholen, die einen bestimmten Bestellstatus haben.

    Suche in Datei "/admin/includes/modules/jtlwawi_connector/dbeS/GetBestellung.php":

    Code: PHP  [Auswählen]
    ]       $cur_query = eS_execute_query("select orders.payment_method, orders.orders_id, orders.customers_id, orders.comments, date_format(orders.date_purchased, \"%d.%m.%Y\") as ErstelltDatumF from orders LEFT JOIN eazysales_sentorders ON orders.orders_id=eazysales_sentorders.orders_id where eazysales_sentorders.orders_id is NULL limit 1");

    und ersetze mit:

    Code: PHP  [Auswählen]
            $cur_query = eS_execute_query("select orders.payment_method,
                                                  orders.orders_id,
                                                  orders.customers_id,
                                                  orders.comments,
                                                  orders.orders_status,
                                                  date_format(orders.date_purchased, \"%d.%m.%Y\") as ErstelltDatumF
                                             from orders
                                        LEFT JOIN eazysales_sentorders
                                               ON orders.orders_id=eazysales_sentorders.orders_id
                                            where eazysales_sentorders.orders_id is NULL
                                              and (orders.orders_status LIKE 6
                                                  OR orders.orders_status LIKE 7
                                                  OR orders.orders_status LIKE 8)
                                            limit 1"
    );

    oder kürzer:

    Code: PHP  [Auswählen]
            $cur_query = eS_execute_query("select orders.payment_method,
                                                  orders.orders_id,
                                                  orders.customers_id,
                                                  orders.comments,
                                                  orders.orders_status,
                                                  date_format(orders.date_purchased, \"%d.%m.%Y\") as ErstelltDatumF
                                             from orders
                                        LEFT JOIN eazysales_sentorders
                                               ON orders.orders_id=eazysales_sentorders.orders_id
                                            where eazysales_sentorders.orders_id is NULL
                                              and orders.orders_status IN (6,7,8)
                                            limit 1"
    );

    Damit werden beispielsweise nur die Bestellstati 6, 7 oder 8 abgeholt.

    Anleitung für Produkt Merkmale: JTL WaWi & XTC Produkt Merkmale verwenden

    [EDIT Tomcraft 10.01.2010: Eine erweiterte Version wurde von Steffen bereitgestellt.]
    [EDIT Tomcraft 11.08.2010: Inklusive JPG/GIF/PNG Bilderweiterung, danke an kukki]
    [EDIT Tomcraft 20.09.2010: Danke an h-h-h für die Erweiterung bezüglich der Bildnamen.]
    [EDIT Tomcraft 21.10.2010: Fix für lange Artikelnamen integriert.]
    [EDIT Tomcraft 19.12.2010: Eine Erweiterung für die Übertragung der HTN gibt es hier von Iamex und erweitert von zub.]
    [EDIT Tomcraft 18.08.2011: Korrigierte setArtikelBild.zip angehängt, Danke an EatMyShorts.]
    [EDIT Tomcraft 08.11.2011: Modul aktualisiert.]
    [EDIT Tomcraft 06.02.2012: Fix für "MODUL: Rabatt auf Zahlungsarten" eingefügt, Danke an vollautomat für die Lösung.]
    [EDIT Tomcraft 09.08.2012: Anrede-Abfrage in "/dbeS/GetKundeZuBestellung.php" erweitert.]
    [EDIT Tomcraft 23.04.2013: Fix für MODUL: Sperrgut Modul 3 Plus für modified eCommerce Shopsoftware eingefügt.]
    [EDIT Tomcraft 30.05.2013: Schnittstellen für PHP 5.3 angepasst.]
    [EDIT Tomcraft 02.04.2014: Tipp für Abholung von Bestellungen eines bestimmten Bestellstatus eingefügt.]
    [EDIT Tomcraft 04.06.2014: Fehler in Schnittstellen korrigiert.]
    [EDIT Tomcraft 27.10.2014: Anleitung für Produkt Merkmale verlinkt.]

    Empfohlene Version: "JTL-Wawi_Connector_modified-shop.zip" (UTF-8 bitte nur in Spezialfällen benutzen, wenn ihr wisst, was ihr macht!)

    Linkback: https://www.modified-shop.org/forum/index.php?topic=1997.0

    speedy

    • Viel Schreiber
    • Beiträge: 3.215
    Hallo,

    braucht man dafür externen Zugriff auf die MySQL Datenbank ?

    Shakehand

    • Frisch an Board
    • Beiträge: 63
    • Geschlecht:
    nein, wird über den onlineshop eingebunden.

    speedy

    • Viel Schreiber
    • Beiträge: 3.215
    danke dir shakehand, konnte leider nie auf offizieller Seite dazu was finden und konnte mir nicht vorstellen das es ohne geht. Gab da mal ein kommerzielles Windows-Programm, weiß den Namen nimmer, das ging nur mit externem DB-Zugriff ;)

    floh

    • Viel Schreiber
    • Beiträge: 877
    • Geschlecht:
    nein, wird über den onlineshop eingebunden.

    So nicht ganz richtig. Connector MUSS einmal serverseitig installiert werden, danach die Install-Daten (API-Key, absoluter Pfad und Paswort) in die Wawi (--> unter Webshopanbindung). Nun ist der Abgleich/Administration der Artikel/Aufträge, Kunden etc. mit Modified möglich....   :wink:

    Gruß

    Volker

    Mampa

    • Fördermitglied
    • Beiträge: 34
    Hallo,

    nur eine kurze Frage zum JTL Connector. Ist dieser Connector hier irgendwie modifiziert für modified eCommerce Shopsoftware? Oder ist das der gleiche wie man auch bei JTL runterladen kann?

    Und wenn modifiziert, was wurde geändert? Changelog?

    Danke!

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 44.496
    • Geschlecht:
    Sollte der selbe sein. ;-)

    Grüße

    Torsten

    floh

    • Viel Schreiber
    • Beiträge: 877
    • Geschlecht:
    Außer der für "utf-8"... Dieser ist modifiziert worden und kann so nicht bei JTL runtergeladen werden...

    Und zum Vergleich was geändert worden ist --> "WinMerge"

    Gruß

    Volker

    rullator

    • Neu im Forum
    • Beiträge: 22
    Nur kurz zur Info. Ich bin mit "meinem" Shop von einem Server auf den anderen umgezogen und verwalte diesen auch mit JTL. Dabei bin ich 3 Wege gegangen, der Einfachste war dabei auch der Beste und fehlerlos.

    1) Erst probierte ich nach dem Umzug die Wawi komplett zu leeren, um einen kompletten Reimport der Daten in die Wawi zu bekommen. Der Re-Import klappte auch, leider werden aber nicht die Produktbilder mit importiert.

    2) In der Wawi die Webshopeinstellungen an den neuen Server angepasst und den Shop auf dem Server komplett geleert. Ein kompletter Export von Wawi in Shop sollte folgen. Leider brach dabei immer wieder die Verbindung ab und/oder es gab eine Fehlermeldung der Wawi. Ging also auch nicht.

    3) Die einfachste und beste Lösung: In der Wawi die Webshopeinstellungen aktualisieren und in der DB des Shops in der Tabelle eazysales_einstellungen die neue shopURL eintragen. Fertig. Schnell und einfach ;)

    Das nur als Info, falls mal jemand das gleiche Problem hat.

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 44.496
    • Geschlecht:
    Danke für den Tipp!

    sgei

    • Fördermitglied
    • Beiträge: 327
    • Geschlecht:
    Hallo,

    für den JTL-Connector gibt es zwei sinnvolle FIXES:

    1. Tatsächliches Löschen von Artikeln und Kategorien aus der Shop-DB

    Wenn man Artikel und Kategorien in JTL löscht, werden diese beim Webshopabgleich in der Shop-DB nicht wirklich gelöscht, sondern lediglich auf inaktiv gesetzt.
    Der FIX behebt dieses Problem.

    Siehe: Tatsächliches Löschen von Artikeln im Shop

    2. "Ab" vor dem Artikelpreis bei Artikeln ohne Staffelpreise entfernen

    Der JTL-Connector kennt seitens der WAWI nur die Kundengruppen "Endkunde" und "Händler". Im Admin des Connectors erstellt man das Mapping für die Zuordnung der Kundengruppen zu den Shop-Kundengruppen. Das heisst, dass alle Shop-Kundengruppen, die der JTL-Kundengruppe "Endkunde" zugeordnet sind, die gleichen Preise erhalten und genauso bei den "Händlern".

    Beim Webshopabgleich wird in den Artikelstamm der Shopdatenbank der Artikelpreis übertragen. Allerdings wird der Artikelpreis für die Menge 1 auch in jede Kundengruppe geschrieben. Genau das erzeugt das "Ab" vor dem Preis, obwohl alle Preise gleich sind.
    XTC prüft leider nicht, ob die hinterlegten Preise für die Menge 1 gleich oder unterschiedlich sind. Für XTC gibt es einfach nur mehr als einen Preis und deshalb kommt das "Ab".

    Was kann man tun?

    Entweder XTC dazu bringen, vor der Preisanzeige einen Vergleich zu machen, oder einfacher die Kundengruppenpreise nur eintragen, wenn es wirklich Staffelpreise gibt.

    Siehe: Lösung für "Preis ab"
    bzw.: "Ab" bei Artikel ohne Staffelpreis entfernen



    Ich habe die beiden FIXES in die zwei Connectoren (ORI und UTF8) eingepflegt und stelle diese hier zum Download bereit.

    Wer den Connector schon installiert hat, kann die beiden Dateien (Artikel.php und Kategorie.php) einfach austauschen.

    ...gefixte Connectoren.
      JTL-Wawi_Connector_xtc_fix1.0.zip
      JTL-Wawi_Connector_xtc_utf8_fix1.0.zip

    ...geänderte Dateien
      fix1.0_connector_ori.zip
      fix1.0_connector_utf8.zip

    Steffen

    [EDIT Tomcraft 11.08.2010: Inklusive JPG/GIF/PNG Bilderweiterung, danke an kukki]

    ds170477

    • Fördermitglied
    • Beiträge: 1.522
    • Geschlecht:
    Super Steffen,

    Ich würde empfehlen, nur den JTL-Wawi_Connector_xtc_fix1.0.zip oder die Daten von fix1.0_connector_ori.zip zu benutzen.

    Hintergrund: modified eCommerce Shopsoftware arbeitet i.d.R. mit Datenbanksprache/Zeichensatz Latin 1 / German 2

    Somit hat man bei der Verwendung des UTF8 Connectors mindestens die Umlaute und ggfs. Sonderzeichen zerschossen. :lol1:

    Gruss

    Daniel

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 44.496
    • Geschlecht:
    Vielen Dank Steffen!

    Grüße

    Torsten

    Elmar

    • Fördermitglied
    • Beiträge: 903
    super sache

    zub

    • Schreiberling
    • Beiträge: 401
    Anpassung des Connector zum Versenden von Bildern die nur als Link vorhanden sind:
    Da JTL von Haus aus keine Bilder als Link versendet muss man einen Umweg nehmen:

    JTL bietet die Möglichkeit Funktionsattribute an den Shop zu schicken z.B.: "Herstellerlink"
    Man Importiert als die Bilder mit der Ameise als Funktionsattribut "Herstellerlink",
    im Connector unter "/dbeS/Attribute.php" in

    Code: PHP  [Auswählen]
    case 'herstellerlink'

    den Eintrag wie folgt ändern:

    Code: PHP  [Auswählen]
    eS_execute_query("update products set products_image=\"".realEscape($Attribut->content)."\" where products_id=".$Attribut->products_id);

    jetzt werden die Bilder die nur als Link vorliegen an den Shop übertragen.

    hier noch mal die Beschreibung von web28: Import Artikel externe Artikelbilder

    MfG
    Waldemar
    Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware
               
    anything