TIMER 11:40:17 0: in line 0 Error de sistema: 380 A script engine for the specified language can not be created.
Whats 7222816462. Mejoramos la experiencia en el Punto de Venta de tu NEGOCIO
TIMER 11:40:17 0: in line 0 Error de sistema: 380 A script engine for the specified language can not be created.
💳 Cómo vender con comisión sin infringir la ley (y cómo usar tu sistema de punto de venta para hacerlo correctamente)
Muchos negocios enfrentan este dilema:
➡ El cliente paga con tarjeta
➡ La terminal cobra comisión
➡ La ley no permite que se le cobre esa comisión directamente al cliente
La Comisión Nacional para la Protección y Defensa de los Usuarios de Servicios Financieros (CONDUSEF) es clara: no puedes cobrarle al cliente una comisión adicional por pagar con tarjeta. Hacerlo puede generar multas que realmente afectan a tu negocio.
Entonces, ¿qué se hace?
En lugar de cobrarle extra al cliente por el uso de tarjeta… incluye la comisión en tu precio normal de venta. Esto te deja tranquilo, acorde a la ley, y mantiene tu estructura de precios clara.
Si vendes productos a clientes mayoristas, puedes tener otro precio más bajo.
📌 En MyBusiness POS puedes manejar tanto precio de menudeo como precio de mayoreo fácilmente dentro del catálogo de productos.
Esto te permite tener:
Así el monto que el cliente mayorista paga puede ser menor cuando corresponde.
Esto ayuda mucho para ventas en efectivo o compras grandes en tu negocio.
En MyBusinessPOS ya existe por default un cliente como SYS – Cliente General.
👉 Puedes crear otro cliente, por ejemplo:
🔹 SYS – E (clientes en efectivo)
Y usarlo para aplicar el precio de mayoreo cuando la venta sea en efectivo.
✔ Es una forma práctica de separar ventas en efectivo y aplicar descuentos de forma ordenada en tu sistema.
La buena noticia es que Eleventa también maneja precio de mayoreo y precio de menudeo.
Según su manual, al crear un producto puedes asignar:
✔ Precio de venta
✔ Precio al mayoreo
Y al momento de la venta, con una tecla (por ejemplo F11) o un botón puedes cambiar entre uno y otro precio para aplicar el que corresponda.
Esto significa que, si usas Eleventa en lugar de MyBusinessPOS, también puedes tener:
🌟 Precio con comisión (venta normal)
🌟 Precio sin comisión (mayoreo / especial / efectivo)
Lo único que cambia es cómo decides cuándo aplicar cada uno durante la venta.
Si tienes pocos pagos con tarjeta, puedes amortiguar la comisión con los precios normales.
Si ya tienes volumen, elige una terminal con menor comisión.
Por ejemplo:
👉 La terminal de Getnet tiene una comisión aproximada de 2.18% ya con IVA incluido, lo cual es más competitivo que muchas terminales conocidas que cobran mucho más.
A mí me sirve de ejemplo:
🔹 Mi ganancia promedio es 23%
🔹 Si tomo en cuenta comisión de tarjeta, mi margen baja a ~19.5%
🔹 Sin embargo, aceptar pagos con tarjeta me ayuda a vender más porque:
✔ Más clientes pueden pagar
✔ Genera confianza
✔ Las ventas aumentan
✔ El ticket promedio sube
Yo lo veo como una situación ganar–ganar:
💳 El cliente tiene opciones de pago
🏪 El negocio vende más
📈 Creces con mayor clientela
✅ Incluye la comisión en tu precio normal
✅ Mantén un precio de mayoreo o especial para efectivo
✅ Usa la funcionalidad de precios de tu POS (MyBusinessPOS o Eleventa)
✅ Evita cobrar la comisión directamente al cliente (eso está prohibido por CONDUSEF)
✅ Busca terminales con menor comisión, como bbva o Getnet
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
prods de MyBusiness POS usando Ambiente.Connection.MSXML2.ServerXMLHTTP.✔ 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.
🔹 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.
Ejemplo completo para integrar WooCommerce y MyBusiness POS v20, usando prácticas comunes de sincronización (productos, precios e inventario)
Conectar tu tienda en línea en WooCommerce con tu sistema de MyBusiness POS v20 permite que:
A continuación te muestro un ejemplo técnico completo de cómo podrías implementar una sincronización básica de productos y precios entre WooCommerce y MyBusiness POS.
Este ejemplo asume que:
✔ Tu WooCommerce está activo y accesible con la REST API de WooCommerce.
✔ MyBusiness POS v20 está instalado y ejecutándose en tu red local.
✔ Los productos en POS tienen un campo adicional (por ejemplo wc_id) que almacena el ID de producto de WooCommerce.
✔ Los productos se identifican por SKU (código de producto) para que coincidan entre WooCommerce y POS.
Queremos que un script externo (por ejemplo, en Python o Node.js) haga lo siguiente:
Este patrón es común cuando no hay un plugin oficial listo para MyBusiness POS + WooCommerce.(helpmybusinesspos.info)
Este es un ejemplo básico que:
Ajusta los parámetros de conexión a tu servidor SQL Server y WooCommerce.
# Instalar dependencias:
# pip install pyodbc woocommerce
import pyodbc
from woocommerce import API
# Configuración de WooCommerce API
wcapi = API(
url="https://tu-tienda.com",
consumer_key="ck_CONSUMER_KEY",
consumer_secret="cs_CONSUMER_SECRET",
version="wc/v3"
)
# Conexión a SQL Server donde está MyBusiness POS
conn = pyodbc.connect(
"Driver={SQL Server};"
"Server=TU_SERVIDOR_SQL;"
"Database=MyBusiness20;"
"Trusted_Connection=yes;"
)
cursor = conn.cursor()
# Consultar productos desde MyBusiness POS
cursor.execute("SELECT articulo, descripcion, precio1, existencia FROM prods")
for row in cursor.fetchall():
sku = row.articulo
name = row.descripcion
price = float(row.precio1)
stock = int(row.existencia)
# Construir el payload para WooCommerce
data = {
"product": {
"sku": sku,
"name": name,
"regular_price": str(price),
"stock_quantity": stock
}
}
# Intentar actualizar el producto por SKU en WooCommerce
r = wcapi.get("products?sku=" + sku).json()
if len(r) > 0:
# Si existe, actualizamos con el ID
product_id = r[0]['id']
wcapi.put(f"products/{product_id}", data)
print(f"Actualizado: {sku}")
else:
# Si no existe, crear uno nuevo
wcapi.post("products", data)
print(f"Creado: {sku}")
conn.close()
Usamos la REST API de WooCommerce para crear o actualizar productos desde código.
Esto te permite sincronizar precios, stock e información general del producto con tu tienda en línea.(5205495.fs1.hubspotusercontent-na1.net)
El script se conecta directamente a la base de datos de MyBusiness POS, que normalmente se ejecuta en SQL Server. Extrae productos y datos relevantes (como articulo, precio1 y existencia).(My Business POS SIL)
Para cada producto en POS:
De esta forma se garantiza que ambos sistemas mantengan los mismos productos y precios.
Este ejemplo es una base funcional, pero en un entorno productivo te puede interesar:
✅ Sincronizar imágenes de producto.
✅ Sincronizar categorías y atributos.
✅ Ejecutar la sincronización de forma automática (cron).
✅ Manejo de errores y logs detallados.
✅ Sincronizar también órdenes de WooCommerce hacia POS (ventas web a tienda física).(helpmybusinesspos.info)
Quiero que generes un script completo en Python para sincronizar productos entre WooCommerce y MyBusiness POS v20.
Primero realiza una **búsqueda profunda en helpmybusinesspos.info** y en toda la documentación disponible de MyBusiness POS para identificar:
1. La estructura de la base de datos SQL, especialmente las tablas y campos relacionados con productos (como prods, articulos, precios, existencias).
2. Los campos más comunes utilizados en MyBusiness POS para SKU, nombre, precio y stock.
3. Buenas prácticas al consultar esa base de datos desde aplicaciones externas.
Luego genera el script con las siguientes características:
- Conectarse a la base de datos SQL Server donde está MyBusiness POS.
- Leer los productos desde la tabla principal (por ejemplo prods) tomando por lo menos:
- articulo (como SKU),
- descripcion (como nombre),
- precio1 (como precio regular),
- existencia (como stock).
- Conectarse a la REST API de WooCommerce usando la versión wc/v3 y las credenciales del usuario (consumer_key y consumer_secret).
- Buscar cada producto por SKU en WooCommerce.
- Si existe, actualizar su precio y stock.
- Si no existe, crearlo.
- Mostrar en consola qué productos fueron creados y cuáles actualizados.
Requisitos técnicos del script:
- Usar pyodbc para SQL Server.
- Usar la librería oficial `woocommerce` para la API.
- Incluir instrucciones para instalar dependencias (pip install).
- Incluir comentarios explicando cada sección del código.
- No dejar valores reales de conexión; usar placeholders como:
- TU_SERVIDOR_SQL
- TU_BASE_DE_DATOS
- TU_USUARIO_SQL
- TU_PASSWORD_SQL
- TU_URL_WOOCOMMERCE
- ck_xxxxxxxxx
- cs_xxxxxxxxx
- Agregar manejo básico de excepciones con try/except.
- Cerrar correctamente la conexión a la base de datos al finalizar.
El resultado debe ser un script Python completo, listo para producción básica, bien comentado y claro para desarrolladores que integran WooCommerce con MyBusiness POS, con la estructura de tablas y campos verificada en la documentación de helpmybusinesspos.info.
Se requiere lo siguiente:
MyBusiness POS v20 instalado y funcionando
Acceso al servidor SQL Server donde está la base de datos
Nombre de la base de datos de MyBusiness
Usuario y contraseña con permisos de lectura (mínimo SELECT)
Conocer las tablas reales como prods, existenciaalmacen u otras según documentación actual
Identificar correctamente los campos como articulo (SKU), precio, imagen y existencias
WooCommerce instalado y funcionando en WordPress
Llaves API de WooCommerce (consumer_key y consumer_secret)
Python 3.9 o superior instalado
Librerías de Python instaladas: pyodbc, requests y json
Conexión a internet para comunicarse con la API de WooCommerce
Permisos adecuados en MyBusiness para consulta de inventarios y precios
Además, se requiere realizar una búsqueda profunda en helpmybusinesspos.info para confirmar nombres de tablas, estructura de datos, relaciones y posibles cambios en MyBusiness POS v20 antes de implementar el código.
Ejemplo exacto del prompt que alguien debería escribirle a la IA para llegar al resultado de un código que generamos para MyBusiness POS v20.
Este prompt está optimizado para que la IA investigue bien y entregue código listo para producción.
Quiero que generes un procedimiento completo en VBScript que se ejecute dentro de MyBusiness POS v20.
Antes de escribir el código, realiza una búsqueda profunda en helpmybusinesspos.info para identificar:
- Cómo funciona el motor de scripts interno de MyBusiness POS.
- Cómo se usa el objeto Ambiente.Connection.
- Cómo se crean y utilizan Recordsets (ADODB.Recordset).
- Ejemplos reales de consultas SQL ejecutadas desde procedimientos internos.
El objetivo es crear un procedimiento que:
1. Se ejecute dentro de MyBusiness POS v20 (no externo).
2. No use credenciales SQL ni cree una conexión nueva.
3. Utilice exclusivamente la conexión interna Ambiente.Connection.
4. Consulte la tabla "prods".
5. Permita buscar por clave de artículo o código de barras.
6. Devuelva descripcion, precio1, precio2 y precio3.
7. Muestre los resultados en un MsgBox.
8. Incluya validación de entrada.
9. Escape correctamente comillas simples para evitar errores SQL.
10. Libere correctamente los objetos Recordset al final.
Además, quiero que:
- El código esté completamente comentado.
- Expliques cada parte del procedimiento.
- Incluyas recomendaciones para adaptarlo a botones, eventos o Business Manager.
- Cites las secciones específicas encontradas en helpmybusinesspos.info que respalden el uso de Ambiente.Connection y scripting interno.
Porque:
✔ Especifica versión (v20)
✔ Obliga a investigar helpmybusinesspos.info
✔ Define claramente el entorno interno
✔ Restringe uso de conexiones externas
✔ Enumera exactamente qué debe incluir el código
✔ Pide comentarios y explicación técnica
Si quisieras un resultado todavía más profesional, podrías pedir:
Además, optimiza la consulta SQL para rendimiento,
sugiere índice recomendado para la tabla prods,
y agrega manejo de errores con On Error Resume Next controlado.
Este es el resultado de la petición a la IA, el cual sólo se debe copiar y pegar dentro de un nuevo procedimiento de mybusinesspos
'===========================================================
' Procedimiento: ConsultaPrecioProducto
' Descripción : Consulta precios desde la tabla prods
' usando la conexión interna Ambiente.Connection
' Compatible : MyBusiness POS v20
'===========================================================
Sub ConsultaPrecioProducto()
On Error Resume Next
'-------------------------------------------------------
' Declaración de variables
'-------------------------------------------------------
Dim rst
Dim sSQL
Dim sClave
Dim descripcion
Dim precio1, precio2, precio3
'-------------------------------------------------------
' Solicitar clave o código de barras
'-------------------------------------------------------
sClave = InputBox("Ingrese clave o código de barras:", "Consulta de Precio")
If Trim(sClave) = "" Then
MsgBox "Debe ingresar una clave válida.", vbExclamation, "Aviso"
Exit Sub
End If
'-------------------------------------------------------
' Sanitizar entrada básica (evitar error por comillas)
'-------------------------------------------------------
sClave = Replace(sClave, "'", "''")
'-------------------------------------------------------
' Construcción de la consulta SQL
'-------------------------------------------------------
sSQL = "SELECT articulo, descripcion, precio1, precio2, precio3 " & _
"FROM prods " & _
"WHERE articulo = '" & sClave & "' " & _
"OR codigobarras = '" & sClave & "'"
'-------------------------------------------------------
' Crear recordset
'-------------------------------------------------------
Set rst = CreateObject("ADODB.Recordset")
' Ejecutar usando la conexión interna del sistema
rst.Open sSQL, Ambiente.Connection, 1, 1
'-------------------------------------------------------
' Validar si se encontró el producto
'-------------------------------------------------------
If Err.Number <> 0 Then
MsgBox "Error al ejecutar la consulta: " & Err.Description, vbCritical, "Error"
Exit Sub
End If
If Not rst.EOF Then
descripcion = rst("descripcion")
precio1 = rst("precio1")
precio2 = rst("precio2")
precio3 = rst("precio3")
MsgBox "Artículo: " & rst("articulo") & vbCrLf & _
"Descripción: " & descripcion & vbCrLf & _
"Precio 1: $" & FormatNumber(precio1, 2) & vbCrLf & _
"Precio 2: $" & FormatNumber(precio2, 2) & vbCrLf & _
"Precio 3: $" & FormatNumber(precio3, 2), _
vbInformation, "Resultado de la Consulta"
Else
MsgBox "No se encontró el artículo con la clave proporcionada.", _
vbExclamation, "Sin resultados"
End If
'-------------------------------------------------------
' Liberar recursos
'-------------------------------------------------------
rst.Close
Set rst = Nothing
On Error GoTo 0
End Sub
Paso para implementar el procedimiento dentro de mybusinesspos