How to create an order for a fixed price Season Ticket

What is a season ticket?

In SecuTix, a Season Ticket is a composed product : a product "containing" other products.
For example, in sports business, it will be a product containing all or some performances of a competition.
See below a schematic view of the catalog showing how information is organized inside a Season Ticket description.

<CatalogData>
  <Season>
    <Product>
      <!-- Here generic information about the season ticket -->
      <SeasonTicket>
        <!-- Here specific information about the season ticket -->

        <SeasonTicketItem></SeasonTicketItem>
        <SeasonTicketItem></SeasonTicketItem>
        <SeasonTicketItem></SeasonTicketItem>
        <!-- ... contains the id of the item needed to create the order, and the price info, for fixed price season tickets -->

        <SeasonTicketLine>
          <!-- ... contains the data about the "content" of the season ticket -->
          <Product>
            <!-- The inner product -->
            <Event />
            <!-- If the product is a competition, it may contain an event and/or performance -->
          </Product>
        </SeasonTicketLine>
      </SeasonTicket>
    </Product>
  </Season>
</CatalogData>

How to create an order for it

The example below is based on the following catalog extraction, done on PLAY test institution.

Catalog extraction

https://play.demo-ws.secutix.com:443/tnseb/external-remoting/com.secutix.service.realtime.catalog.v1_26.CatalogService.webservice

Result is stored here (too long for direct display on the page)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://v1_26.CatalogService.service.secutix.com">
  <soapenv:Header>
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
      <wsse:UsernameToken wsu:Id="UsernameToken-1" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
        <wsse:Username>PLAY_B2C</wsse:Username>
        <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">P@ssw0rd</wsse:Password>
      </wsse:UsernameToken>
    </wsse:Security>
  </soapenv:Header>
  <soapenv:Body>
    <v1:getCatalogDetailed>
      <seasonCode>Y</seasonCode>
    </v1:getCatalogDetailed>
  </soapenv:Body>
</soapenv:Envelope>

Order creation

URL: https://play.demo-ws.secutix.com:443/tnseb/external-remoting/com.secutix.service.realtime.externalorder.v1_26.ExternalOrderFacade.webservice

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://v1_26.ExternalOrderFacade.service.secutix.com">
  <soapenv:Header>
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
      <wsse:UsernameToken wsu:Id="UsernameToken-1" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
        <wsse:Username>PLAY_B2C</wsse:Username>
        <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">P@ssw0rd</wsse:Password>
      </wsse:UsernameToken>
    </wsse:Security>
  </soapenv:Header>
  <soapenv:Body>
    <v1:createOrUpdateOrder>
      <!-- A quasi static value. Can be retrieved through a call to CatalogService.getPosConfig() -->
      <pointOfSalesId>101053522324</pointOfSalesId>
      <orderType>SALE</orderType>
      <composedProductOperations>
        <!--Indicates the tariff. Will be used in all the internal operations below -->
        <audienceSubCategoryId>101053580101</audienceSubCategoryId>
        <quantity>1</quantity>
        <!--found in SeasonTicketItems. There is one item per category-->
        <itemId>101053670907</itemId>
        <!--after this, we define the attributions in each performance-->
        <singleEntryAttributionComposedOperations>
          <operationAttributions>
            <audienceSubCategoryId>101053580101</audienceSubCategoryId>
            <quantity>1</quantity>
            <performanceId>101053582021</performanceId>
            <!--This is the id of the seasonTicket line-->
            <productCompositionLineId>101053690187</productCompositionLineId>
            <!--You must take the seatCategoryId for which the institutionSeatCategoryId
                     is matching the one of the seasonTicketItem-->
            <seatCategoryId>101053581514</seatCategoryId>
          </operationAttributions>
        </singleEntryAttributionComposedOperations>
        <singleEntryAttributionComposedOperations>
          <operationAttributions>
            <audienceSubCategoryId>101053580101</audienceSubCategoryId>
            <quantity>1</quantity>
            <performanceId>101053582022</performanceId>
            <productCompositionLineId>101053690187</productCompositionLineId>
            <seatCategoryId>101053581514</seatCategoryId>
          </operationAttributions>
        </singleEntryAttributionComposedOperations>

        <singleEntryAttributionComposedOperations>
          <operationAttributions>
            <audienceSubCategoryId>101053580101</audienceSubCategoryId>
            <quantity>1</quantity>
            <performanceId>101053582023</performanceId>
            <productCompositionLineId>101053690187</productCompositionLineId>
            <seatCategoryId>101053581514</seatCategoryId>
          </operationAttributions>
        </singleEntryAttributionComposedOperations>

        <singleEntryAttributionComposedOperations>
          <operationAttributions>
            <audienceSubCategoryId>101053580101</audienceSubCategoryId>
            <quantity>1</quantity>
            <performanceId>101053582024</performanceId>
            <productCompositionLineId>101053690187</productCompositionLineId>
            <seatCategoryId>101053581514</seatCategoryId>
          </operationAttributions>
        </singleEntryAttributionComposedOperations>

        <singleEntryAttributionComposedOperations>
          <operationAttributions>
            <audienceSubCategoryId>101053580101</audienceSubCategoryId>
            <quantity>1</quantity>
            <performanceId>101053582025</performanceId>
            <productCompositionLineId>101053690187</productCompositionLineId>
            <seatCategoryId>101053581514</seatCategoryId>
          </operationAttributions>
        </singleEntryAttributionComposedOperations>

        <singleEntryAttributionComposedOperations>
          <operationAttributions>
            <audienceSubCategoryId>101053580101</audienceSubCategoryId>
            <quantity>1</quantity>
            <performanceId>101053582026</performanceId>
            <productCompositionLineId>101053690187</productCompositionLineId>
            <seatCategoryId>101053581514</seatCategoryId>
          </operationAttributions>
        </singleEntryAttributionComposedOperations>

        <singleEntryAttributionComposedOperations>
          <operationAttributions>
            <audienceSubCategoryId>101053580101</audienceSubCategoryId>
            <quantity>1</quantity>
            <performanceId>101053582027</performanceId>
            <productCompositionLineId>101053690187</productCompositionLineId>
            <seatCategoryId>101053581514</seatCategoryId>
          </operationAttributions>
        </singleEntryAttributionComposedOperations>

      </composedProductOperations>
    </v1:createOrUpdateOrder>
  </soapenv:Body>
</soapenv:Envelope>