Resumen del problema
estoy tratando de buscar todos los clientes con CARTERO usando lo último API de Woocommerce (v3):
GET/customers
Aún solo se devuelve un pequeño segmento. El número de clientes devueltos es 28 (X-WP-Total) que es mucho menos que los más de 150 clientes que tengo en el sistema.
¿Tienen alguna idea de por qué solo se devuelve un subconjunto de todos los clientes en lugar de todos? ¿Tiene esto algo que ver con la forma en que configuro woocommerce? ¿O simplemente estoy usando la API incorrectamente?
lo que he intentado
Mi meta es crear una pequeña aplicación para buscar un cliente por teléfono/correo electrónico y luego traer los pedidos que había hecho.
Vocación
GET/customers
Solo devuelve un pequeño subconjunto de todos los clientes y el resto se omite.
Cualquier cliente omitido desde el OBTENER/clientes también devolverá una matriz vacía cuando, por ejemplo, uso
GET/customers?email=...
GET/customers?search=...
Las solicitudes devuelven una matriz vacía en los clientes omitidos, pero funcionan en los clientes que no se omitieron de:
GET/customers
Sin embargo, dada una identificación de cliente omitida conocida, es posible buscar a ese cliente enviando una solicitud a
GET/customer/{ID}
lo cual no tiene ningún sentido.
La solución es poner:
GET/customers?role=all
Pensé que GET/clientes solo devuelven por defecto a los clientes cuyo rol es ‘cliente’.
Sin embargo, dado que también uso membresías/suscripciones, a un cliente se le asigna automáticamente un nuevo rol (“suscriptor”) cada vez que opta por una membresía. Por lo tanto, ese cliente no estaría incluido en la respuesta ya que su papel ya no es el de ‘cliente’.
Espero que esto ayude a cualquiera que se encuentre con el mismo problema.
-
No estoy seguro de cómo funciona role=all en un solo sitio, pero un sitio múltiple solo enumera mi propio usuario cuando usa esto. Tengo el mismo problema que tuviste, donde ningún cliente aparece en la lista usando el GET /clientes predeterminado, aunque hay algunos.
– Neurona Oscura
1 de junio de 2020 a las 14:43
-
Estaba usando la gema woocomerce_api y me funcionó lo siguiente:
$woocommerce.get('customers', orderby: 'id', filter: { role: 'all' })
. tuve que anidarrole=all
por debajofilter
.– Kartikey Tanna
5 de octubre de 2021 a las 4:13
-
¡Gracias hombre! ¡Estaba tan confundido!
– Kamal Alhomsi
6 ene a las 13:12
¿Has encontrado alguna solución? También estoy enfrentando el mismo problema. API respondiendo solo un cliente
– jayant rawat
19 de junio de 2020 a las 5:55