+ Antworten
Seite 4 von 4 ErsteErste 1 2 3 4
Ergebnis 31 bis 36 von 36

Thema: Virtuemart- Zahlungsart nach Herkunftsland

  1. #31
    War schon öfter hier Avatar von Kohli
    Registriert seit
    19.03.2006
    Ort
    Brieselang
    Beiträge
    149
    Bedankte sich
    21
    Erhielt 3 Danksagungen
    in 3 Beiträgen

    Standard

    Hallo zusammen.

    Ich bin nicht ganz schlau daraus geworden und bitte um Hilfe.

    Ich habe sechs Kundengruppen angelegt:

    International1_shopper (Belgien, Frankreich, Großbritanien, Irland, Italien, Lettland, Litauen, Luxemburg, Niederlande, Österreich, Polen, Slowakei, Slowenien, Tschechien, Ungarn, Monaco, Estland)

    International2_shopper (Liechtenstein, Schweiz)

    International3_shopper(Portugal, Spanien, Malta)

    International4_shopper (USA, Kanada)

    International5_shopper (Japan, Südafrika, Australien, Neuseeland)

    International6_shopper (Ceuta - ES, Melilla - ES, Gibraltar, Guernsey, Jersey, Kanar. Inseln - ES)

    Die ID für den ersten ist 4 und endet demnach bei 9. Jeder Gruppe wurden entsprechende Zahlungsarten zugeordnet.


    Könnte Ihr mir den Code sagen, den ich jetzt einfügen müsste? Wäre echt klasse, tue mich mit mit dem angezeigten Code etwas schwer.

  2. #32
    Neu an Board
    Registriert seit
    19.04.2010
    Beiträge
    2
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    hätte zu diesem Thema auch eine frage.

    und zwar möchte ich auch das die User bei der Anmeldung in Gruppen zugeordnet werden.

    ich habe ein neues DropDown Feld angelegt, da können die User auswählen in welchem Club sie angemeldet sind.

    Das DropDown Feld heißt vm_gc
    Titel und Value
    A a
    B b
    C c

    Die Kundengruppen heißen
    a und die ID ist 18
    b und ID 19
    c und ID 20

    Club "a" soll in Kundengruppe "a"
    "b" in "b" und "c" in "c"

    So ist mein Code:

    PHP-Code:
        // Insert vendor relationship
            
    $q "INSERT INTO #__{vm}_auth_user_vendor (user_id,vendor_id)";
            
    $q .= " VALUES ";
            
    $q .= "('" $uid "','";
            
    $q .= $ps_vendor_id "') ";
            
    $db->query($q);
            
            
    $d['shopper_group_id'] = '';
            
            
    // Get the ID of the shopper group for this customer
            
    if( $d['isValidVATID'] ) {
                
                if( 
    trim($d['__euvatid_field']->params) != '' ) {
                    
    $shopper_group = new vmParameters$d['__euvatid_field']->params );
                    
    $d['shopper_group_id'] = $shopper_group->get('shopper_group_id');
                }
            }
            if( empty(
    $d['shopper_group_id'])) {
                
    $q =  "SELECT shopper_group_id from #__{vm}_shopper_group WHERE ";
                
    $q .= "`default`='1' ";

                
    $db->query($q);
                if (!
    $db->num_rows()) {  // take the first in the table
        
                    
    $q =  "SELECT shopper_group_id from #__{vm}_shopper_group";
                    
    $db->query($q);
                }
                
    $db->next_record();

                if( 
    $d["vm_gc"]=='a')
                
    $d['shopper_group_id'] = '18'// die shopper_group_id fuer deine neue Kundengruppe (nachsehen)
                  
    elseif( $d["vm_gc"]=='b')
                 
    $d['shopper_group_id'] = '19';
                  elseif( 
    $d["vm_gc"]=='c')
                 
    $d['shopper_group_id'] = '20';
         
         else
                
    $d['shopper_group_id'] = $db->f("shopper_group_id");
            }
            
            
    $customer_nr uniqidrand() );
            
    // Insert Shopper -ShopperGroup - Relationship
            
    $q  "INSERT INTO #__{vm}_shopper_vendor_xref ";
            
    $q .= "(user_id,vendor_id,shopper_group_id,customer_number) ";
            
    $q .= "VALUES ('$uid', '$ps_vendor_id','".$d['shopper_group_id']."', '$customer_nr')";
            
    $db->query($q); 
    Mit dem "country" Beispiel funktioniert das bei mir wunderbar, aber ich brauch das aus einem dem Feld "vm_gc".

    Wo ist mein Fehler?

    Hoffe ihr könnt mir helfen.

  3. #33
    Neu an Board
    Registriert seit
    04.06.2007
    Beiträge
    18
    Bedankte sich
    2
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard Nachnahme für 2 Länder

    Zitat Zitat von vnNoob Beitrag anzeigen
    Der Ansatz von dot°NETt bringt zwei Probleme mit sich: Er funktioniert nicht, wenn der Kunde entweder das Land nachträglich ändert, oder eine Lieferadresse angibt, deren Land von dem der Rechnungsadresse abweicht.

    Deshalb hier noch eine andere Lösung für das ursprüngliche Problem:
    Beim CheckOut - Step3 wird die Zahlungsart "Nachnahme" nicht angezeigt, wenn der Kunde nicht nach Deutschland bestellt....

    In der Datei /administrator/components/com_virtuemart/classes/ps_payment_method.php diese Stelle suchen:
    PHP-Code:
    // Start radio list
    while ($db->next_record()) { 
    und danach das hier einfügen:
    PHP-Code:
    $ship_to_info_id mosGetParam$_REQUEST'ship_to_info_id' );
    $q "SELECT country FROM #__{vm}_user_info ";
    $q .= "WHERE user_info_id='".$ship_to_info_id"'";
    $dbd = new ps_DB;
    $dbd->query($q);
    $country $dbd->f("country");
    if ((
    $db->f("payment_method_id") != 19) || ($country == 'DEU')){ // 19 = Nachnahme (Nachsehen) 
    (Um die ID für die Zahlungsart "Nachnahme" zu erfahren, kann man z.B. vorübergehend
    PHP-Code:
    echo $db->f("payment_method_id"); 
    vor die if-Abfrage stellen, dann werden im Frontend die ID's vor den Zahlungsarten angezeigt.)

    Außerdem muss am Ende der Funktion eine abschließende geschweifte Klammer ergänzt werden, also kommen nach:
    PHP-Code:
           if ($horiz) {
             echo(
    " ");
           } else {
             echo(
    "<br />");
           } 
    noch drei abschließende geschweifte Klammern, statt wie bisher zwei.

    Bei mir funktioniert das soweit wie bisher getestet bestens...

    mfG

    Der Tip funktioniert für Deutschland perfekt. Nur möchte ich Nachnahme für Deutschland und für Österreich anbieten.
    Allerdings mit unterschiedlichen Preisen, dazu habe ich eine neue payment_method angelegt mit der ID 21


    Code:
    	if (($db->f("payment_method_id") != 2) || ($country == 'DEU')); // 2 = Nachnahme Deutschland
    	elseif (($db->f("payment_method_id") != 21) || ($country == 'AUT')){
    leider funktioniert das so nicht!!

    Kann mir jemand sagen wie ich die Abfrage machen muß.


    Gruß

  4. #34
    Neu an Board
    Registriert seit
    22.07.2008
    Beiträge
    16
    Bedankte sich
    4
    Erhielt 12 Danksagungen
    in 7 Beiträgen

    Standard Nachnahme für mehrere Länder

    Zitat Zitat von WDS-Master Beitrag anzeigen
    Der Tip funktioniert für Deutschland perfekt. Nur möchte ich Nachnahme für Deutschland und für Österreich anbieten.
    Allerdings mit unterschiedlichen Preisen, dazu habe ich eine neue payment_method angelegt mit der ID 21


    Code:
    	if (($db->f("payment_method_id") != 2) || ($country == 'DEU')); // 2 = Nachnahme Deutschland
    	elseif (($db->f("payment_method_id") != 21) || ($country == 'AUT')){
    leider funktioniert das so nicht!!
    Das erste if hat ja jetzt keinen Anweisungsblock mehr, und das elseif wird von Besuchern aus DEU gar nicht erst erreicht...


    Zitat Zitat von WDS-Master Beitrag anzeigen
    Kann mir jemand sagen wie ich die Abfrage machen muß.
    Ich würde es so formulieren:
    Code:
    $pm_id = $db->f("payment_method_id");
    
    if ((($pm_id !=  2) && ($pm_id != 21)) ||
        (($pm_id ==  2) && ($country == 'DEU')) ||  //  2 = Nachnahme Deutschland
        (($pm_id == 21) && ($country == 'AUT'))) {  // 21 = Nachnahme Österreich
    Die erste Bedingung lässt alles durch, was KEINE Nachnahme ist.
    Die zweite Bedingung lässt zusätzlich Nachname-Deutschland durch, wenn der Besucher aus DEU kommt.
    Die dritte Bedingung lässt zusätzlich Nachname-Österreich durch, wenn der Besucher aus AUT kommt.

    Das ließe sich jetzt auf beliebig viele Länder ausdehnen...

    Müsste klappen - falls nicht, beschreibe mal bitte genau das Ergebnis - ich kann gerade nicht testen...

    Gruß

  5. Erhielt Danksagungen von:


  6. #35
    Neu an Board
    Registriert seit
    15.10.2008
    Beiträge
    6
    Bedankte sich
    2
    1 Danksagung in 1 Beitrag

    Standard

    Zitat Zitat von vnNoob Beitrag anzeigen
    Das erste if hat ja jetzt keinen Anweisungsblock mehr, und das elseif wird von Besuchern aus DEU gar nicht erst erreicht...


    Ich würde es so formulieren:
    Code:
    $pm_id = $db->f("payment_method_id");
    
    if ((($pm_id !=  2) && ($pm_id != 21)) ||
        (($pm_id ==  2) && ($country == 'DEU')) ||  //  2 = Nachnahme Deutschland
        (($pm_id == 21) && ($country == 'AUT'))) {  // 21 = Nachnahme Österreich
    Die erste Bedingung lässt alles durch, was KEINE Nachnahme ist.
    Die zweite Bedingung lässt zusätzlich Nachname-Deutschland durch, wenn der Besucher aus DEU kommt.
    Die dritte Bedingung lässt zusätzlich Nachname-Österreich durch, wenn der Besucher aus AUT kommt.

    Das ließe sich jetzt auf beliebig viele Länder ausdehnen...

    Müsste klappen - falls nicht, beschreibe mal bitte genau das Ergebnis - ich kann gerade nicht testen...

    Gruß
    @ vnNoob Vielen Dank für die Beschreibung - funktioniert!!!

  7. #36
    Neu an Board
    Registriert seit
    04.06.2007
    Beiträge
    18
    Bedankte sich
    2
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard

    Zitat Zitat von vnNoob Beitrag anzeigen
    Das erste if hat ja jetzt keinen Anweisungsblock mehr, und das elseif wird von Besuchern aus DEU gar nicht erst erreicht...


    Ich würde es so formulieren:
    Code:
    $pm_id = $db->f("payment_method_id");
    
    if ((($pm_id !=  2) && ($pm_id != 21)) ||
        (($pm_id ==  2) && ($country == 'DEU')) ||  //  2 = Nachnahme Deutschland
        (($pm_id == 21) && ($country == 'AUT'))) {  // 21 = Nachnahme Österreich
    Gruß
    Hallo vnNoob,

    konnte es leider erst heute testen.
    Klappt perfekt - SUPER Vielen Dank

+ Antworten
Seite 4 von 4 ErsteErste 1 2 3 4

Ähnliche Themen

  1. VirtueMart deutsche Sprachdatei
    Von Reinhardt im Forum Joomla E-Commerce Lösungen
    Antworten: 6
    Letzter Beitrag: 23.07.2011, 14:00
  2. Virtuemart / Zahlungsart Problem / 1.0.3
    Von Bigbang im Forum Gelöste Themen - Joomla E-Commerce Lösungen
    Antworten: 1
    Letzter Beitrag: 21.03.2006, 12:02
  3. Virtuemart deinstallieren
    Von bachplus im Forum Mambo Komponenten
    Antworten: 4
    Letzter Beitrag: 16.03.2006, 20:54
  4. VirtueMart 1.0.3 [Bitte testen!]
    Von soeren im Forum Veröffentlichungen von Komponenten, Modulen, Templates...
    Antworten: 0
    Letzter Beitrag: 01.03.2006, 15:34
  5. Problem mit VirtueMart 1.0.0 RC2
    Von BerlinTony im Forum Joomla E-Commerce Lösungen
    Antworten: 3
    Letzter Beitrag: 08.11.2005, 11:41

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein