Ajustes
Permiso: gestión.
Rutas
| Método | Ruta | Desde |
|---|---|---|
| GET, PUT, PATCH | /settings/fulfillment | 1.17.0 |
| GET, PUT, PATCH, DELETE | /settings/appearance | 1.19.0 |
| GET, PUT, PATCH, DELETE | /settings/catalog-layout | 1.20.0 |
| PUT | /settings/catalog-layout/category-order | 1.28.0 |
Operación: domicilio, recogida y horarios
Son los mismos ajustes de Domicilio, Recogida y horarios en la app y de Servicios y horarios en wp-admin.
GET /settings/fulfillment:
{
"schema_version": 2,
"timezone": "America/Bogota",
"emergency_closed": false,
"allow_scheduled_while_closed": false,
"delivery": {
"enabled": true, "force_disabled": false, "prep_time_minutes": 30, "enforce_hours": true, "minimum_order": "20000",
"date_selection": { "enabled": true, "advance_days": 7 },
"time_selection": { "enabled": true, "allow_now": true, "allow_asap": true, "slot_minutes": 30, "max_orders_per_slot": 8 },
"hours": { "monday": [ { "start": "11:00", "end": "22:00" } ], "sunday": [] },
"fee": { "mode": "distance", "amount": "5000", "per_km_amount": "0",
"distance_tiers": [ { "km_from": 0, "km_to": 3, "fee": "4000" }, { "km_from": 3, "km_to": 8, "fee": "7000" } ] },
"distance": { "store_address": "Carrera 7 # 1-1, Bogotá", "store_latitude": 4.6, "store_longitude": -74.07,
"max_distance_km": 15, "mode": "default", "has_api_key": true, "has_browser_map_key": true }
},
"pickup": {
"enabled": true, "prep_time_minutes": 15, "hide_address": false,
"tables": { "enabled": true, "selection": "qr_or_list", "tables": [ { "id": "t1", "label": "Mesa 1", "zone": "Salón", "capacity": 2, "active": true } ] }
}
}
timezone es de solo lectura: es la zona horaria de WordPress.
Guardar
PUT y PATCH combinan lo enviado con lo guardado, y el horario se combina por día. Envía solo lo que quieres cambiar:
curl -X PATCH https://tienda.example.test/wp-json/notiwoo/v1/settings/fulfillment \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"delivery": {"prep_time_minutes": 40, "hours": {"tuesday": [{"start": "11:00", "end": "15:00"}]}}}'
- Claves de Google: envía
delivery.distance.google_api_key(clave de servidor para Routes API) ygoogle_maps_browser_key(clave pública de Maps JS). Nunca se devuelven: la respuesta solo indicahas_api_keyyhas_browser_map_key. Si omites una clave o la envías vacía, se conserva. Para borrarla, envíaclear_google_api_key: trueoclear_google_maps_browser_key: true. - Mesas:
pickup.tables.tablesreemplaza la lista completa de mesas. Es preferible usar/settings/tables.
Errores de validación (400): notiwoo_invalid_hours, notiwoo_invalid_hours_range, notiwoo_overlapping_hours, notiwoo_invalid_slot_size, notiwoo_invalid_slot_capacity, notiwoo_invalid_advance_days, notiwoo_invalid_delivery_fee_mode, notiwoo_invalid_delivery_fee, notiwoo_invalid_distance_tiers, notiwoo_overlapping_distance_tiers, notiwoo_invalid_store_location, y otros notiwoo_invalid_*. Quitar una mesa ocupada responde 409 table_occupied.
Apariencia del popup de extras
GET /settings/appearance responde { colors, defaults, labels, variables }.
PUT recibe { "colors": { "surface": "#111827", "text": "#f8fafc", "option": "#1f2937", "accent": "#2563eb" } }. Todos los valores deben ser colores hexadecimales.
DELETE restablece los colores por defecto.
Error: 400 notiwoo_invalid_appearance_payload (cuerpo vacío, clave desconocida o valor no hexadecimal).
Después de cambiar los colores, purga la caché de la tienda.
Menú de categorías
GET /settings/catalog-layout responde { settings, defaults, styles, category_order }.
| Ajuste | Por defecto | Valores |
|---|---|---|
enabled | false | |
style | chips | chips, sidebar, tabs o accordion |
sticky | true | Menú fijo al desplazarse. |
show_counts | true | |
show_images | false | Miniaturas de categoría. |
show_all | true | Opción «Todos». |
columns | 3 | 1 a 6. |
max_depth | 2 | Niveles, de 1 a 4. |
hide_empty | true | |
product_cap | 300 | 20 a 2000 productos. |
menu_mode | false | Modo menú. |
show_description | false | Descripción corta. |
PUT recibe { "settings": {...} }. DELETE restablece los valores por defecto.
Orden de categorías
PUT /settings/catalog-layout/category-order con { "order": [22, 15, 31] } ordena las categorías principales. Los IDs desconocidos se descartan y las categorías que no envíes se añaden al final. Responde con la configuración completa.
Consulta Menú de catálogo.