Saltar al contenido principal

Ajustes

Permiso: gestión.

Rutas​

MétodoRutaDesde
GET, PUT, PATCH/settings/fulfillment1.17.0
GET, PUT, PATCH, DELETE/settings/appearance1.19.0
GET, PUT, PATCH, DELETE/settings/catalog-layout1.20.0
PUT/settings/catalog-layout/category-order1.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) y google_maps_browser_key (clave pública de Maps JS). Nunca se devuelven: la respuesta solo indica has_api_key y has_browser_map_key. Si omites una clave o la envías vacía, se conserva. Para borrarla, envía clear_google_api_key: true o clear_google_maps_browser_key: true.
  • Mesas: pickup.tables.tables reemplaza 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 }.

AjustePor defectoValores
enabledfalse
stylechipschips, sidebar, tabs o accordion
stickytrueMenú fijo al desplazarse.
show_countstrue
show_imagesfalseMiniaturas de categoría.
show_alltrueOpción «Todos».
columns31 a 6.
max_depth2Niveles, de 1 a 4.
hide_emptytrue
product_cap30020 a 2000 productos.
menu_modefalseModo menú.
show_descriptionfalseDescripció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.