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: Sortierung von Artikelmerkmalen bei JTL Webabgleich

    Blume

    • Frisch an Board
    • Beiträge: 51
    • Geschlecht:
    Hallo zusammen,

    ich habe ein kleines Problem, welches ich auch bereits im JTL Forum geschrieben habe, da aber immer nur auf deren Shoplösung JTL Shop3 verwiesen werde.
    Es geht um die Sortierung der Artikelmerkmale (in der WAWI Variationen genannt).
    Die Merkmale haben alle eine Sortiernummer, welche allerdings nicht übertragen wird und im BE meines Shops alle auf Sortiernummer "null" stehen (siehe Screenshot im Anhang).
    Nach einigen Versuchen bin ich mir nun recht sicher, dass die Bezeichnung der zuständigen Position in der Datenbank im Shop einfach nur anders benannt ist wie in der aus meiner Sicht zuständigen Bezeichnung im Connector der WAWI.
    Aus meiner Sicht sind da 2 Dateien für die Übertragung verantwortlich:
    Entweder die: admin/includes/modules/jtlwawi_connector/dbeS/Variation.php
    Code: PHP  [Auswählen]
    <?php
    /**
     * jtlwawi_connector/dbeS/Variation.php
     * Synchronisationsscript
     *
     * Es gelten die Nutzungs- und Lizenzhinweise unter http://www.jtl-software.de/jtlwawi.php
     *
     * @author JTL-Software <thomas@jtl-software.de>
     * @copyright 2006, JTL-Software
     * @link http://jtl-software.de/jtlwawi.php
     * @version v1.01 / 16.09.06
    */


    require_once("syncinclude.php");

    $return=3;
    if (auth())
    {
            if (intval($_POST["action"]) == 1 && intval($_POST['KeyEigenschaft']))
            {              
                    $Eigenschaft->kEigenschaft = intval($_POST["KeyEigenschaft"]);
                    $Eigenschaft->kArtikel = intval($_POST["KeyArtikel"]);
                    $Eigenschaft->cName = realEscape($_POST["Name"]);
                    $Eigenschaft->nSort = intval($_POST["Sort"]);

                    //hole products_id
                    $products_id = getFremdArtikel($Eigenschaft->kArtikel);
                    if ($products_id>0)
                    {
                            //hole einstellungen
                            $cur_query = eS_execute_query("select languages_id from eazysales_einstellungen");
                            $einstellungen = mysql_fetch_object($cur_query);
                           
                            //hol products_options_id
                            $cur_query = eS_execute_query("select products_options_id from products_options where language_id=".$einstellungen->languages_id." and products_options_name=\"$Eigenschaft->cName\"");
                            $options_id = mysql_fetch_object($cur_query);
                            if (!$options_id->products_options_id)
                            {
                                    //erstelle eigenschaft
                                    //hole max PK
                                    $cur_query = eS_execute_query("select max(products_options_id) from products_options");
                                    $max_id_arr = mysql_fetch_row($cur_query);
                                    $options_id->products_options_id = $max_id_arr[0]+1;
                                    eS_execute_query("insert into products_options (products_options_id,language_id,products_options_name) values ($options_id->products_options_id,$einstellungen->languages_id,\"$Eigenschaft->cName\")");
                                   
                                    //erstelle leere description für alle anderen Sprachen
                                    $sonstigeSprachen = getSonstigeSprachen($einstellungen->languages_id);
                                    if (is_array($sonstigeSprachen))
                                    {
                                            foreach ($sonstigeSprachen as $sonstigeSprache)
                                            {
                                                    eS_execute_query("insert into products_options (products_options_id,language_id,products_options_name) values ($options_id->products_options_id,$sonstigeSprache,\"$Eigenschaft->cName\")");
                                            }
                                    }
                            }
                            //mapping zu variation
                            setMappingEigenschaft($Eigenschaft->kEigenschaft,$options_id->products_options_id,$Eigenschaft->kArtikel);
                            $return = 0;
                    }
            }
            else
                    $return=5;
    }

    mysql_close();
    echo($return);
    logge($return);
    ?>

    oder die admin/includes/modules/jtlwawi_connector/dbeS/Variationwert.php
    Code: PHP  [Auswählen]
    <?php
    /**
     * jtlwawi_connector/dbeS/VariationsWert.php
     * Synchronisationsscript
     *
     * Es gelten die Nutzungs- und Lizenzhinweise unter http://www.jtl-software.de/jtlwawi.php
     *
     * @author JTL-Software <thomas@jtl-software.de>
     * @copyright 2006, JTL-Software
     * @link http://jtl-software.de/jtlwawi.php
     * @version v1.01 / 17.09.06
    */


    require_once("syncinclude.php");

    $return=3;
    if (auth())
    {
            if (intval($_POST["action"]) == 1 && intval($_POST['KeyEigenschaftWert']))
            {
                    $return = 0;
                   
                    $EigenschaftWert->kEigenschaftWert = intval($_POST["KeyEigenschaftWert"]);
                    $EigenschaftWert->kEigenschaft = intval($_POST["KeyEigenschaft"]);
                    $EigenschaftWert->fAufpreis = floatval($_POST["Aufpreis"]);
                    $EigenschaftWert->cName = realEscape($_POST["Name"]);
                    $EigenschaftWert->nSort = intval($_POST["Sort"]);
                    $EigenschaftWert->nLager = intval($_POST["Lager"]);
                    $EigenschaftWert->cArtikelNr = realEscape($_POST["ArtikelNr"]);
                    $EigenschaftWert->fGewichtDiff = floatval($_POST["GewichtDiff"]);

                    //hole einstellungen
                    $cur_query = eS_execute_query("select languages_id, tax_class_id, tax_zone_id from eazysales_einstellungen");
                    $einstellungen = mysql_fetch_object($cur_query);
                   
                    $products_options_id = getFremdEigenschaft($EigenschaftWert->kEigenschaft);
                    if ($products_options_id>0)
                    {
                            //schaue, ob dieser EigenschaftsWert bereits global existiert für diese Eigenschaft!!
                            $cur_query = eS_execute_query("select products_options_values.products_options_values_id from products_options_values, products_options_values_to_products_options where products_options_values_to_products_options.products_options_id=$products_options_id and products_options_values_to_products_options.products_options_values_id=products_options_values.products_options_values_id and products_options_values.language_id=$einstellungen->languages_id and products_options_values.products_options_values_name=\"$EigenschaftWert->cName\"");
                            $options_values = mysql_fetch_object($cur_query);
                           
                            if (!$options_values->products_options_values_id)
                            {
                                    //erstelle diesen Wert global
                                    //hole max PK
                                    $cur_query = eS_execute_query("select max(products_options_values_id) from products_options_values");
                                    $max_id_arr = mysql_fetch_row($cur_query);
                                    $options_values->products_options_values_id = $max_id_arr[0]+1;
                                    eS_execute_query("insert into products_options_values (products_options_values_id,language_id,products_options_values_name) values ($options_values->products_options_values_id,$einstellungen->languages_id,\"$EigenschaftWert->cName\")");                   
                                   
                                    //erstelle leere description für alle anderen Sprachen
                                    $sonstigeSprachen = getSonstigeSprachen($einstellungen->languages_id);
                                    if (is_array($sonstigeSprachen))
                                    {
                                            foreach ($sonstigeSprachen as $sonstigeSprache)
                                            {
                                                    eS_execute_query("insert into products_options_values (products_options_values_id,language_id,products_options_values_name) values ($options_values->products_options_values_id,$sonstigeSprache,\"$EigenschaftWert->cName\")");
                                            }
                                    }
                                   
                                    //erstelle verknüpfung zwischen wert und eig
                                    eS_execute_query("insert into products_options_values_to_products_options (products_options_id,products_options_values_id) values($products_options_id,$options_values->products_options_values_id)");
                            }
                   
                            //erstelle product_attribute
                            $kArtikel = getEigenschaftsArtikel($EigenschaftWert->kEigenschaft);
                            if ($kArtikel>0)
                            {
                                    $products_id = getFremdArtikel($kArtikel);
                                    if ($products_id>0)
                                    {
                                            //hole products_tax_class_id
                                            $cur_query = eS_execute_query("select products_tax_class_id from products where products_id=".$products_id);
                                            $cur_tax = mysql_fetch_object($cur_query);
                                            $Aufpreis = ($EigenschaftWert->fAufpreis/(100+get_tax($cur_tax->products_tax_class_id)))*100;
                                            $Aufpreis_prefix = "+";
                                            if ($Aufpreis<0)
                                            {
                                                    $Aufpreis_prefix = "-";
                                                    $Aufpreis*=-1;
                                            }
                                            $Gewicht_prefix = "+";
                                            if ($EigenschaftWert->fGewichtDiff<0)
                                            {
                                                    $Gewicht_prefix = "-";
                                                    $EigenschaftWert->fGewichtDiff*=-1;
                                            }
                                            eS_execute_query("insert into products_attributes (
                                                                                                            products_id,
                                                                                                            options_id,
                                                                                                            options_values_id,
                                                                                                            options_values_price,
                                                                                                            price_prefix,
                                                                                                            attributes_model,
                                                                                                            attributes_stock,
                                                                                                            options_values_weight,
                                                                                                            weight_prefix,
                                                                                                            sortorder)
                                                                                                            values(
                                                                                                            $products_id,
                                                                                                            $products_options_id,
                                                                                                            $options_values->products_options_values_id,
                                                                                                            $Aufpreis,
                                                                                                            \""
    .$Aufpreis_prefix."\",
                                                                                                            \""
    .$EigenschaftWert->cArtikelNr."\",
                                                                                                            $EigenschaftWert->nLager,
                                                                                                            $EigenschaftWert->fGewichtDiff,
                                                                                                            \""
    .$Gewicht_prefix."\",
                                                                                                            $EigenschaftWert->nSort)"
    );
                                            $query = eS_execute_query("select LAST_INSERT_ID()");
                                            $last_attribute_id_arr = mysql_fetch_row($query);                                      
                                            setMappingEigenschaftsWert($EigenschaftWert->kEigenschaftWert, $last_attribute_id_arr[0], $kArtikel);
                                    }
                            }
                    }
            }
            else
                    $return=5;
    }

    mysql_close();
    echo($return);
    logge($return);
    ?>

    oder eben beide.
    Wenn Ihr Euch als Fachleute die beiden Dateien anschaut, könnt Ihr da evtl. ableiten, was wie geändert werden muss, damit der XTC Modified die Sortierung aus der WAWI übernimmt?

    Vielen Dank für Eure Mühe und Beste Grüße
    Blume

    Linkback: https://www.modified-shop.org/forum/index.php?topic=19514.0
    8 Antworten
    3610 Aufrufe
    14. Juni 2011, 19:06:22 von knecht2020
    3 Antworten
    3189 Aufrufe
    07. Oktober 2009, 12:05:15 von Tomcraft
    1 Antworten
    1842 Aufrufe
    19. Januar 2016, 10:56:08 von hendrik
    5 Antworten
    4006 Aufrufe
    18. Januar 2011, 07:07:15 von Ivette
               
    anything