Trade Republic - Provisionsfrei Aktien handeln
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: "Ab" bei Artikel ohne Staffelpreis entfernen

    sgei

    • Fördermitglied
    • Beiträge: 327
    • Geschlecht:
    "Ab" bei Artikel ohne Staffelpreis entfernen
    am: 03. Januar 2010, 21:12:17
    Hallo,

    ich wünsche allen modified eCommerce Shopsoftware-Usern ein erfolgreiches Jahr 2010!!!

    So jetzt zu meinem Problem:

    Ich habe im Shop 6 Artikel, von denen 5 Staffelpreise besitzen. Die Preisanzeige bei den Staffelpreis-Artikeln ist korrekt. Allerdings wird auch bei dem Artikel ohne Staffelpreise der Preis mit dem hässlichen "Ab" ausgegeben.

    Gibt es dafür eine Lösung? Im Demoshop scheint es ja irgendwie zu funktionieren.

    Danke.

    Steffen

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



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

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.161
    • Geschlecht:
    "Ab" bei Artikel ohne Staffelpreis entfernen
    Antwort #1 am: 03. Januar 2010, 21:16:02
    Hi Steffen, schau mal hier: https://trac.modified-shop.org/changeset/401

    Grüße

    Torsten

    sgei

    • Fördermitglied
    • Beiträge: 327
    • Geschlecht:
    "Ab" bei Artikel ohne Staffelpreis entfernen
    Antwort #2 am: 03. Januar 2010, 21:22:04
    Hallo Torsten,

    ich habe die xtcPrice.php (Changeset 401) drübergebügelt. Es hat sich lediglich die Anzeige "Stückpreis" zu "Einzelpreis" geändert. Der Artikel ohne Staffelpreise trägt weiterhin das "Ab".

    Steffen

    ichbins

    • Mitglied
    • Beiträge: 115
    • Geschlecht:
    "Ab" bei Artikel ohne Staffelpreis entfernen
    Antwort #3 am: 03. Januar 2010, 21:42:01
    Die Lösung ist in Dokumans Handbuch zu finden
    Zitat
    9.16 Bei den Preisauszeichnungen das “Ab“ entfernen .........................................................80

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.161
    • Geschlecht:
    "Ab" bei Artikel ohne Staffelpreis entfernen
    Antwort #4 am: 03. Januar 2010, 22:00:25
    Stimmt. ;-)

    Bin mir gerade gar nicht sicher, ob wir das in 1.03 schon berücksichtigt haben.

    Grüße

    Torsten

    sgei

    • Fördermitglied
    • Beiträge: 327
    • Geschlecht:
    "Ab" bei Artikel ohne Staffelpreis entfernen
    Antwort #5 am: 03. Januar 2010, 22:18:10
    Hallo,

    also die im Handbuch beschriebenen Erweiterungen der SQL-Statements sind in der V1.03 integriert. Allerdings geht es trotzdem nicht richtig.

    Ich habe einen Artikel der weder Staffelpreise noch Attribute besitzt. Es wird trotzdem das "Ab" angezeigt. :silly:

    Steffen

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    "Ab" bei Artikel ohne Staffelpreis entfernen
    Antwort #6 am: 04. Januar 2010, 12:11:29
    was noch NICHT berücksichtigt ist, ist die Änderung der "function checkAttributes" in der xtcPrice.php:

    Code: PHP  [Auswählen]
    function checkAttributes($pID) {
    if (!$this->showFrom_Attributes) return;
    if ($pID == 0) return;

    $products_attributes_query = "select patrib.options_values_price as atrib_price from ".TABLE_PRODUCTS_ATTRIBUTES." patrib, ".TABLE_PRODUCTS_OPTIONS." popt where pa-trib.products_id='".$pID."' and patrib.options_id = popt.products_options_id and popt.language_id = '".(int) $_SESSION['languages_id']."'";
    $products_attributes_query = xtDBquery($products_attributes_query);
    $price_from_valid = false;
    while ($atrib_prices = xtc_db_fetch_array($products_attributes_query, true)) {
        if ($atrib_prices['atrib_price']!=0) {
    $price_from_valid = true;
    break;
        }
      }
      if ($price_from_valid) {
    return ' '.strtolower(FROM).' ';
      }
      else {
    return;
      }
    }
     

    sgei

    • Fördermitglied
    • Beiträge: 327
    • Geschlecht:
    "Ab" bei Artikel ohne Staffelpreis entfernen
    Antwort #7 am: 04. Januar 2010, 12:22:42
    Hallo DokuMan,

    ich habe die Funktion mit deiner geposteten ersetzt, doch leider bleibt alles beim Alten.

    Steffen

    sgei

    • Fördermitglied
    • Beiträge: 327
    • Geschlecht:
    "Ab" bei Artikel ohne Staffelpreis entfernen
    Antwort #8 am: 05. Januar 2010, 10:02:19
    Hallo,

    wollte das Thema nur noch mal etwas pushen. Ich finde den Fehler einfach nicht.

    Hat niemand eine Idee?

    Steffen

    sgei

    • Fördermitglied
    • Beiträge: 327
    • Geschlecht:
    "Ab" bei Artikel ohne Staffelpreis entfernen
    Antwort #9 am: 05. Januar 2010, 17:30:13
    Hallo an Alle,

    ich habe bei Gunnart folgenden Kommentar gefunden:

    Zitat
    Das “Ab” taucht übrigens auch schon auf, wenn man für mehrere Kundengruppen einen Preis eingegeben hat. Macht man normalerweise auch nicht, wenn der Artikel für alle Kundengruppen eh gleich viel kosten soll. Nur einige Warenwirtschafts-Systeme können das nicht anders verwalten - Hat man drei Kundengruppen, hat auch jeder Artikel drei Preise. Und jeder Artikel ein “Ab” vor dem Preis.

    –> Das Phänomen hat aber nichts mit Staffelpreisen zu tun und ist wieder eine andere “Baustelle” …

    Ich füttere meinen Shop mit JTL-WAWI. Dort sind Preise für die Kundengruppen Endkunden und Händler hinterlegt. Ich brauche eigentlich die Händler-Kundengruppe nicht, aber sie ist halt da.
    Die Preise sind bei beiden Kundengruppen gleich.

    Wo und was muss denn erweitert werden, dass eine Abfrage prüft, ob die Preise für die unterschiedlichen Kundengruppem gleich sind? Wenn diese gleich sind, dann soll das "Ab" nicht erscheinen.

    Steffen

    koshiro

    • Fördermitglied
    • Beiträge: 2.297
    "Ab" bei Artikel ohne Staffelpreis entfernen
    Antwort #10 am: 05. Januar 2010, 17:44:58
    Hallo Steffen,
    also ich habe es bei mir so drin zu stehen, und funktioniert einwandfrei.

    Code: PHP  [Auswählen]
    function checkAttributes($pID) {
                    if (!$this->showFrom_Attributes) return;
                    if ($pID == 0)
                            return;
                    $products_attributes_query = "select count(*) as total from ".TABLE_PRODUCTS_OPTIONS." popt, ".TABLE_PRODUCTS_ATTRIBUTES." patrib where patrib.products_id='".$pID."' and patrib.options_id = popt.products_options_id and popt.language_id = '".(int) $_SESSION['languages_id']."'
     and patrib.options_values_price> 0"
    ;
                    $products_attributes = xtDBquery($products_attributes_query);
                    $products_attributes = xtc_db_fetch_array($products_attributes, true);
                    if ($products_attributes['total']> 0)
                            return ' '.strtolower(FROM).' ';
            }

    Gruß
    Micha

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.161
    • Geschlecht:
    "Ab" bei Artikel ohne Staffelpreis entfernen
    Antwort #11 am: 05. Januar 2010, 17:53:18
    Dafür muss es eine Möglichkeit in der JTL-Schnittstelle geben, dass die den Preis nur noch bei Artikelpreis einträgt und nicht noch woanders!

    Das Problem ist hier schon einmal aufgetaucht... ich erinnere mich wage...

    Grüße

    Torsten

    sgei

    • Fördermitglied
    • Beiträge: 327
    • Geschlecht:
    "Ab" bei Artikel ohne Staffelpreis entfernen
    Antwort #12 am: 05. Januar 2010, 21:41:15
    Hallo,

    also JTL legt für jede Kundengruppe einen Preis an. Sobald es mehr als einen Preis für einen Artikel gibt, auch wenn diese alle gleich sind, steht das "Ab" vor dem Artikelpreis.

    Man müsste folgendes machen:

    -in der Tabelle customers_status stehen die Kundengruppen (z.B. Admin, Gast, Endkunde, Händler, also 4 Stück)
    -es gibt dann 4 Tabellen für die Staffelpreise:
      personal_offers_by_customers_status_0 (Admin)
      personal_offers_by_customers_status_1 (Gast)
      personal_offers_by_customers_status_2 (Endkunde)
      personal_offers_by_customers_status_3 (Händler)
    -in den Tabellen stehen für jeden Artikel:

      price_id
      products_id
      quantity
      personal_offer

    Jetzt müsste man also folgendes machen:

    -schauen wieviele Kundengruppen es gibt (N)
    -N mal eine Schleife durchlaufen, die in den Tabellen personal_offers_by_customers_status_N schaut, ob die Preise (personal_offer) bei der gleichen quantity in jeder der 4 Tabellen für das jeweilige Produkt (products_id) gleich sind
    -wenn ja, dann gibt es keine unterschiedlichen Preise für die Kundengruppen bei der jeweiligen Staffel (quantity)

    So, das ist meine Idee dazu. Ich weiss nur nicht wie ich das umsetzten kann.

    Kann mir jemand helfen?

    Im Forum von JTL wurde das Thema hier behandelt:
    http://forum.jtl-software.de/xt-commerce/2376-loesung-fuer-preis-ab.html

    Danke.

    Steffen

    sgei

    • Fördermitglied
    • Beiträge: 327
    • Geschlecht:
    "Ab" bei Artikel ohne Staffelpreis entfernen
    Antwort #13 am: 05. Januar 2010, 22:18:21
    Hallo,

    im Connector vom JTL gibt es in der Datei Artikel.php eine Funktion namens "insertPreise()". Diese Fuktion schreibt in die Tabellen personal_offers_by_customers_status_N die Preise in Abhängigkeit des Mappings im Admin des Connectors, d.h.:

    JTL kennt nur die Kundengruppen Endkunde und Händler. Mit dem Mapping im Connector-Admin stellt man ein, welche Shop Kundengruppen den JTL-Kundengruppen entsprechen z.B. JTL-Endkunde ist bei mir Admin, Gast und Endkunde, JTL-Händler ist bei mir Händler.

    Mit der Funktion insertPreise() werden auf Basis des Mappings die Staffelpreise bei den jeweiligen Kundengruppen eingetragen. Blöd ist, dass wenn es keine Staffelpreise gibt trotzdem in jede Kundegruppe ein Preis eingetragen wird.
    Man müsste also die untenstehende Funktion so abändern, dass nur dann ein Eintrag in die jeweilige Tabelle personal_offers_by_customers_status_0 erfolgt, wenn es wirklich Staffelpreise gibt.

    Code: PHP  [Auswählen]
    function insertPreise($products_id)
    {
            $personalOfferTable = "personal_offers_by_customers_status_";
            $endKunden_arr = explode(";",$GLOBALS['einstellungen']->mappingEndkunde);
            foreach ($endKunden_arr as $customers_status_id)
            {
                    if ($customers_status_id>=0 && strlen($customers_status_id)>0)
                    {
                            $table = $personalOfferTable.$customers_status_id;
                            eS_execute_query("delete from $table where products_id=".$products_id);
                            eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,1,".floatval($_POST["ArtikelVKNetto"]).")");
                            if (intval($_POST["PAnz1"])>0)
                                    eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["PAnz1"]).",".floatval($_POST["PPreis1"]).")");
                            if (intval($_POST["PAnz2"])>0)
                                    eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["PAnz2"]).",".floatval($_POST["PPreis2"]).")");
                            if (intval($_POST["PAnz3"])>0)
                                    eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["PAnz3"]).",".floatval($_POST["PPreis3"]).")");
                            if (intval($_POST["PAnz4"])>0)
                                    eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["PAnz4"]).",".floatval($_POST["PPreis4"]).")");
                            if (intval($_POST["PAnz5"])>0)
                                    eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["PAnz5"]).",".floatval($_POST["PPreis5"]).")");
                    }
            }
            $haendlerKunden_arr = explode(";",$GLOBALS['einstellungen']->mappingHaendlerkunde);
            foreach ($haendlerKunden_arr as $customers_status_id)
            {
                    if ($customers_status_id>=0 && strlen($customers_status_id)>0)
                    {
                            $table = $personalOfferTable.$customers_status_id;
                            eS_execute_query("delete from $table where products_id=".$products_id);
                            eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,1,".floatval($_POST["ArtikelVKHaendlerNetto"]).")");
                            if (intval($_POST["HAnz1"])>0)
                                    eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["HAnz1"]).",".floatval($_POST["HPreis1"]).")");
                            if (intval($_POST["HAnz2"])>0)
                                    eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["HAnz2"]).",".floatval($_POST["HPreis2"]).")");
                            if (intval($_POST["HAnz3"])>0)
                                    eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["HAnz3"]).",".floatval($_POST["HPreis3"]).")");
                            if (intval($_POST["HAnz4"])>0)
                                    eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["HAnz4"]).",".floatval($_POST["HPreis4"]).")");
                            if (intval($_POST["HAnz5"])>0)
                                    eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["HAnz5"]).",".floatval($_POST["HPreis5"]).")");
                    }
            }
    }
    Hat jemand eine Idee wie?

    Steffen

    vr

    • modified Team
    • Beiträge: 2.664
    "Ab" bei Artikel ohne Staffelpreis entfernen
    Antwort #14 am: 05. Januar 2010, 22:32:40
    Hi Steffen,

    was gibt denn bei Dir im Fall des Artikels, der kein "Ab" haben soll, die Abfrage zurück?

    Code: SQL  [Auswählen]
    SELECT COUNT(*) AS total
    FROM products_options po
    JOIN products_attributes pa ON pa.options_id = po.products_options_id
    WHERE pa.products_id = 4711
    AND po.language_id = 2
    AND pa.options_values_price> 0

    Oder wird die erst gar nicht ausgeführt?

    Grüße, Volker
    7 Antworten
    6597 Aufrufe
    09. Mai 2010, 18:22:23 von Kwonga
    6 Antworten
    4646 Aufrufe
    12. März 2018, 14:32:49 von andy.kegel
    30 Antworten
    16336 Aufrufe
    26. März 2014, 01:32:12 von VitalKi
               
    anything