Foros del Web » Programando para Internet » PHP »

Añadir usuarios (clientes) a prestashop con formulario propio

Estas en el tema de Añadir usuarios (clientes) a prestashop con formulario propio en el foro de PHP en Foros del Web. Hola a todos, Tengo una pregunta que espero que alguno de por aqui me sepa responder. Tengo una web con prestashop, foros phpbb3 y un ...
  #1 (permalink)  
Antiguo 28/12/2011, 12:15
Colaborador
 
Fecha de Ingreso: mayo-2004
Mensajes: 152
Antigüedad: 20 años
Puntos: 26
Pregunta Añadir usuarios (clientes) a prestashop con formulario propio

Hola a todos,

Tengo una pregunta que espero que alguno de por aqui me sepa responder.

Tengo una web con prestashop, foros phpbb3 y un wiki (dokuwiki). Los usuarios tienen que registrarse por separado en las tres secciones y eso es una molestia. Me gustaria crear un solo formulario de alta con la unión de campos mínimos necesarios de cada seccion.

La idea es que el script "alta.php" (al que se llama dandole al submit del formulario de alta) añada los usuarios en las tres secciones simulando el proceso de registro de la forma mas correcta posible. Con phpbb y con dokuwiki ya me espavilaré, pero con Prestashop me gustaría hacerlo llamando a sus propias librerias. Alguien me puede dar alguna pista sobre como hacerlo?

De momento la solcuión mas simple que se me ocurre es añadir directamente en la base de datos un usuario mas, pero no se si eso me dará problemas.


Saludos
__________________
Comprar impresoras 3D
  #2 (permalink)  
Antiguo 02/01/2012, 07:46
Colaborador
 
Fecha de Ingreso: mayo-2004
Mensajes: 152
Antigüedad: 20 años
Puntos: 26
Respuesta: Añadir usuarios (clientes) a prestashop con formulario propio

Parece que nadie ha respondido. Despues de unos dias de pruebas he decidido hacerlo añadiendo el usuario directamente en la BD. Me respondo a mi mismo por si a alguien mas le interesa la respuesta.

Para añadir un usuario nuevo a prestashop se puede hacer añadiendo un registro en la tabla ps_customers y otro en ps_customers_group. El valor _COOKIE_KEY_ lo encontrareis en config/settings.inc.php y la funcion MakeSQLInsert crea la sentencia sql insert para la tabla y campos=>valor indicados.

Código PHP:
function register_prestashop($email$passwd$name$lastname$gender=NULL$birthday=NULL)
{
    
$field = array( 'email' => $email'firstname' => $name'lastname' => $lastname);
    if (!empty(
$birthday)) {
        
$field['birthday'] = $birthday;
    }
    if (!empty(
$gender)) {
        
$field['id_gender'] = $gender;
    }
    
$field['passwd'] = md5(_COOKIE_KEY_.$passwd);

    
$field['active'] = 1;
    
$field['newsletter'] = 0;
    
$field['optin'] = 0;
    
$field['id_default_group'] = 1;
    
$field['is_guest'] = 0;
    
$field['deleted'] = 0;
    
$field['secure_key'] = md5(uniqid(rand(), true));

    
$field['last_passwd_gen'] = date('Y-m-d H:i:s');
    
$field['date_add'] = date('Y-m-d H:i:s');
    
$field['date_upd'] = date('Y-m-d H:i:s');
    
//$field['id_customer'] (autoincrement)

    # SQL insert
    
$table 'ps_customer';
    
$query MakeQueryInsert($table$field);
    
$result mysql_query($query);
    if (
$result) {
    
#    echo "<p>Ok</p>";
    
}
    else {
        die(
'<p class="error">Problems with database: ' mysql_error() . '</p>');
    }
    
    
# We also need to add customer into group 1
    
$id_user mysql_insert_id();
    
$query "INSERT INTO ps_customer_group (`id_customer`, `id_group`) VALUES ('$id_user', '1');";
    
$result mysql_query($query);
    if (
$result) {
        echo 
"<p>Ok</p>";
    }
    else {
        die(
'<p class="error">Problems with database: ' mysql_error() . '</p>');
    }

__________________
Comprar impresoras 3D

Última edición por djemili; 02/01/2012 a las 13:48

Etiquetas: formulario, prestashop, propio, registro, usuarios, cliente
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:21.