-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcron_add_queue.php
125 lines (113 loc) · 3.95 KB
/
cron_add_queue.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?php
date_default_timezone_set('America/Mexico_City');
include_once "../../../wp-load.php";
include_once "../../../wp-admin/includes/plugin.php";
// grabar en BD
function ug_add_product_db($producto){
global $wpdb;
global $nl;
$wpdb->show_errors = true;
$table_name = $wpdb->prefix . "queue_products";
if (!(is_plugin_active('woocommerce/woocommerce.php')|| is_plugin_active_for_network('woocommerce/woocommerce.php'))){
echo "Woocommerce no está instalado y activado.";
return;
}
echo "Agregando producto " . print_r($producto, true) . " a BD\n<br>";
$a = array(
'idProducto'=> $producto->IdProducto,
'descontinuado'=> $producto->Descontinuado,
'existencias'=> $producto->Existensia,
'nombre'=> $producto->Nombre,
'descripcion'=> $producto->Descripcion,
'precioLista'=> $producto->PrecioLista,
'precio'=> $producto->Precio,
'peso'=> $producto->Peso,
'largo'=> $producto->Largo,
'ancho'=> $producto->Ancho,
'alto'=> $producto->Alto,
'ultima_actualizacion'=> date('Y-m-d H:i:s'),
'es_paquete' => null,
'items_paquete' => null,
'procesado' => null,
//'idRama' => $producto->IdRama,
);
if ($producto->EsPaquete ){
echo "Este producto es un paquete" . $nl;
$a['es_paquete'] = 1;
$lista_items = array();
$item = array();
foreach ( $producto->ContenidoPaquetes as $contenido_paquete ) {
$item['cantidad'] = $contenido_paquete->Cantidad;
$item['clave'] = $contenido_paquete->Clave;
$item['id_producto'] = $contenido_paquete->IdProducto;
$lista_items[] = $item;
}
$s = json_encode($lista_items);
$a['items_paquete'] = ($s===false)?null: $s;
}
$s = '';
$c = count($producto->RutaImagenes);
for ($i=0;$i<$c;$i++){
$s .= $producto->RutaImagenes[$i];
if ($i < $c) $s .= ',';
}
error_log ("Producto ($i) agregado en BD " . $producto->IdProducto .")");
echo "Producto ($i) agregado en BD " . $producto->IdProducto .") $nl";
error_log ('Cadena de imagenes ' . $s) . "\n";
$a = array_merge($a, array('rutaImagenes'=> $s));
echo ("registro: " . print_r($a,true)) . "\n";
$result = $wpdb->update($table_name,$a,array('idProducto'=> $producto->IdProducto));
echo "query: (" . print_r($wpdb->last_query, true) . ")$nl";
echo "Error: " . print_r($wpdb->last_error, true) . "$nl";
echo "resultado de update: (" . print_r($result, true) . ")$nl";
if (($result===false) || ($result === 0)){
$wpdb->insert($table_name, $a);
}
}
// rutina principal
global $nl;
(php_sapi_name() === 'cli')?$nl = "\n":$nl="<br>";
$smu_config_options = get_option("smu_config_options", false);
if ($smu_config_options === false){
$msj = "no se tiene información de acceso al ERP\n<br>";
error_log($msj);
echo $msj;
return;
}
$msj = "Opciones de configuración: " . print_r ($smu_config_options, true) . "\n<br>";
error_log($msj);
echo $msj;
$url = 'https://sistema.smuebleria.com/ServicePaginas/SMuebleriaPaginas.svc';
$url = 'https://sistema.smuebleria.com/ServicePaginas/SMuebleriaPaginas.svc/ObtenerDatosProductos2' . '?' .
'claveServicio=' . $smu_config_options['smu_clave_servicio'] .
'&idEmpresa=' . $smu_config_options['smu_empresa'] .
'&idUsuario=' . $smu_config_options['smu_usuario'];
$msj = __FUNCTION__ . " url para el ERP: " . print_r($url, true) . "\n<br>";
error_log($msj);
echo $msj;
$response = wp_remote_get($url);
if (is_wp_error($response)){
$msj = "ERROR Respuesta HTTP (" . print_r($response->get_error_codes(), true) . ") Conexion intentada con $url" . "\n<br>";
error_log($msj);
echo $msj;
}else{
$productos = json_decode($response['body']);
$n = count($productos);
$msj = "Recibí $n productos" . "\n<br>";
error_log($msj);
echo $msj;
if ($n==0){
$msj = "ERROR no hay productos para carga" . "\n<br>";
error_log($msj);
echo $msj;
}else{
echo "Iniciando carga de productos\n<br>";
foreach ($productos as $producto){
ug_add_product_db($producto);
echo $nl;
}
$msj = "Re carga exitosa de productos desde ERP " . "\n<br>";
error_log($msj);
echo $msj;
}
}