Migrate from WooFood
If your integration used woofood/v1 or woofood/v2, migrate to notiwoo/v1.
Redirects
Once no WooFood plugin is active, Notiwoo responds to the old routes with HTTP 308:
HTTP/1.1 308 Permanent Redirect
Location: https://tienda.example.test/wp-json/notiwoo/v1/extras
X-Notiwoo-Deprecated: true
{
"success": false,
"error": {
"code": "notiwoo_deprecated_route",
"message": "The route \"woofood/v1/extra-options\" is deprecated. Use \"notiwoo/v1/extras\".",
"details": { "redirect_to": "https://tienda.example.test/wp-json/notiwoo/v1/extras" }
}
}
The redirect keeps the method and body, but many routes changed method or format. Following the redirect does not guarantee the call will work: update the client. While a WooFood plugin is still active, that plugin serves the old routes.
Authentication with the Username and Password headers no longer exists: use a Bearer token.
Route mapping
| Old route | New route |
|---|---|
users/login | POST /auth/token |
users/register | POST /auth/register |
users/reset_password | POST /auth/reset-password |
users/edit_profile | PUT /auth/me |
users/orders | GET /users/me/orders |
users/addresses, new-address, delete-address | /users/me/addresses (deleted by position) |
users/place_order | POST /orders |
users/check_order_status | GET /orders/{id}/status |
users/update_order, orders/update | PUT /orders/{id} |
orders | GET /orders |
orders/statuses | GET /order-statuses |
orders/minutes_changer | POST /orders/{id}/minutes |
orders/reports | GET /orders/reports (now with URL parameters) |
orders/delete | DELETE /orders/{id} |
orders/force_disable, force_disable_status | GET /order-types, PUT /order-types/{slug}/force-disable |
products | GET /catalog |
products/search | GET /products?search= |
products/edit | PUT /products/{id}/availability with { "enabled": … } |
products/categories | GET /product-categories |
extra, extra-options | /extras |
extra-category | /extra-categories |
payment_gateways, payment/gateways | GET /payment-gateways |
paymentmethods | GET /payment-methods |
shipping/zones | GET /shipping-methods |
deliveryboys | GET /delivery-boys |
Behavior changes
- Server-side prices:
POST /ordersignores prices, totals and distances sent by the client. - Payments: the API can only create orders with offline payment methods.
- Initial status:
processing, oracceptingif the store had WooFood's manual acceptance enabled. - Pagination: arrives in
meta, not in headers.
Data migration
Data (extras, categories, assignments, hours and fees) is migrated from Notiwoo → Dashboard and from Operations → Services and hours, with a preview before applying. See Install and connect the plugin.
The /migration/* routes are for internal use by those screens and may change without notice.