Content
Podrá transferir datos entre servicios sin la ayuda de programadores.
Obtenga más información sobre la integración a través de Zapier
Puede crear pedidos en su tienda enviando una consulta al servicio API utilizando métodos de software.
Puede formar un pedido pero con varios productos para cada cliente una vez utilizando la función. Los productos ya deberían estar presentes en su tienda en SoloClic.
La consulta se envía por el método POST en formato URLencode a la dirección: https://username.soloclic.com/api/CreateOrder
Donde nombre de usuario es el inicio de sesión del usuario en el sistema, así como su dominio de tercer nivel en el servicio SoloClic.
Parámetros transferidos en la consulta
- goodsson la matriz de datos de los productos pedidos. Consiste en pares de ID de producto, precio del producto:
- good_name es el ID del producto en el sistema SoloClic;
- good_sum es el precio del producto en este orden. Puede diferir del precio indicado en la tienda. Si se omite este parámetro, se toma el precio del producto de la configuración de la tienda;
- bill_first_name es el nombre del cliente;
- bill_surnameis the el apellido del cliente;
- bill_middle_name es el segundo nombre del cliente;
- bill_emailis correo electrónico del cliente;
- bill_phoneis el número de teléfono del cliente;
- bill_country is es el país de entrega;
- bill_region es la región de entrega;
- bill_city es la ciudad de residencia del cliente;
- bill_address es la dirección de entrega;
- bill_postal_code es el código postal;
- bill_kupon es el cupón de descuento (como en la configuración de la tienda);
- bill_tag es un marcador de orden no especificado (etiqueta);
- bill_comment es el comentario sobre el pedido,
- bill_ip es la IP del cliente;
- bill_timer_killes la hora de cancelación de la factura (verdadero: el tiempo se toma de la configuración del producto; falso: la factura no se cancelará automáticamente; la hora en el formato de marca de tiempo UNIX: la cuenta se cancelará en este momento);
- bill_createdes el momento en que se creó el pedido en el formato de marca de tiempo UNIX;
- bill_domain es el dominio de aceptación del pedido;
- utm [utm_medium] es el parámetro utm del canal (opcional);
- utm [utm_source] es el parámetro utm de origen (opcional);
- utm [utm_campaign]es el parámetro utm de la campaña (opcional);
- utm [utm_content] es el parámetro de publicidad (opcional);
- utm [utm_term] es la clave utm-parameter (opcional);
- utm [aff_medium] es el parámetro de afiliado del canal (opcional);
- utm [aff_source] es el parámetro de afiliado de origen (opcional);
- utm [aff_campaign] es el parámetro de afiliación de la campaña (opcional);
- utm [aff_content] es el parámetro de afiliación de publicidad (opcional);
- utm [aff_term] es el parámetro de afiliado clave (opcional);
bill_email y goods, y en él se requieren los campos good_name. bill_first_name, bill_surname, bill_country, bill_city, bill_address también son necesarios para que los productos físicos se envíen por correo. Los demás parámetros dependen de usted.
Si desea pasar información de que el cliente proviene de un socio, pase 2 parámetros utm [utm_medium] y utm [utm_source] de la siguiente manera:
'utm[utm_medium]' => 'affiliate', // only 'affiliate' and nothing else 'utm[utm_source]' => 'username',// partner’s login in SoloClic system
También puede utilizar las marcas de afiliados utm (utm [aff_ …]). En este caso, el socio especificado debe ser necesariamente miembro del programa de afiliados. Los datos de la etiqueta (utm [aff_ …]) se mostrarán solo en el gabinete del socio.
En el parámetro bill_domain, recomendamos utilizar la dirección del sitio web de su sistema SoloClic o la dirección del sitio vinculado sin especificar el protocolo (http: //). Si no ingresa nada en este parámetro, cuando siga el enlace a la página de pago del pedido $ resp-> resultado [‘enlace’], deberá verificar la transición al dominio necesario después de llamar a GetOrderDetails usted mismo. De lo contrario, este enlace ya contendría el protocolo y el dominio necesarios para su uso, por ejemplo:
header("Location: " . $resp->result['link']);
¿Como funciona?
Usted crea un pedido en su sistema y transfiere los datos usando la función de API CreateOrder.
Su sistema recibirá el resultado de la función que se realiza y el número de la orden creada en la variable result-> bill_id como respuesta.
La respuesta está codificada en formato JSON. Para obtener más detalles, consulte las respuestas del servicio API.
Example Of Creating a New Order in PHP
In the example, we add an order with two products. The login in the system is «username».
GetHash Function forms the hash to the transferred data.
CheckHash Function checks the hash to the service response.
// Login in the SoloClic system $user_rs['user_id'] = 'username'; // The key for forming a hash. See API section (the link in the right bottom corner of the personal account) $user_rs['user_rps_key'] = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; // Forming the array of bought goods for transferring to the API $good1 = array( 'good_name' => 'invoice', // product ID in the SoloClic system 'good_sum' => 1500, // the product price ); $good2 = array( 'good_name' => 'sales', // product ID in the SoloClic system // You do not have to set the price of the product. The price is got from the settings, then ); // Forming the data array for transferring to the API $send_data = array( 'goods' => array ($good1, $good2), 'bill_first_name' => "Name", 'bill_surname' => "Surname", 'bill_middle_name' => "Middle Name", 'bill_email' => "[email protected]", 'bill_phone' => "+01111234567", 'bill_country' => "USA", 'bill_region' => "New York", 'bill_city' => "New York", 'bill_address' => "Wall St.", 'bill_postal_code' => "345678", // postal code 'bill_kupon' => "skidka50", // discount coupon (as in the shop settings) 'bill_tag' => 'AdWords', // free order tag 'bill_comment' => 'in a beautiful box', // comment on product 'bill_ip' => '192.168.0.1', // customer’s IP 'bill_timer_kill' => true, // is there a limit on payment order time, where: // false or 0 means the invoice is not automatically canceled; // true or 1 means the invoice is automatically cancelled according to the product settings; // transferring time in unixtime format means the invoice auto-cancelling is set for this time. 'bill_created' => 1291001819, // the order creation time UNIX timestamp 'bill_domain' => 'www.shop.io', // order domain 'utm[utm_medium]' => 'cpc', 'utm[utm_source]' => 'direct', 'utm[utm_campaign]' => 'my campaign', 'utm[utm_content]' => 'content_123', 'utm[utm_term]' => 'my_label', ); // Forming the hash to the transmitted data $send_data['hash'] = GetHash($send_data, $user_rs); // Calling the CreateOrder function and decoding the received data $resp = json_decode(Send('https://username.soloclic.com/api/CreateOrder', $send_data)); // Checking the service response if(!CheckHash($resp, $user_rs)){ echo "Error! The response hash is not true!"; exit; } if($resp->error_code == 0) echo "The order is created {$resp->result->bill_id}. Service response: {$resp->error_text}"; else echo "Error code:{$resp->error_code} - description: {$resp->error_text}"; // =========== Functions of sending, receiving and processing a response ============ // Sending the Query to the API service function Send($url, $data) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // outputting the response to the variable $res = curl_exec($ch); curl_close($ch); return $res; } // Forming the transferred to the API data hash function GetHash($params, $user_rs) { $params = http_build_query($params); $user_id = $user_rs['user_id']; $secret = $user_rs['user_rps_key']; $params = "$params::$user_id::$secret"; return md5($params); } // Checking the received response hash function CheckHash($resp, $user_rs) { $secret = $user_rs['user_rps_key']; $code = $resp->error_code; $text = $resp->error_text; $hash = md5("$code::$text::$secret"); if($hash == $resp->hash) return true; // the hash is correct else return false; // the hash is not correct }