Field Reset: Restoring Original POS Values
Oolio's Field Reset feature allows you to revert customized menu and product fields back to their original Point of Sale (POS) values. This gives you the flexibility to experiment with customizations while maintaining the ability to restore baseline data from your POS system.
Overview
When you customize menu or product fields in Oolio Order Management (OOM), the system:
- Preserves Original Values: Stores the original POS data for each modified field
- Tracks Modifications: Maintains a record of which fields have been customized
- Enables Reset: Provides one-click reset to restore original POS values
- Smart POS Sync: Updates baseline values during POS sync while preserving your customizations
This ensures you can confidently make changes knowing you can always revert to POS defaults.
Supported Fields
Menu Fields
The following menu-level fields support modification tracking and reset:
| Field | Description | Example Use Case |
|---|---|---|
| Name | Menu display name | Customize menu name for seasonal promotions |
| Description | Menu description text | Add marketing copy for special menus |
| Image URI | Menu header image | Use custom branded imagery |
| Service Availability | Dine-in, takeaway, delivery flags | Temporarily disable certain service types |
| Order Types | Supported order types | Customize order types per location |
Product Fields
Product modifications are tracked per menu (same product can have different customizations in different menus):
| Field | Description | Example Use Case |
|---|---|---|
| Name | Product display name | Localize product names for different locations |
| Description | Product description | Add allergen info or promotional text |
| Price | Product unit price | Run location-specific pricing or promotions |
| Options | Product option groups and variants | Customize available sizes or add-ons |
| Included Items | Items included in bundles/combos | Adjust combo contents for local preferences |
How Modification Tracking Works
Modification Lifecycle
What Happens When You Modify a Field
-
First Modification:
- Current value is captured as "original"
- Field is marked as
modified: true - Timestamp is recorded
- Modified flag appears in UI
-
Subsequent Modifications:
- Original value is preserved (not overwritten)
- Modified timestamp is updated
- Modified flag remains visible
-
POS Sync Updates:
- Your customized value is kept
- Original baseline is updated with new POS data
- Reset will use the latest POS value
Using Field Reset
In the OOM Interface
Menu Fields
- Navigate to Menus in the OOM dashboard
- Select the menu you want to edit
- Look for the modified flag (🔄) next to customized fields
- Click the modified flag to open reset confirmation
- Confirm to restore the original POS value

Product Fields
- Navigate to Products or edit a product from within a menu
- Modified fields will display a modified flag indicator
- Click the flag to reset individual fields
- Confirmation dialog shows what will change
Via API
Reset Menu Fields
Endpoint: PATCH /api/v1/menus/{menuId}/reset-fields
curl -X PATCH \
'https://orders.oolio.io/api/v1/menus/menu-123/reset-fields' \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"fields": ["name", "description"]
}'Request Body:
{
"fields": ["name", "description", "imageUri"]
}Response:
{
"message": "Menu fields reset successfully"
}Reset Product Modifications
Endpoint: POST /api/v1/products/{productId}/action/reset
curl -X POST \
'https://orders.oolio.io/api/v1/products/product-456/action/reset' \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"menuId": "menu-123",
"fields": ["price", "description"]
}'Request Body:
{
"menuId": "menu-123",
"fields": ["price", "description"]
}Response:
{
"message": "Product modifications reset successfully"
}Common Use Cases
Seasonal Menu Customization
Scenario: You customize menu names and images for a summer promotion.
1. Update menu name: "Regular Menu" → "Summer Specials ☀️"
2. Update menu image: Upload summer-themed banner
3. Run promotion for 3 months
4. Click reset on both fields to revert to POS defaultsResult: Menu instantly returns to "Regular Menu" with original image.
Location-Specific Pricing
Scenario: Run a discount on specific products at one location.
1. Product "Burger" normally $12.00 (from POS)
2. Modify price to $9.99 for weekend promotion
3. After promotion, reset price fieldResult: Price returns to $12.00 (latest POS value).
Marketing Copy Experiments
Scenario: Test different product descriptions for conversion optimization.
1. Original description: "Grilled chicken sandwich"
2. Test description: "Flame-grilled chicken with crispy bacon and..."
3. After A/B test, reset description if original performed betterResult: Description reverts to POS value.
POS Sync Behavior
How Sync Preserves Customizations
When your POS system sends updated menu data:
| Scenario | Modified Field | POS Update | Result |
|---|---|---|---|
| You customized | Menu Name = "Summer Menu" | POS sends "Regular Menu" | Your value kept; baseline updated |
| You didn't customize | Menu Name = "Regular Menu" | POS sends "Updated Menu" | POS value applied directly |
| After reset | Menu Name = "Regular Menu" (reset) | POS sends "New Menu" | POS value applied (no longer modified) |
Smart Baseline Updates
Key Insight: After POS sync, resetting will use the latest POS value, not the value from when you first customized.
Operation Logging
All reset operations are logged for audit purposes:
Log Entry Example
{
"logId": "log-789",
"operationType": "menu_field_reset",
"locationId": "loc-123",
"menuId": "menu-456",
"metadata": {
"resetFields": ["name", "description"],
"resetBy": "user-123",
"resetAt": 1703001234567
},
"message": "Reset menu fields: name, description to original POS values",
"createdAt": 1703001234567
}Multi-Location Logging
For menus linked to multiple locations, reset operations create:
- One operation log per location
- Same reset metadata for consistency
- Aggregated view in operation logs dashboard
Best Practices
✅ Do
- Reset During Quiet Hours: Reset fields when customer traffic is low to avoid confusion
- Review Before Reset: Check the original POS value in the confirmation dialog
- Test in Staging: If available, test reset behavior in a staging environment first
- Document Customizations: Keep notes on why fields were customized to inform reset decisions
- Use for Promotions: Great for temporary campaigns that revert to baseline
❌ Don't
- Don't Rely on Reset as Undo: Reset restores POS values, not your previous custom value
- Don't Reset During Peak Hours: Avoid resetting menu/product fields during busy service times
- Don't Batch Reset Without Review: Check each field before resetting multiple fields at once
- Don't Ignore Modified Flags: Modified flags indicate drift from POS; review periodically
Limitations
Current Limitations
-
No Bundled Items Reset (UI): While the backend supports tracking bundled item modifications, the UI for resetting bundled items is not yet implemented. This feature is planned for a future release.
-
No History Tracking: Only the current modification state is tracked. You cannot view or restore previous custom values.
-
No Bulk Operations: Cannot reset fields across multiple menus or products in a single operation.
-
Menu Context for Products: Product modifications are menu-specific. Resetting a product in one menu doesn't affect the same product in other menus.
Future Enhancements
The following features are planned for future releases:
- Bundled Items Reset UI: Complete the implementation with UI support
- Bulk Reset: Reset multiple menus or products simultaneously
- Modification History: View and restore previous customizations
- Automated Reset Policies: Auto-reset fields based on business rules (e.g., end of promotion period)
- Category-Level Fields: If category fields become user-customizable in the future
Troubleshooting
Modified Flag Not Appearing
Problem: You modified a field but don't see the modified flag.
Possible Causes:
- Field was updated via POS sync, not user modification
- Modification tracking not enabled for that field type
- UI cache issue
Solution:
- Refresh the page
- Verify the field is in the supported fields list
- Check if the value actually differs from POS
Reset Not Working
Problem: Clicking reset doesn't change the field value.
Possible Causes:
- Field was never modified (nothing to reset)
- API error or permission issue
- Original POS value is the same as current value
Solution:
- Check browser console for errors
- Verify you have edit permissions
- Check operation logs for reset attempt
Original Value Unexpected
Problem: Reset restored a different value than expected.
Explanation: The "original" value is the latest POS value, not the value when you first customized. POS sync updates the baseline.
Example:
Day 1: POS value = "Burger" → You customize to "Premium Burger"
Day 5: POS updates to "Deluxe Burger" (original updated, your value kept)
Day 7: You reset → Gets "Deluxe Burger" (not "Burger")API Reference
Menu Field Reset
- Endpoint:
PATCH /api/v1/menus/{menuId}/reset-fields - Authentication: Bearer token required
- Rate Limit: 100 requests per minute
- Scope:
menus:write
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
menuId | string (path) | Yes | Unique menu identifier |
fields | array (body) | Yes | Array of field names to reset |
Errors:
| Code | Description |
|---|---|
| 400 | Invalid fields or empty array |
| 401 | Unauthorized (invalid token) |
| 403 | Forbidden (insufficient permissions) |
| 404 | Menu not found |
Product Modifications Reset
- Endpoint:
POST /api/v1/products/{productId}/action/reset - Authentication: Bearer token required
- Rate Limit: 100 requests per minute
- Scope:
products:write
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
productId | string (path) | Yes | Unique product identifier |
menuId | string (body) | Yes | Menu context for modifications |
fields | array (body) | Yes | Array of field names to reset |
Errors:
| Code | Description |
|---|---|
| 400 | Invalid fields, missing menuId, or empty array |
| 401 | Unauthorized (invalid token) |
| 403 | Forbidden (insufficient permissions) |
| 404 | Product or menu not found |
Related Documentation
- Menu Management - Overview of menu management system
- POS Sync Behavior - How POS sync works with modifications
- Product Assignment - Managing products in menus
- Category Management - Organizing menu categories
- API Reference - Complete API documentation
FAQs
Q: What happens if I reset a field that was never modified?
A: Nothing changes. The API will skip fields that aren't currently modified, and the operation completes successfully.
Q: Can I reset multiple fields at once?
A: Yes! You can pass multiple field names in the fields array. Each field will be reset to its original POS value.
Q: Will resetting affect my other menus or locations?
A: No. For menus, reset only affects the specific menu. For products, reset only affects the product modifications within the specified menu context.
Q: Can I see what the original value is before resetting?
A: Yes. The reset confirmation dialog shows both the current value and the original POS value that will be restored.
Q: What if my POS system deletes a product after I've customized it?
A: If the POS removes a product, it will be removed from OOM as well, and any customizations will be deleted. Reset is not applicable in this scenario.
Q: Can I undo a reset?
A: No. Reset is a destructive operation that restores the POS value. Your custom value is lost. However, you can always re-customize the field.
Q: How do I know which fields are safe to reset?
A: Check the operation logs and modification timestamps. If a field was modified long ago and POS has updated since, review the original value in the confirmation dialog before proceeding.