Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware
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: Rechnungstexte nach Kundenart

    einfach112

    • Mitglied
    • Beiträge: 246
    Rechnungstexte nach Kundenart
    am: 17. Februar 2013, 11:26:10
    Hallo !
    Ich wünsche zunächst einen sonnigen Sonntag morgen !

    Da ich sowohl an Händler als auch an Endkunden verkaufe .... Habe ich ein Problem.

    Ich hätte gerne auf der Rechnung der Händler stehen :
    Zahlbar netto 10 Tage nach Erhalt der Ware.

    Das sollte natürlich nicht bei den Endkunden stehen.

    In welcher Datei müsste ich eine if / else abfrage machen ?
    in der Datei admin/print_order.html gehts ja nicht da nur html.....
    und in der /print_order.php finde ich da auch nicht wirklich was gescheites ?

    zudem habe ich eine Kundengruppe Namens Amazon erstellt.
    Wäre es auch möglich in sowohl Rechnung als auch in Lieferschein eine ähnliche abfrage zu machen vonwegen If Kundengruppe = Amazon then Zahlungsart  Amazon Payment ? also so Sinngemäß ?

    Vielen Dank wie immer im voraus für euer Backup !
    thx cu
    einfach112

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

    einfach112

    • Mitglied
    • Beiträge: 246
    Re: Rechnungstexte nach Kundenart
    Antwort #1 am: 27. Februar 2013, 13:26:56
    Keiner eine Idee wie ich das machen kann ?

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Rechnungstexte nach Kundenart
    Antwort #2 am: 27. Februar 2013, 14:14:31
    Dafür müsste dir entweder der customers_status oder der customer_status_name aus der DB-Tabelle orders zur Verfügung stehen.
    Da in der /admin/includes/classes/order.php bereits alle Daten aus der Tabelle orders abgefragt werden, brauchst du nur das customer array in besagter Datei erweitern:
    Irgendwo hier einfügen
    Code: PHP  [Auswählen]
    $this->customer = array(....,
    'customers_status' => $order['customers_status'],  
    ....
    );

    In der /admin/print_order.php definierst du dann ein Smarty indem du auf den oben gemachten array-Eintrag zugreifst
    Code: PHP  [Auswählen]
    $smarty->assign('customers_status', $order->customer['customers_status']);

    Ab jetzt steht dir im Template, also deiner /templates/DEIN_TEMPLATE/admin/print_order.html
    dieses Smarty zur Verfügung: {$customers_status}.
    Dort fragst du einfach ab:
    Code: PHP  [Auswählen]
    {if $customers_status == 'XX'}
    {#DEIN_TEXT#}
    {/if}

    Bei XX muß die Ziffer für den Status stehen (siehst du z.B. im Adminbereich bei Kunden, da steht die Ziffer in Klammern hinter dem customes_status_name) oder in der DB.
    DEIN_TEXT definierst du in /lang/SPRACHE/lang_SPRACHE.conf in der Sektion [print_order]
    und... Bingo :-D

    Gruß,
    noRiddle

    einfach112

    • Mitglied
    • Beiträge: 246
    Re: Rechnungstexte nach Kundenart
    Antwort #3 am: 27. Februar 2013, 20:35:22
    cool hört sich gut an ! Vielen Dank !

    einfach112

    • Mitglied
    • Beiträge: 246
    Re: Rechnungstexte nach Kundenart
    Antwort #4 am: 24. April 2013, 19:41:04
    soooooo nach langem hin und her habe ich es nun schon öfters probiert ... aber leider erscheint nichts auf meiner Rechnung ....
    gibt es irgendwie eine möglichkeit zu schauen wo der fehler liegt ?
    also in der html datei sowas wie echo"customer_status"   aber echo gibts ja nur in PHP ?!

    dann wüsste ich zumindest schonmal ob der Status überhaupt ankommt ?

    Vielen Dank
    einfach112

    einfach112

    • Mitglied
    • Beiträge: 246
    Re: Rechnungstexte nach Kundenart
    Antwort #5 am: 24. April 2013, 20:19:54
    sssooooo dumm bin ich ja garnicht....
    Also habe in der ...template/xtc5/admin/print_order.html einfach die if frage weg gelassen....
    Nun kommt der Text den ich in der .conf datei angegeben habe... also scheint was mit den anderen Daten nicht zu stimmen....
    jetzt nur die Frage bei welcher genau ....

    Hier mal das was ich geändert habe:
    (nur die letzte Zeile hier eingefügt!)

    Code: PHP  [Auswählen]
        $this->customer = array('name' => $order['customers_name'],
                                  'lastname' => $order['customers_lastname'],
                                  'firstname' => $order['customers_firstname'],
                                  'company' => $order['customers_company'],
                                  'csID' => $order['customers_cid'],
                                  'vat_id' => $order['customers_vat_id'],                              
                                  'shop_id' => $order['shop_id'],
                                  'ID' => $order['customers_id'],
                                  'cIP' => $order['customers_ip'],
                                  'street_address' => $order['customers_street_address'],
                                  'suburb' => $order['customers_suburb'],
                                  'city' => $order['customers_city'],
                                  'postcode' => $order['customers_postcode'],
                                  'state' => $order['customers_state'],
                                  'country' => $order['customers_country'],
                                  'format_id' => $order['customers_address_format_id'],
                                  'telephone' => $order['customers_telephone'],
                                  'email_address' => $order['customers_email_address'],
                                                  'customers_status' => $order['customers_status'],  );

    Dann in der admin/print_order.php ganz am ende der Datei folgendes eingefügt:
    (auch nur letzte Zeile eingefügt!)

    Code: PHP  [Auswählen]
            $smarty->display(CURRENT_TEMPLATE . '/admin/print_order.html');
    //      } else {
           
    //      $smarty->display(CURRENT_TEMPLATE . '/error_message.html');
    //      }
    $smarty->assign('customers_status', $order->customer['customers_status']);
    ?>

    Aber wie gesagt .... nix passiert ?

    einfach112

    • Mitglied
    • Beiträge: 246
    Re: Rechnungstexte nach Kundenart
    Antwort #6 am: 25. April 2013, 17:09:35
    Keiner eine Idee woran es liegen kann?
    Bzw. ne möglichkeit wie ich es testen kann woran es liegen könnte?

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Rechnungstexte nach Kundenart
    Antwort #7 am: 26. April 2013, 17:50:03
    Das letzte Komma (rot) hinter 'customers_status' => $order['customers_status'], muß weg.
    Ansonsten sollte das funktionieren wie ich vorher geschrieben habe.

    Gruß,
    noRiddle

    *NACHTRAG*
    Die Lösung ist allerdings nicht flexibel in dem Sinne, daß du die Kundengruppen ändern darfst.
    Wenn du z.B. Guest/Gast umbenennst behält/hat die umbenannte Kundengruppe den customers_status den vorher Guest/Gast hatte.

    einfach112

    • Mitglied
    • Beiträge: 246
    Re: Rechnungstexte nach Kundenart
    Antwort #8 am: 26. April 2013, 21:53:28
    Hi !
    Habe das komma entfernt!
    Aber leider kein erfolg......

    habe mal nen Screen eingefügt.... das ist doch die Kundengruppe oder ? also die 4 währe der Stauts oder Irre ich mich da ?

    Gibt es irgendwie die möglichkeit das ergebniss auszugeben wie z.B. bei php so in der art
    Echo"Customer_Status";
    oder so  ? somit könnte ich zumindest ausschliessen da ich da was falsch verstehe mit dem Status bzw. Kundengruppe.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Rechnungstexte nach Kundenart
    Antwort #9 am: 26. April 2013, 22:30:35
    Das ist schon richtig, die "4" hinter der Kundengruppe in deinem Screenshot ist der customers_status in der Tabelle orders.

    Welche Shopversion setzt du ein ?
    Ich habe es gerade mit 1.06 getestet, funktioniert.

    Schreibe die Zeile
    Code: PHP  [Auswählen]
    $smarty->assign('customers_status',$order->customer['customers_status']);

    mal bitte weiter oben in die /admin/print_order.php,
    da wo auch z.B. das steht
    Code: PHP  [Auswählen]
    $smarty->assign('address_label_customer',xtc_address_format($order->customer['format_id'], $order->customer, 1, '', '<br />'));

    Im Template gibst du einfach mal folgendes aus um zu sehen ob die customers_status zur Verfügung steht:
    Code: XML  [Auswählen]
    <strong>CUSTOMER-STATUS:</strong> {$customers_status}

    Gruß,
    noRiddle

    einfach112

    • Mitglied
    • Beiträge: 246
    Re: Rechnungstexte nach Kundenart
    Antwort #10 am: 27. April 2013, 16:53:45
    VIELEN DANK! ! !
    Es musste einfach nur nach oben!

    Vielen Dank für deine Hilfe!
    Hat mir sehr weiter geholfen....
    Wünsche dir einen sonnigen Sonntag.
    Danke
    Einfach112

    svenyo

    • Mitglied
    • Beiträge: 211
    Re: Rechnungstexte nach Kundenart
    Antwort #11 am: 11. Juli 2013, 09:07:48
    Hallo,

    In den Emails lässt sich ja mit der Variablen [WIDERRUF] die Widerrufsbelehrung einfügen. Wie kann man es anstellen, dass diese nur den Kundengruppen Gast/Neuer Kunde gesendet wird und bei Händlern ganz weg bleibt?

    Gruß,
    Sven

    svenyo

    • Mitglied
    • Beiträge: 211
    Re: Rechnungstexte nach Kundenart
    Antwort #12 am: 11. Juli 2013, 23:05:37
    Habe nach langen Try & Error folgende Lösung parat:

    In der jeweiligen .txt oder .hmtl Datei in ../templates/MyTemplate/mail/german/
    folgendes einfügen:
    Code: PHP  [Auswählen]
    {if $customers_status <= 2}
    [WIDERRUF]
    {/if}

    in der Datei send_order.php im root-Verzeichnis etwa bei Zeile 110 das fettgedruckte einfügen:

      //EOF - web28 - 2010-08-20 - Erweiterung Variablen für Bestätigungsmail

    Code: PHP  [Auswählen]
      $smarty->assign('COMMENTS', $order->info['comments']);
      $smarty->assign('EMAIL', $order->customer['email_address']);
      $smarty->assign('PHONE',$order->customer['telephone']);
      [b]$smarty->assign('customers_status', $order->customer['customers_status']);[/b]

    einfach112

    • Mitglied
    • Beiträge: 246
    Re: Rechnungstexte nach Kundenart
    Antwort #13 am: 21. Oktober 2013, 21:15:52
    Hallo.

    Da ich gerade von 1.05 auf 1.06 wechseln möchte und in der 1.06 Version die datei
    /httpdocs/admin/includes/classes/order.php sich sehr geändert hat, kann ich leider noRiddel´s alten Beitrag nicht mehr nutzen. (in 1.05 gehts genau so wie er geschrieben hat)

    Kann mir jemand sagen in welcher Datei ich nun den Smarty festlegen muss damit ich die Variable customers_status wieder in meiner print_order.html nutzen kann?

    Vielen Dank im voraus
    Einfach112

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Rechnungstexte nach Kundenart
    Antwort #14 am: 21. Oktober 2013, 22:13:12
    Die Class order befindet sich nun im Root/includes/classes/.
    Das kann man aber auch sehen wenn man in das alte File schaut.
    Dort steht nämlich jetzt:
    Code: PHP  [Auswählen]
    include(DIR_FS_CATALOG.DIR_WS_CLASSES.'order.php'); // modified eCommerce Shopsoftware 1.06: Using frontend class

    Man sollte die Abfrage nach dem Status allerdings genereller definieren, nämlich so:
    Code: PHP  [Auswählen]
    {if $customers_status == $smarty.const.DEFAULT_CUSTOMERS_STATUS_ID_GUEST}
    oder eben DEFAULT_CUSTOMERS_STATUS_ID_ADMIN für Admins oder DEFAULT_CUSTOMERS_STATUS_ID für "Neuer Kunde", also Kunden mit Kundenkonto.
    Dann könnte man im Backend die Zuordnung der Default-Status (Konfiguration => Mein Shop) theoretisch auch ändern ohne Probleme zu generieren.

    Gruß,
    noRiddle

    *NACHTRAG*
    Dann das Array in der class order natürlich mit customers_status_name erweitern... Quatsch...
    Trade Republic - Provisionsfrei Aktien handeln
               
    anything