[null,null,["最后更新时间 (UTC):2025-07-26。"],[[["\u003cp\u003eSpecify order fulfillment time and fees for pickup and delivery food ordering action links using service feeds, including fixed values, ranges, and open-ended ranges.\u003c/p\u003e\n"],["\u003cp\u003eEnsure fee and fulfillment time accuracy by providing comprehensive data, encompassing potential variations and clearly communicating any changes to users during checkout.\u003c/p\u003e\n"],["\u003cp\u003eUtilize real-time updates for faster ETA and fee adjustments to maintain accuracy and reflect current information, especially for frequent changes, as standard feed uploads can take up to 2 hours to process.\u003c/p\u003e\n"],["\u003cp\u003eRefer to the provided feed samples and documentation for detailed instructions and examples on implementing fee and fulfillment time specifications in your service feeds.\u003c/p\u003e\n"],["\u003cp\u003eContact your Actions Center representative for any specific questions or clarification regarding your implementation.\u003c/p\u003e\n"]]],["This tutorial outlines specifying order fulfillment fees and times for food pickup and delivery through service feeds. Fees can be fixed, percentage-based, or ranges (including open-ended). Supported fee types are delivery and service. Fulfillment times are defined as fixed or time ranges. Both fees and times can be set for specific time windows. Accuracy is crucial; ranges are recommended for variability. Real-time updates are encouraged for frequent changes, as feed updates take at least 2 hours.\n"],null,["| **Objective:** Learn how to specify order fulfillment time and fees for pickup and delivery food ordering action links, and how to update the values as it changes.\n\nThis tutorial walks through:\n\n1. A high level description of what fee \\& fulfillment time use cases are supported\n2. Specific instructions on how to specify order fulfillment time and fees for [Service feeds](/actions-center/verticals/ordering/redirect/reference/feeds/services-feed).\n3. Expectations for accuracy\n\nFor a full feed sample that shows usage of order fulfillment time and fees, see the\n[Ordering Redirect EPA sample](/actions-center/verticals/ordering/redirect/reference/feeds/services-feed#samples).\n\nFees\n\n\nWe provide several different ways to specify fees, such as:\n\n- **Fixed Fee**: \"Delivery fee $5\" or \"Service fee $5\"\n- **Percentage Fee**: \"Delivery fee 5%\" or \"Service fee 5%\"\n- **Fee Ranges**: \"Delivery Fees $2-$10\" or \"Service Fees 3%-6%\"\n- **Open Ended Ranges** \"Delivery Fees start at 5%\" or \"Service Fees up to $20\"\n\n\nFees can be specified as either a delivery fee or service fee.\nIt is also possible to specify multiple fees (e.g. \"Service fee 5%-10%, Delivery Fee $5\").\n\n\nNot supported are use cases that require fees to change based on information\nabout the user.\n\nFee Examples\n\nDelivery and Pickup fees Application supports the \\`DELIVERY\\` and \\`SERVICE\\` fee types. \n\nDelivery \n\n```carbon\n{\n \"fee\": {\n \"fee_id\": \"12345/delivery_fee\",\n \"fee_type\": \"DELIVERY\",\n \"fixed_amount\": {\n \"currency_code\": \"USD\",\n \"units\": 10,\n \"nanos\": 0\n },\n \"service_ids\": [\"service/entity002\"]\n }\n}\n```\n\nService \n\n```carbon\n{\n \"fee\": {\n \"fee_id\": \"12345/service_fee\",\n \"fee_type\": \"SERVICE\",\n \"fixed_amount\": {\n \"currency_code\": \"USD\",\n \"units\": 10,\n \"nanos\": 0\n },\n \"service_ids\": [\"service/entity002\"]\n }\n}\n```\n\nDifferent fee types The following outlines some easy-to-use examples for specifying a chosen fee type. \n\nFixed \n\n```carbon\n{\n \"fee\": {\n \"fee_id\": \"12345/delivery_fee\",\n \"fee_type\": \"DELIVERY\",\n \"fixed_amount\": {\n \"currency_code\": \"USD\",\n \"units\": 10,\n \"nanos\": 0\n },\n \"service_ids\": [\"service/entity002\"]\n }\n}\n```\n\nCart percentage \n\n```carbon\n{\n \"fee\": {\n \"fee_id\": \"12345/delivery_fee\",\n \"fee_type\": \"DELIVERY\",\n \"cart_percentage\": {\n \"base_value\": {\n \"currency_code\": \"USD\",\n \"units\": 3,\n \"nanos\": 500000000\n },\n \"percentage_of_cart_value\": 10\n },\n \"service_ids\": [\n \"service/entity002\"\n ]\n }\n}\n```\n\nRange \n\n```carbon\n{\n \"fee\": {\n \"fee_id\": \"12345/delivery_fee\",\n \"fee_type\": \"DELIVERY\",\n \"range_amount\": {\n \"min_amount\": {\n \"currency_code\": \"USD\",\n \"units\": 3,\n \"nanos\": 500000000\n },\n \"max_amount\": {\n \"currency_code\": \"USD\",\n \"units\": 5,\n \"nanos\": 600000000\n }\n },\n \"service_ids\": [\n \"service/entity002\"\n ]\n }\n}\n```\n\nFulfillment Time\n\n\nWe allow several different formats for specifying availability time to help ensure you're\nproviding accurate data. The following points describe the different use cases supported, along\nwith some example language similar to what the user will see on the frontend.\n\n- **Fixed Times**: \"Delivers in 30 min\" or \"Pickup in 15 min\"\n- **Time Ranges**: \"Delivers in 30 min-1 hr\" or \"Pickup in 15-20 min\"\n\n\nFulfillment time can be specified for both pickup and delivery using a common format\n(described below).\n\n\nNot supported are use cases that require ETAs to change based on information about the user.\n\nFulfillment time examples\n\nOrder fulfillment time for action links is included in the Services feed\n[`ETA`](/actions-center/verticals/ordering/redirect/reference/feeds/services-feed#ETA-definition)\nmessage, as part of the\n[`FoodOrderingService`](/actions-center/verticals/ordering/redirect/reference/feeds/services-feed#service-definition)\nfield. \n\nFixed \n\n```carbon\n{\n \"service\": {\n \"service_id\": \"service-id\",\n \"service_type\": \"TAKEOUT\",\n \"parent_entity_id\": \"entity-id\",\n \"lead_time\": {\n \"min_lead_time_duration\": \"900s\"\n },\n \"action_link_id\": \"action-link-id\"\n }\n},\n```\n\nTime range \n\n```carbon\n{\n \"service\": {\n \"service_id\": \"service-id\",\n \"service_type\": \"TAKEOUT\",\n \"parent_entity_id\": \"entity-id\",\n \"lead_time\": {\n \"min_lead_time_duration\": \"900s\"\n \"max_lead_time_duration\": \"1200s\"\n\n },\n \"action_link_id\": \"action-link-id\"\n }\n},\n```\n\nFulfillment time windows\n\nWith [`ServiceHours`](/actions-center/verticals/ordering/redirect/reference/feeds/services-feed#ServiceHours-definition),\nfulfillment times can be set for a specific time window. The default\n`lead_time` set in the\n[`FoodOrderingService`](/actions-center/verticals/ordering/redirect/reference/feeds/services-feed#service-definition) is used\nwhen outside of service hour time windows.\nIn this example, the `lead_time` of `2400s` will be displayed from 11:00am to 1:30pm. \nThe `lead_time` of `1200s` will be displayed before 11:00am and after 1:30pm. \n\n```json\n{\n \"data\": [\n {\n \"service\": {\n \"service_id\": \"merchant-1-service-delivery\",\n \"service_type\": \"DELIVERY\",\n \"parent_entity_id\": \"merchant-1\",\n \"lead_time\": {\n \"min_lead_time_duration\": \"1200s\"\n },\n \"action_link_id\": \"merchant-1-takeout-delivery-action\"\n }\n },\n {\n \"service_hours\": {\n \"hours_id\": \"merchant-1-advance-hours-delivery\",\n \"service_ids\": [\"merchant-1-service-delivery\"],\n \"asap_hours\": [\n {\n \"time_windows\": {\n \"time_windows\": {\n \"open_time\": {\n \"hours\": 11\n },\n \"close_time\": {\n \"hours\": 13,\n \"minutes\": 30\n }\n }\n },\n \"lead_time\": {\n \"min_lead_time_duration\": \"2400s\"\n }\n }\n ]\n }\n }\n ]\n}\n```\n\nFee \\& fulfillment time accuracy\n\nFee accuracy\n\nWhen you provide fee data for a merchant, we expect you to provide an accurate representation\nof your fees. You should include all delivery and service fees that may apply to an order.\n\nWe recognize that fees may vary over time and across users. For this reason we offer the\nability to specify fees as ranges, including open ended ranges. In cases where fees can vary\nsignificantly be sure that the range provided encompasses the fees a user could see during\ntheir transaction.\n\nIf you are unsure of specifically what is required in your case, reach out to your\nActions Center contact.\n\nOrder fulfillment time accuracy\n\nWe understand that the specifics of order fulfillment\ntime change based on a variety of factors. These factors include:\n\n- Changes to order fulfillment time based on order size\n- Changes to order fulfillment time based on time to complete ordering and checkout\n- Latency between when order fulfillment time changes are updated through feeds\n- The user's delivery address.\n\nAny of these factors may lead to situations where the order fulfillment\ntime displayed to the user initially is not the exact fulfillment time they\nwill see at checkout. The goal of the fulfillment time implementation is not\nto eliminate these entirely, but to provide clear information to users as\noften as possible.\n\nPartners are expected to provide an implementation that leads to accurate\nfulfillment time displayed to users as often as is possible, on a best effort\nbasis. If there is significant variability in timing due to these factors we suggest\nyou provide a range of times that encompass that variability.\nAdditionally, if fulfillment time does change due to order details,\nthis should be clearly shown to users when the arrive in your ordering flow.\n\nIf you are unsure of specifically what\nis required in your case, reach out to your Actions Center contact.\n\nTimely updates to Fees and ETAs\n\nAny changes using a normal feed upload can take at least 2 hours\nto process. This is especially important to note if you plan on changing ETAs\nfrequently.\n\nPartners are highly encouraged to implement [Real-time Updates](/actions-center/verticals/ordering/redirect/integration-steps/action-link-feeds/real-time-update),\nwhich enables an API call to change the [Service feed](/actions-center/verticals/ordering/redirect/reference/feeds/services-feed) (including fees and ETAs) within 5 minutes or less."]]