Skip to content

Commit 9d9bc40

Browse files
committed
Minor updates based on feedback
1 parent 7ae0f7a commit 9d9bc40

File tree

3 files changed

+37
-16
lines changed

3 files changed

+37
-16
lines changed

EditorsDraft/edit.html

+19-5
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@
490490
2. **Identify**: <a>Customer</a> enters personal details and other requested details
491491
3. **Book and Pay**: <a>Customer</a> enters payment details
492492

493-
Note that some or all steps may be skipped, or may not be presented to the user, e.g. if their registration or payments details are already known, or they are using a voice interface. These steps are not indicative of the user experience, and simply provide a common language around the flow.
493+
Note that some or all steps may be skipped, or may not be presented to the user, e.g. if their registration or payment details are already known, or they are using a voice interface. These steps are not indicative of the user experience, and simply provide a common language around the flow.
494494

495495
### High-level API flow
496496

@@ -747,6 +747,8 @@
747747

748748
## Booking Flow with Approval
749749

750+
The <a>Booking System</a> MAY optionally support approval. As the approval processes is initiated by the <a>Booking System</a>, implementation of this section by the <a>Booking System</a> is only required if this flow is supported, otherwise this section can be completely ignored.
751+
750752
### Customer Journey
751753
The booking journey of a <a>Customer</a> is generalised into the following logical steps:
752754

@@ -763,7 +765,7 @@
763765
2. **Approve**: <a>Seller</a> approves the booking, after a period of time
764766
3. **Book and Pay**: <a>Customer</a> confirms they are happy to proceed
765767

766-
Note that some or all steps may be skipped, or may not be presented to the user, e.g. if their registration or payments details are already known, or they are using a voice interface. These steps are not indicative of the user experience, and simply provide a common language around the flow.
768+
Note that some or all steps may be skipped, or may not be presented to the user, e.g. if their registration or payment details are already known, or they are using a voice interface. These steps are not indicative of the user experience, and simply provide a common language around the flow.
767769

768770
### High-level API flow
769771

@@ -824,6 +826,8 @@
824826

825827
In the minimal implementation the `OrderProposal` can either be accepted or rejected by the <a>Seller</a>, or aborted by the <a>Customer</a>.
826828

829+
If an `Offer` requires this minimal implementation, the <a>Booking System</a> MUST include the `openBookingFlowRequirement` of `https://openactive.io/OpenBookingApproval` in the `Offer`s within its open data. This allows <a>Brokers</a> that do not support approval to easily filter out such offers from their experience.
830+
827831
##### Proposal Approval
828832

829833
- If <a>Seller</a> approval is given, the <a>Booking System</a> sets `orderProposalStatus` to `https://openactive.io/SellerAccepted` in the <a>Orders feed</a>, and the <a>Broker</a> MAY proceed to **B**.
@@ -835,7 +839,14 @@
835839

836840
Following any type of, the <a>Broker</a> MUST immediately withdraw any payment authorisation.
837841

838-
#### Proposal Amendment
842+
#### Proposal Amendment and Message Exchange
843+
844+
If an `Offer` requires either proposal amendment or message exchange, the <a>Booking System</a> MUST include the `openBookingFlowRequirement` of `https://openactive.io/OpenBookingNegotiation` in the `Offer`s within its open data. This allows <a>Brokers</a> that do not support such negotiation to easily filter out such offers from their experience.
845+
846+
<a>Brokers</a> SHOULD implement both Proposal Amendment and Message Exchange together as they are both related.
847+
848+
849+
##### Proposal Amendment
839850

840851
The <a>Booking System</a> MAY optionally support Proposal Amendment. If this is not supported by the <a>Booking System</a>, the simple Approval/Rejection workflow described in the Minimal Implementation may be used without needing to consider this (as this processes is initiated by the <a>Booking System</a>).
841852

@@ -848,7 +859,7 @@
848859

849860
Note that this specification does not support `OrderProposal` amendment by the <a>Customer</a>, and that <a>Customer</a> requests for changes to an existing proposal must be done via Message Exchange.
850861

851-
#### Message Exchange
862+
##### Message Exchange
852863

853864
The <a>Booking System</a> MAY optionally support Message Exchange during the proposal negotiation, which uses the same mechanism as Proposal Amendment. If this is not supported by the <a>Booking System</a>, the simple Approval/Rejection workflow described in the Minimal Implementation may be used without needing to consider this (as this processes is initiated by the <a>Booking System</a>).
854865

@@ -868,7 +879,7 @@
868879

869880
<figure>
870881
<img src="sequencediagramwithapproval.png" alt="Sequence diagram with approval">
871-
<figcaption>Sequence diagram showing API interactions with approval/figcaption>
882+
<figcaption>Sequence diagram showing API interactions with approval</figcaption>
872883
</figure>
873884

874885
For an `Order` that requires approval, the flow differs from the above as follows:
@@ -938,6 +949,8 @@
938949

939950
This version of the specification does not provide details to construct a complex additional details capture form, however it does facilitate simple text fields to capture additional details.
940951

952+
If an `Offer` requires additional details capture, the <a>Booking System</a> MUST include the `openBookingFlowRequirement` of `https://openactive.io/OpenBookingIntakeForm` in the `Offer`s within its open data. This allows <a>Brokers</a> that do not support additional details capture to easily filter out such offers from their experience.
953+
941954
<pre class="example" title="Example of orderItemIntakeForm provided by Booking System at C1">
942955
{
943956
"type": "OrderItem",
@@ -1892,6 +1905,7 @@
18921905
| [`oa:availableChannel`](https://openactive.io/availableChannel) | REQUIRED | REQUIRED | Array of [`oa:AvailableChannelType`](https://openactive.io/AvailableChannelType) | Can include `https://openactive.io/OpenBookingPrepayment`, `https://openactive.io/TelephoneAdvanceBooking`, `https://openactive.io/TelephonePrepayment`, `https://openactive.io/OnlinePrepayment` |
18931906
| [`oa:validFromBeforeStartDate`](https://openactive.io/validFromBeforeStartDate) | - | OPTIONAL | [`schema:Duration`](https://schema.org/Duration) | The duration before the `startDate` for which this Offer is valid, given in [ISO8601] format. This is a relative equivalent of [`schema:validFrom`](http://schema.org/validFrom), to allow for Offer inheritance. |
18941907
| [`oa:latestCancellationBeforeStartDate`](https://openactive.io/latestCancellationBeforeStartDate) | - | OPTIONAL | [`schema:Duration`](https://schema.org/Duration) | The duration before the `startDate` during which this Offer may **not** be cancelled, given in [ISO8601] format. |
1908+
| [`oa:openBookingFlowRequirement`](https://openactive.io/openBookingFlowRequirement) | REQUIRED | REQUIRED | Array of [`oa:OpenBookingFlowRequirement`](https://openactive.io/AvailableChannelType) | Can include `https://openactive.io/OpenBookingIntakeForm`, `https://openactive.io/OpenBookingApproval`, `https://openactive.io/OpenBookingNegotiation` |
18951909

18961910
Note that for an `Offer` to be bookable under this specification, `availableChannel` must include `https://openactive.io/OpenBookingPrepayment`.
18971911

0 commit comments

Comments
 (0)