Skip to main content

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 routeNew route
users/loginPOST /auth/token
users/registerPOST /auth/register
users/reset_passwordPOST /auth/reset-password
users/edit_profilePUT /auth/me
users/ordersGET /users/me/orders
users/addresses, new-address, delete-address/users/me/addresses (deleted by position)
users/place_orderPOST /orders
users/check_order_statusGET /orders/{id}/status
users/update_order, orders/updatePUT /orders/{id}
ordersGET /orders
orders/statusesGET /order-statuses
orders/minutes_changerPOST /orders/{id}/minutes
orders/reportsGET /orders/reports (now with URL parameters)
orders/deleteDELETE /orders/{id}
orders/force_disable, force_disable_statusGET /order-types, PUT /order-types/{slug}/force-disable
productsGET /catalog
products/searchGET /products?search=
products/editPUT /products/{id}/availability with { "enabled": … }
products/categoriesGET /product-categories
extra, extra-options/extras
extra-category/extra-categories
payment_gateways, payment/gatewaysGET /payment-gateways
paymentmethodsGET /payment-methods
shipping/zonesGET /shipping-methods
deliveryboysGET /delivery-boys

Behavior changes​

  • Server-side prices: POST /orders ignores prices, totals and distances sent by the client.
  • Payments: the API can only create orders with offline payment methods.
  • Initial status: processing, or accepting if 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.