Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/01/2012, 07:46
djemili
Colaborador
 
Fecha de Ingreso: mayo-2004
Mensajes: 152
Antigüedad: 20 años, 10 meses
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