Buenos tardes a todos, espero me puedan ayudar,
Tengo desarrollado un ERP con enlace a Woocommerce a traves de su API REST, lo tengo funcionando en 2 tiendas, y su funcionamiento consta de lo siguiente.
Subo productos con sus precios, imagenes etc. y descargo Clientes, Productos si han sido creados en la tienda y no estan en el ERP y como no, pedidos de los clientes.
el problema es que de buenas a primeras en una de las tiendas me ha dejado de funcionar la escritura.
no me sube los productos, y no me escribe en los pedidos un meta_data para controlar que ese pedido ya esta sincronizado y no me lo vuelva a bajar, el caso es que sigue bajandome y sincronizando correctamente los clientes, los articulos desde la tienda al ERP y los pedidos tambien me los crea en el ERP.
controlando las respuestas del servidor SIEMPRE me da 200, lo que nunca me tira error pero no hace la escritura en la tienda.
esto lo he hablado con soporte del hosting y no hay nada raro ni reglas ni nada que corten la conexion y de hecho no me tira errores como os comento.
en los plugins de la tienda solo puse uno nuevo de proteccion de datos, lo he probado desactivado y he desactivado casi todos los plugins y nada no me hace la escritura.
a ver si alguien le ha pasado esto o si podeis indicarme donde seguir buscando por que no doy con el problema.
Un saludo y gracias por vuestra ayuda.
Contenido solo visible a usuarios registrados
Hola Francisco,
Puedes indicarnos cual es el ERP que estas usando para realizar la integración con tu tienda? Si es posible indícanos mas detalles sobre la herramientas que usas de esta forma podemos verificar con mayor detalle lo que nos comentas
Un Saludo
@karen gracias por el interes, el ERP es de fabricacion propia, esta desarrollado con VELNEO y estoy usando HTTPREQUEST, envio y recibo json
el caso como comento arriba en otra instalacion de otro woocommerce esta funcionando todo y en esta lo hace todo menos escribir, o sea no me tira errores siempre me da respuestas 200 pero no escribe a traves del API REST
en esta instalacion la ultima vez que lo probe funcionaba correctamente, lo he dejado casi un mes sin usar y ahora que me habia puesto a hacer la implantacion final y descarga de toda la informacion es cuando he visto que no escribia.
si haces una llamada con postman tampoco me tira errores
Hola Francisco,
En este caso lo mejor sería contactar con el desarrollador, es posible que exista incompatibilidad entre el código y algún plugin que se actualizase, o el mismo core de wordpress al actualizarse a su última versión.
Al ser un ERP personalizado hecho a medida es mas probable se solucione directamente en este.
Un saludo 🖐️
@argenis Gracias por el interes, el ERP lo estoy desarrollando yo mismo, por eso te puedo asegurar que el codigo esta bien y de hecho lo tengo montado en otro woocommerce y funciona a la perfeccion, lectura y escritura acabo de hacer unas capturas de pantalla para que lo podais ver que una imagen vale mas que mil palabras.
EDITO
las imagenes no se han cargado en orden pero estan numeradas, ni que decir queda que la del 200 es la respuesta del servidor se supone que despues de haber insertado la meta_data, es muy raro es como si no tuviese permisos de escritura pero tampoco tira error al hacer la escritura,
la otra opcion que no me funciona es la subida de articulos obviamente, no me tira error, me da status 200 tambien pero tampoco los crea en el woocommerce.
como he comentado antes en la otra tienda exactamente igual me funciona a la perfeccion.
las claves de la api por supuesto estan como lectura/escritura
la verdad no se si cortarme las venas, o dejarmelas largas, me tiene desesperado.
Gracias por vuestra ayuda.
vuelvo a introducir las imagenes pero esta vez de la instalacion que funciona correctamente para que veais la diferencia
por esto es por lo que estoy seguro que lo que esta fallando es el woocommerce si o si.
he desactivado todos los plugins que no eran indispensables por si acaso y da igual sigue sin escribir.
podria ser que alguna carpeta del servidor donde este parte de la api este con los permisos mal?
saludos y gracias por la ayuda
Hola Francisco.
El estado 200 es de comunicación ok es decir que las peticiones entre la aplicación y el servidor se realizaron bien.
No veo problemas de bloqueos, recursos o permisos por lo que parece que todo esté bien, si que veo que tuviste problemas de recursos pero parece que ya están estables:
[Mon Jan 11 05:13:25.769822 2021] [hostinglimits:error] [pid 2239717] mod_hostinglimits: Error on LVE enter: LVE(548)
HANDLER(application/x-lsphp74) HOSTNAME(www.cursos.escuelacosmeticanaturalyojaranature.com)
URL(/pluginfile.php/129/course/summary/CREMA ANALGESICA.jpg) TID(2239717) errno (7) Read more: http://e.cloudlinux.com/MHL-E2BIG min_uid (500)
Si crees que el problema puede estar en WooCommerce puedes bajar de versión y probar si con una versión inferior se soluciona:
-> https://es.wordpress.org/plugins/wp-rollback/
A nivel de instalación solo veo un error pero no creo que afecte a lo que comentas:
[11-Jan-2021 12:21:37 UTC] PHP Fatal error: Uncaught Error: Call to a member function clear_cache() on null
in /home2/buenaveg/public_html/escuelacosmeticanaturalyojaranature.com/wp-content/plugins/addon-elements-for-elementor-page-builder/elementor-addon-elements.php:79
Este error hace referencia al plugin " addon-elements-for-elementor-page-builder " puedes probar a desactivarlo.
Un saludo
@pepesoler gracias por la ayuda, no pienso que sea de la version de woocommerce ya que en ambas instalaciones, que muestro arriba del error y el funcionamiento correcto, son la misma version tanto en Woocommerce como en Wordpress, he desactivado el plugin que me has comentado y sobre el wp-roolback me da miedo hacerlo ya que esta tienda esta en produccion y no vayamos a tonterias.
Hola Francisco,
En ese caso puedes probar realizar un clon del sitio web y realizar las pruebas dentro de este y no en producción, de esta forma puedes comprobar y realizar las pruebas sin correr el riesgo de afectar la tienda que esta en vivo.
En este articulo tienes información como realizar un clon desde tu cPanel -> https://www.webempresa.com/blog/clonar-wordpress-en-3-clics-sin-perder-tiempo.html
Ten en cuenta que al ser un código desarrollado a la medida no podemos comprobar su funcionamiento ni lo que puede estar causando el error
Un Saludo
@karen gracias por tu ayuda, he realizado un clon de la tienda y nada todo sigue igual, he desactivado plugins, he retrasado la version del woocommerce y nada todo sigue igual, no hay modo que esto escriba,
a ver si se os ocurre algo diferente y ya os digo que la programacion del ERP no es por que la tengo mas que comprobada y funciona en otra tienda exactamente igual.
Gracias por vuestra ayuda
Hola
La respuesta 200 no necesariamente significa que se ha realizado las actualizaciones, simplemente indica que la petición que querías se ejecutó. Tendrías que comprobar la respuesta Json.
Entiendo que estas haciendo un proceso por lotes, algo que podrías probar es actualizar un único producto y ver la respuesta que te da, revisa:
https://woocommerce.github.io/woocommerce-rest-api-docs/#update-a-product
Debería darte un json con la actualización.
Lo otro que puedes probar es hacer un script de prueba a parte en PHP, en tu máquina local, y verificar si el proceso por lotes esta funcionando correctamente, puedes guiarte del siguiente artículo:
https://decodecms.com/actualizar-el-stock-de-productos-usando-la-api-de-woocommerce/
Ten en cuenta que desde este foro sólo podemos darte generalidades, ya que no vemos temas específicos de programación.
Saludos.
@jmarreros buenos dias, gracias por tu ayuda
te voy a pasar respuesta json de la tienda que si me funciona y la parte que no hace en esta que os comento.
pudiera ser de la cache? tengo activo el varnish y la cache de webempresa
{
"id": 746,
"parent_id": 0,
"number": "746",
"order_key": "wc_order_jf2t8Xl5wWMht",
"created_via": "checkout",
"version": "4.8.0",
"status": "completed",
"currency": "EUR",
"date_created": "2021-01-10T16:38:00",
"date_created_gmt": "2021-01-10T16:38:00",
"date_modified": "2021-01-12T07:11:43",
"date_modified_gmt": "2021-01-12T07:11:43",
"discount_total": "0.00",
"discount_tax": "0.00",
"shipping_total": "5.00",
"shipping_tax": "1.05",
"cart_tax": "5.25",
"total": "36.30",
"total_tax": "6.30",
"prices_include_tax": false,
"customer_id": 8,
"customer_ip_address": "213.194.136.235",
"customer_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36",
"customer_note": "ESTO ES UNA NOTA DE PEDIDO",
"billing": {
"first_name": "PEDRO",
"last_name": "JIMENEZ",
"company": "",
"address_1": "REAL DE MALAGA",
"address_2": "",
"city": "LAS GABIAS",
"state": "GR",
"postcode": "18110",
"country": "ES",
"email": "pedro@jimenez.com",
"phone": "958958958"
},
"shipping": {
"first_name": "PEDRO",
"last_name": "JIMENEZ",
"company": "",
"address_1": "REAL DE MALAGA",
"address_2": "",
"city": "LAS GABIAS",
"state": "GR",
"postcode": "18110",
"country": "ES"
},
"payment_method": "cod",
"payment_method_title": "Contra reembolso",
"transaction_id": "",
"date_paid": "2021-01-10T16:38:31",
"date_paid_gmt": "2021-01-10T16:38:31",
"date_completed": "2021-01-10T16:38:31",
"date_completed_gmt": "2021-01-10T16:38:31",
"cart_hash": "661f2c6b80acb52cbeb69b78d1978969",
"meta_data": [
{
"id": 3946,
"key": "_billing_nif",
"value": "35265326J"
},
{
"id": 3947,
"key": "_shipping_nif",
"value": "35265326J"
},
{
"id": 3948,
"key": "_shipping_phone",
"value": "958958958"
},
{
"id": 3949,
"key": "_shipping_email",
"value": "pedro@jimenez.com"
},
{
"id": 3950,
"key": "is_vat_exempt",
"value": "no"
},
{
"id": 3951,
"key": "_yith_wcaf_referral_history",
"value": ""
},
{
"id": 3960,
"key": "_ywpi_invoice_number",
"value": "1"
},
{
"id": 3961,
"key": "_ywpi_invoiced",
"value": "1"
},
{
"id": 3962,
"key": "_ywpi_invoice_prefix",
"value": "Factura_"
},
{
"id": 3963,
"key": "_ywpi_invoice_suffix",
"value": ""
},
{
"id": 3964,
"key": "_ywpi_invoice_number",
"value": "1"
},
{
"id": 3965,
"key": "_ywpi_invoice_formatted_number",
"value": "Factura_/1/"
},
{
"id": 3966,
"key": "_ywpi_invoice_date",
"value": "2021-01-10 16:38:31"
},
{
"id": 3967,
"key": "_ywpi_invoice_path",
"value": "Factura_1.pdf"
},
{
"id": 3968,
"key": "_ywpi_invoice_folder",
"value": "Invoices"
},
{
"id": 3982,
"key": "tiendaPedidoID", ---- KEY QUE BUSCO PARA NO VOLVER A SINCRONIZAR EN CASO QUE EXISTA
"value": "1" ---- EL VALOR ES EL NUMERO DE PEDIDO EN EL ERP
} ----------------------------------- ESTE BLOQUE CUANDO HAGO LA OPERACION EN LA TIENDA QUE FALLA NO ME LO DEVUELVE. SI ME DA EL RESTO
],
"line_items": [
{
"id": 77,
"name": "ANILLO DE ORO",
"product_id": 745,
"variation_id": 0,
"quantity": 1,
"tax_class": "",
"subtotal": "25.00",
"subtotal_tax": "5.25",
"total": "25.00",
"total_tax": "5.25",
"taxes": [
{
"id": 1,
"total": "5.25",
"subtotal": "5.25"
}
],
"meta_data": [
{
"id": 589,
"key": "_ywpi_product_regular_price",
"value": "25.000000",
"display_key": "_ywpi_product_regular_price",
"display_value": "25.000000"
},
{
"id": 590,
"key": "_ywpi_product_sku",
"value": "ART_1",
"display_key": "_ywpi_product_sku",
"display_value": "ART_1"
},
{
"id": 591,
"key": "_ywpi_product_short_description",
"value": "",
"display_key": "_ywpi_product_short_description",
"display_value": ""
}
],
"sku": "ART_1",
"price": 25,
"parent_name": null
}
],
"tax_lines": [
{
"id": 79,
"rate_code": "%IVA 21-1",
"rate_id": 1,
"label": "%IVA 21",
"compound": false,
"tax_total": "5.25",
"shipping_tax_total": "1.05",
"rate_percent": 21,
"meta_data": []
}
],
"shipping_lines": [
{
"id": 78,
"method_title": "Precio fijo",
"method_id": "flat_rate",
"instance_id": "1",
"total": "5.00",
"total_tax": "1.05",
"taxes": [
{
"id": 1,
"total": "1.05",
"subtotal": ""
}
],
"meta_data": [
{
"id": 582,
"key": "Artículos",
"value": "ANILLO DE ORO × 1",
"display_key": "Artículos",
"display_value": "ANILLO DE ORO × 1"
}
]
}
],
"fee_lines": [],
"coupon_lines": [],
"refunds": [],
"currency_symbol": "€",
"_links": {
"self": [
{
"href": "https://joyeriaagora.com/wp-json/wc/v3/orders/746"
}
],
"collection": [
{
"href": "https://joyeriaagora.com/wp-json/wc/v3/orders"
}
],
"customer": [
{
"href": "https://joyeriaagora.com/wp-json/wc/v3/customers/8"
}
]
}
}
LOS DATOS POR SUPUESTO SON FICTICIOS DE ESTA TIENDA, los de la otra no, ya esta en produccion y son ventas reales.
Hola Francisco.
pudiera ser de la cache?
Puedes probar a desactivarlo, en este enlace tienes una guia, no tienes que eliminar el plugin o desactivarlo solo sigue los pasos:
Un saludo
@pepesoler Pues efectivamente es de la cache el problema pero no sirve desactivarla como comentas, ya que eso lo hice y seguía el problema
he solicitado a soporte que lo desactiven a nivel de servidor y buala ha empezado a rular sin problemas
es que era lo unico que faltaba por probar,
Gracias a todos por la ayuda y las ideas