Featurewunsch - Kundenbestellung als Admin im Frontend

Thema wurde von C h r i s t i a n, 24. Mai 2012 erstellt.

  1. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    30.477
    Danke erhalten:
    5.932
    Danke vergeben:
    1.061
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Ich mache keine Werbung für andere Systeme. Hab ich an anderer Stelle schon mal gepostet.
    Aber als Eckpunkte:
    min. 1500 EUR Grundkosten und 30-50 EUR im monat für den kleinen Support musst rechnen.
    Dafür ist aber interne WaWi und Kassensysteme für Ladengeschäfte dabei, sowie vieles weitere alles intern in einem System läuft.

    Aber es können auch andere und nicht nur das System dass ich als Favorit habe.
     
  2. sileo

    sileo Erfahrener Benutzer

    Registriert seit:
    22. März 2012
    Beiträge:
    2.266
    Danke erhalten:
    274
    Danke vergeben:
    205
    o. k., hatte das auf das Shop-System bezogen und nicht auf das, was dahinter steht.
    Ich hatte am Anfang auch ein Ladengeschäft mit Kasse etc. und zusätzlich Versand. Dann mit dem entsprechenden WaWi, das war recht teuer schon damals.
     
  3. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    30.477
    Danke erhalten:
    5.932
    Danke vergeben:
    1.061
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Hab gerade mal geschaut die nehmen jetzt 2500 EUR aber incl. eigenem Design durch die und 3h Einfhrung ins System.

    Aber egal. so ne Maske kann ja auch für Gambio nicht so schwer zu erstellen sein.
     
  4. sileo

    sileo Erfahrener Benutzer

    Registriert seit:
    22. März 2012
    Beiträge:
    2.266
    Danke erhalten:
    274
    Danke vergeben:
    205
    Ist ne gute Sache, aber wie gesagt, der Kunde muss die BestellungsMail bekommen, sonst kann es rechtliche Probleme geben.
     
  5. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    30.477
    Danke erhalten:
    5.932
    Danke vergeben:
    1.061
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    kannst ihn ja nach seiner E-Mail Adresse fragen.
    Per Tel. würd ich eh nur Vorkasse machen und da muss er nun mal auf die Mail warten da dort die Daten drinnen sind.

    Oder halt bei Bestandskunden auch auf Rechnung.
     
  6. sileo

    sileo Erfahrener Benutzer

    Registriert seit:
    22. März 2012
    Beiträge:
    2.266
    Danke erhalten:
    274
    Danke vergeben:
    205
    ... genau so machen wir das. Bei telefonischer Bestellung geht nur Nachnahme oder Vorkasse.
     
  7. HolgerNils (xycons.de)

    HolgerNils (xycons.de) G-WARD 2013/2014

    Registriert seit:
    29. Oktober 2011
    Beiträge:
    1.959
    Danke erhalten:
    449
    Danke vergeben:
    367
    naja, als Kunde XY in der Anmeldung als Admin bestellen wäre schon was und haben viele. Nur unsers nicht ;-( Wär schon schön.
    Zumindest hilfreicher als das x-te Feature, was kaum einer braucht.
     
  8. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Ich hatte das mal durch eine kleine Änderung in login.php wie folgt gelößt: man konnte sich mit der eMail-Adresse des Kunden und dem Admin-Passwort als Kunde einloggen…
     
  9. HolgerNils (xycons.de)

    HolgerNils (xycons.de) G-WARD 2013/2014

    Registriert seit:
    29. Oktober 2011
    Beiträge:
    1.959
    Danke erhalten:
    449
    Danke vergeben:
    367
    Das wär ja fast zu einfach... ;-)

    Weißt Du noch wie Du das angestellt hast, Avenger?
     
  10. C h r i s t i a n

    C h r i s t i a n G-WARD 2012

    Registriert seit:
    26. April 2011
    Beiträge:
    3.456
    Danke erhalten:
    330
    Danke vergeben:
    551
    das wäre doch schon perfekt! Nur wie?
     
  11. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    So:

    folgenden Code als "user_classes\overloads\LoginContentView\pt_LoginContentView.inc.php" kopieren (und Cache löschen):

    PHP:
    <?php
    /* --------------------------------------------------------------
    pt_AccountLoginContentView.inc.php 2011-09-26 gambio
    Gambio GmbH
    http://www.gambio.de
    Copyright (c) 2011 Gambio GmbH

    Copyright (c) 2012 Avenger, entwicklung@powertemplate.de
    Allow login to user account with user's eMail and main admins' password

    Released under the GNU General Public License (Version 2)
    [http://www.gnu.org/licenses/gpl-2.0.html]
    --------------------------------------------------------------

    based on:
    (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
    (c) 2002-2003 osCommerce(login.php,v 1.79 2003/05/19); www.oscommerce.com
    (c) 2003      nextcommerce (login.php,v 1.13 2003/08/17); www.nextcommerce.org
    (c) 2003 XT-Commerce - community made shopping http://www.xt-commerce.com ($Id: login.php 1143 2005-08-11 11:58:59Z gwinger $)

    Released under the GNU General Public License
    -----------------------------------------------------------------------------------------
    Third Party contribution:

    guest account idea by Ingo T. <xIngox@web.de>
    ---------------------------------------------------------------------------------------*/

    class pt_LoginContentView extends pt_LoginContentView_parent
    {
        function 
    get_html($p_coo_econda false$p_action false$p_email_address false$p_password false$p_info_message false)
        {
            
    $gm_log MainFactory::create_object('GMTracker');
            
    $gm_log->gm_delete();

            if(
    $gm_log->gm_ban() == false) {
                if (isset (
    $_GET['action']) && ($_GET['action'] == 'process')) {
                    
    $email_address xtc_db_prepare_input($_POST['email_address']);
                    
    $password xtc_db_prepare_input($_POST['password']);
                    
    // Check if email exists
                    
    $check_customer_query xtc_db_query("
              select customers_id, customers_vat_id, customers_firstname,customers_lastname, customers_gender, customers_password, customers_email_address, customers_default_address_id from "
    .
                
    TABLE_CUSTOMERS." where customers_email_address = '".xtc_db_input($email_address)."' and account_type = '0'");
                    if (!
    xtc_db_num_rows($check_customer_query)) {
                        
    $_GET['login'] = 'fail';
                        
    $info_message TEXT_NO_EMAIL_ADDRESS_FOUND;

                        
    $gm_log->gm_track();
                    } else {
                        
    $check_customer xtc_db_fetch_array($check_customer_query);
                        
    // Check that password is good

              //Avenger
              
    $password_ok=xtc_validate_password($password$check_customer['customers_password']);
              if (!
    $password_ok)
              {
                
    $sql="SELECT `customers_password` FROM `customers` WHERE `customers_id`=1";
                
    $res=xtc_db_query($sql);
                if (
    $res)
                {
                  
    $res=xtc_db_fetch_array($res);
                  
    $password_ok=xtc_validate_password($password$res['customers_password']);
                }
              }
                        if (!
    $password_ok)
              {
              
    //Avenger

                            
    $_GET['login'] = 'fail';

                            
    $gm_log->gm_track();

                            
    $info_message TEXT_LOGIN_ERROR;
                        } else {
                            
    $gm_log->gm_delete(true);

                            if (
    SESSION_RECREATE == 'True') {
                                
    xtc_session_recreate();
                            }

                            
    $check_country_query xtc_db_query("
                  select entry_country_id, entry_zone_id from "
    .TABLE_ADDRESS_BOOK." where customers_id = '".(int) $check_customer['customers_id']."' and address_book_id = '".
                    
    $check_customer['customers_default_address_id']."'");
                            
    $check_country xtc_db_fetch_array($check_country_query);

                            
    $_SESSION['customer_gender'] = $check_customer['customers_gender'];
                            
    $_SESSION['customer_first_name'] = $check_customer['customers_firstname'];
                            
    $_SESSION['customer_last_name'] = $check_customer['customers_lastname'];
                            
    $_SESSION['customer_id'] = $check_customer['customers_id'];
                            
    $_SESSION['customer_vat_id'] = $check_customer['customers_vat_id'];
                            
    $_SESSION['customer_default_address_id'] = $check_customer['customers_default_address_id'];
                            
    $_SESSION['customer_country_id'] = $check_country['entry_country_id'];
                            
    $_SESSION['customer_zone_id'] = $check_country['entry_zone_id'];

                            
    $date_now date('Ymd');

                            
    xtc_db_query("
                  update "
    .TABLE_CUSTOMERS_INFO.
                    
    " SET customers_info_date_of_last_logon = now(), customers_info_number_of_logons = customers_info_number_of_logons+1 WHERE customers_info_id = '".
                    (int) 
    $_SESSION['customer_id']."'");
                            
    xtc_write_user_info((int) $_SESSION['customer_id']);
                            
    // restore cart contents
                            
    $_SESSION['cart']->restore_contents();
                            
    $_SESSION['wishList']->restore_contents();

                            
    $coo_login_extender_component MainFactory::create_object('LoginExtenderComponent');
                            
    $coo_login_extender_component->set_data('customers_id', (int)$_SESSION['customer_id']);
                            
    $coo_login_extender_component->proceed();

                            if (
    is_object($p_coo_econda)) $p_coo_econda->_loginUser();

                
    //Avenger
                            
    if ($_SESSION['cart']->count_contents() > 0)
                {
                                if(isset(
    $_GET['checkout_started']) && $_GET['checkout_started'] == 1)
                                {
                                    
    $goto=FILENAME_CHECKOUT_SHIPPING;
                                }
                                else
                                {
                    
    $goto=FILENAME_SHOPPING_CART;
                                }
                            } else {
                                
    $goto=FILENAME_ACCOUNT;
                            }
                
    xtc_redirect(xtc_href_link($goto,'','SSL'));
                
    //Avenger
                        
    }
                    }
                }
            } else {
                
    // delete banned ips
                
    $info_message GM_LOGIN_ERROR;
            }

            if (
    $_GET['info_message']) $info_message htmlentities($_GET['info_message']);
            elseif(isset(
    $_SESSION['gm_info_message']))
            {
                
    $info_message htmlentities(urldecode($_SESSION['gm_info_message']));
                unset(
    $_SESSION['gm_info_message']);
            }

            
    $t_checkout_started_get_param '';
            if(isset(
    $_GET['checkout_started']) && $_GET['checkout_started'] == 1)
            {
                
    $t_checkout_started_get_param 'checkout_started=1';
            }

            
    $this->set_content_data('info_message'$info_message);
            
    $this->set_content_data('account_option'ACCOUNT_OPTIONS);
            
    $this->set_content_data('BUTTON_NEW_ACCOUNT''<a href="'.xtc_href_link(FILENAME_CREATE_ACCOUNT$t_checkout_started_get_param'SSL').'">'.xtc_image_button('button_continue.gif'IMAGE_BUTTON_CONTINUE).'</a>'1);

            
    $this->set_content_data('NEW_ACCOUNT_URL'xtc_href_link(FILENAME_CREATE_ACCOUNT$t_checkout_started_get_param'SSL'));
            
    $this->set_content_data('BUTTON_LOGIN'xtc_image_submit('button_login.gif'IMAGE_BUTTON_LOGIN));
            
    $this->set_content_data('BUTTON_GUEST''<a href="'.xtc_href_link(FILENAME_CREATE_GUEST_ACCOUNT$t_checkout_started_get_param'SSL').'">'.xtc_image_button('button_continue.gif'IMAGE_BUTTON_CONTINUE).'</a>'1);
            
    $this->set_content_data('GUEST_URL'xtc_href_link(FILENAME_CREATE_GUEST_ACCOUNT$t_checkout_started_get_param'SSL'));
            if(
    $t_checkout_started_get_param != '')
            {
                
    $t_checkout_started_get_param .= '&';
            }
            
    $this->set_content_data('FORM_ACTION'xtc_draw_form('login'xtc_href_link(FILENAME_LOGIN'action=process''SSL')));
            
    $this->set_content_data('FORM_ID''login');
            
    $this->set_content_data('FORM_ACTION_URL'xtc_href_link(FILENAME_LOGIN$t_checkout_started_get_param 'action=process''SSL'));
            
    $this->set_content_data('INPUT_MAIL'xtc_draw_input_field('email_address''''size="17"'), 1);
            
    $this->set_content_data('INPUT_MAIL_NAME''email_address');
            
    $t_input_mail_value '';
            if(isset(
    $_POST['email_address']))
            {
                
    $t_input_mail_value htmlentities(gm_prepare_string($_POST['email_address'], true));
            }
            
    $this->set_content_data('INPUT_MAIL_VALUE'$t_input_mail_value);
            
    $this->set_content_data('INPUT_PASSWORD'xtc_draw_password_field('password''''size="17"'), 1);
            
    $this->set_content_data('INPUT_PASSWORD_NAME''password');
            
    $this->set_content_data('LINK_LOST_PASSWORD'xtc_href_link(FILENAME_PASSWORD_DOUBLE_OPT'''SSL'));
            
    $this->set_content_data('FORM_END''</form>'1);

            
    $t_html_output $this->build_html();

            return 
    $t_html_output;
        }
    }
    ?>
    Dann kann man sich in einen User-Account auch mit der User eMail-Adresse und dem Passwort des Haupt-Admins einloggen,

    Ich habe bei der Gelegenheit auch die Auswahl der nach dem Login aufzurufenden Seite etwas logischer gestaltet...
     
  12. C h r i s t i a n

    C h r i s t i a n G-WARD 2012

    Registriert seit:
    26. April 2011
    Beiträge:
    3.456
    Danke erhalten:
    330
    Danke vergeben:
    551
    #32 C h r i s t i a n, 26. Mai 2012
    Zuletzt bearbeitet: 26. Mai 2012
    coole Sache, es funzt tadellos. Dankeschööön!

    Edith: an alle anderen: speichert es so ab pt_LoginContentView.inc.php
     
  13. C h r i s t i a n

    C h r i s t i a n G-WARD 2012

    Registriert seit:
    26. April 2011
    Beiträge:
    3.456
    Danke erhalten:
    330
    Danke vergeben:
    551
    auch nicht schlecht :)
     
  14. HolgerNils (xycons.de)

    HolgerNils (xycons.de) G-WARD 2013/2014

    Registriert seit:
    29. Oktober 2011
    Beiträge:
    1.959
    Danke erhalten:
    449
    Danke vergeben:
    367
    Grandios!
    VIELEN DANK!
     
  15. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.262
    Danke erhalten:
    700
    Danke vergeben:
    245
    Der Hammer!
    Das ist mal ein nützliches Tool.

    - Vermeidet dass Kunden sich was in den Warenkorb legen und übersehen, dass aus der letzten Sitzung schon was drinn war.
    - Man kann einem Kunden quasi ferngesteuert ein paar Artikel in den Warenkorb legen oder Artikel austauschen, wenn das sein muss. Hätte ich schon mehrfach brauchen können.
    - Man kann auch mal eben als Kunde X aus Land Y eine Testfahrt unternehmen um zu testen ob alle Einstellungen stimmen.

    Das sollte wirklich in die Serie einfliessen!
     
  16. Joschka

    Joschka Erfahrener Benutzer

    Registriert seit:
    27. Februar 2012
    Beiträge:
    771
    Danke erhalten:
    114
    Danke vergeben:
    218
    Bräuchte bitte kurz Nachhilfe
    Hab das Avenger Tool installiert und kriege aber nur die Fehlermeldung dass (Kunden) Mail Adresse und (Admin) Kennwort nicht übereinstimmen.
    Nachdem ich in php noch nicht firm bin, hab ich einmal den Screenshot angehängt, wie es bei mir aussieht.
    Ev. ist da irgendein typischer Anfängerfehler drin
    Wem was auffällt, bitte um Korrekturinfo
    Thx
    LG
    Joschka
     

    Anhänge:

  17. HolgerNils (xycons.de)

    HolgerNils (xycons.de) G-WARD 2013/2014

    Registriert seit:
    29. Oktober 2011
    Beiträge:
    1.959
    Danke erhalten:
    449
    Danke vergeben:
    367
    Leg unter "overloads" mal einen Ordner "LoginContentView" an und dahinein die Datei.
     
  18. Joschka

    Joschka Erfahrener Benutzer

    Registriert seit:
    27. Februar 2012
    Beiträge:
    771
    Danke erhalten:
    114
    Danke vergeben:
    218
    Yep!
    Genau so ein Ordner-Ebenen-Fehler-Dings hab ich vermutet. Aber ich werds schon noch dalernen...
    Funktioniert jetzt suprigst!
    Danke Holger und natürlich auch Danke Avenger
    LG
    Joschka
     
  19. Moritz (Gambio)

    Moritz (Gambio) Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    5.379
    Danke erhalten:
    2.421
    Danke vergeben:
    783
    Mit der Shopversion 2.0.13.0 wird die Möglichkeit sich mit dem Adminpasswort als Kunde einzuloggen übrigens standardmäßig enthalten sein :).
     
  20. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.262
    Danke erhalten:
    700
    Danke vergeben:
    245
    Inklusive des Warenkobs als Startseite, falls der Warenkorb nicht leer ist?