Este ejemplo incorpora lo que se sabe sobre la estructura de la base de datos de MyBusiness POS (por ejemplo la tabla prods que contiene los artículos y precios) y cómo hacer consultas SQL desde VBScript en el entorno del propio sistema (porque esta tabla y otras son conocidas dentro de la comunidad técnica de helpmybusinesspos.info)
' ==========================================
' Script VBScript para MyBusiness POS v20
' Actualiza precio de producto en WooCommerce
' ==========================================
Sub ActualizarPrecioWoo()
On Error Resume Next
Dim rst, sSQL
Dim sku, nuevoPrecio
Dim httpReq, url
Dim consumerKey, consumerSecret
Dim jsonBody
' ----------------------------------------------------
' 1) Pedir al usuario el SKU a actualizar
' ----------------------------------------------------
sku = InputBox("Ingrese el SKU del producto a actualizar en WooCommerce:", "Actualizar Precio Woo")
If Trim(sku) = "" Then
MsgBox "No se ingresó ningún SKU.", vbExclamation, "Aviso"
Exit Sub
End If
' ----------------------------------------------------
' 2) Consultar precio desde MyBusiness POS v20 (tabla prods)
' ----------------------------------------------------
sSQL = "SELECT precio1 FROM prods WHERE articulo = '" & Replace(sku, "'", "''") & "'"
Set rst = CreateObject("ADODB.Recordset")
rst.Open sSQL, Ambiente.Connection, 1, 1
If rst.EOF Then
MsgBox "Producto no encontrado en MyBusiness POS.", vbCritical, "Error"
rst.Close
Set rst = Nothing
Exit Sub
End If
nuevoPrecio = rst("precio1")
rst.Close
Set rst = Nothing
' ----------------------------------------------------
' 3) Preparar API de WooCommerce
' ----------------------------------------------------
consumerKey = "ck_tu_consumer_key"
consumerSecret = "cs_tu_consumer_secret"
' Construir data JSON para actualizar el precio
jsonBody = "{""regular_price"": """ & CStr(nuevoPrecio) & """}"
' Formar URL para actualizar por SKU
url = "https://tu-tienda.com/wp-json/wc/v3/products?sku=" & sku & _
"&consumer_key=" & consumerKey & "&consumer_secret=" & consumerSecret
' ----------------------------------------------------
' 4) Primero buscar el producto por SKU (GET)
' ----------------------------------------------------
Set httpReq = CreateObject("MSXML2.ServerXMLHTTP")
httpReq.Open "GET", url, False
httpReq.setRequestHeader "Content-Type", "application/json"
httpReq.Send
If httpReq.Status <> 200 Then
MsgBox "Error al buscar producto en WooCommerce: " & httpReq.Status & " " & httpReq.statusText, vbCritical
Set httpReq = Nothing
Exit Sub
End If
' ----------------------------------------------------
' 5) Extraer ID de producto de la respuesta
' (Se espera que la respuesta sea un array JSON con al menos un producto)
' ----------------------------------------------------
Dim responseText, productId
responseText = httpReq.responseText
' Aquí se asume que el primer objeto JSON tiene un id
' Se extrae usando métodos VBScript básicos (parser simple)
productId = ""
Dim startPos, endPos
startPos = InStr(responseText, """id"":")
If startPos > 0 Then
endPos = InStr(startPos, responseText, ",")
productId = Mid(responseText, startPos + 5, endPos - (startPos + 5))
End If
If productId = "" Then
MsgBox "No se encontró ID de producto para SKU " & sku, vbCritical, "Error"
Set httpReq = Nothing
Exit Sub
End If
' ----------------------------------------------------
' 6) Actualizar precio en WooCommerce
' ----------------------------------------------------
Dim updateUrl
updateUrl = "https://tu-tienda.com/wp-json/wc/v3/products/" & productId & _
"?consumer_key=" & consumerKey & "&consumer_secret=" & consumerSecret
httpReq.Open "PUT", updateUrl, False
httpReq.setRequestHeader "Content-Type", "application/json"
httpReq.Send jsonBody
If httpReq.Status = 200 Or httpReq.Status = 201 Then
MsgBox "Precio actualizado para SKU " & sku & " a $" & nuevoPrecio, vbInformation, "OK"
Else
MsgBox "Error al actualizar precio: " & httpReq.Status & " " & httpReq.statusText, vbCritical, "Error"
End If
Set httpReq = Nothing
On Error GoTo 0
End Sub
¿Cómo funciona este script?
- Solicita el SKU al usuario (para identificar el producto).
- Consulta el precio actual desde la tabla
prodsde MyBusiness POS usandoAmbiente.Connection. - Hace una petición GET a la API REST de WooCommerce para buscar el producto por SKU (esto devuelve datos en JSON).
- Extrae el ID del producto de la respuesta.
- Hace una petición PUT para actualizar el precio usando
MSXML2.ServerXMLHTTP. - Muestra un mensaje indicando si la actualización fue exitosa o si ocurrió un error.
Requisitos para que este script funcione
✔ WooCommerce con API REST habilitada y llaves de acceso (consumer_key, consumer_secret).
✔ MyBusiness POS v20 con acceso a la base de datos y tabla prods.
✔ Permiso para ejecutar VBScript dentro del sistema (como procedimiento, evento o botón).
✔ La tienda WooCommerce debe permitir peticiones HTTPS a su API desde la red donde se ejecuta MyBusiness.
Consideraciones importantes
🔹 VBScript no tiene un parser JSON nativo, por lo que la extracción del ID es muy básica. Para JSON más complejo necesitarás librerías adicionales o manejar el texto cuidadosamente.
🔹 En producción es ideal no pasar keys directamente en la URL y usar HTTPS con autenticación más segura.
🔹 Asegúrate de que el SKU en WooCommerce realmente coincide con el campo articulo de MyBusiness.





