Integrate Web Widgets with WIX

There are 3 ways you can add the widget: As an embeded URL directly under a Wix page. Take your Synthesis widget URL and add it directly inside your Wix page: As a “Book Now” button across all the pages. It will open the widget in a popup in the site As a “Book Now” page containing the widget inside Book now button (only related to options 2 and 3): Login into Wix Go to “Settings” from the side panel On the Settings page, select the “Custom Code” option Under the “Body End” section, click on the “Add Code” button Paste the code snippet under “Paste the code snippet here“. You can take the code from “my.synthesisvr.com >> Administration (sidebar option) >> Online & Email Settings >> Web Widgets & API >> the Embeded Examples button”. Under the same Web Widgets & API page, edit your widget and add the following code under “Add HTML before the BODY tag closure“:<script>$(‘#experienceTypeDescription’).addClass(‘d-none’);$(‘<div><button onclick=” window.parent.postMessage(‘close_svr’,’https://YOUR_WEB_SITE’);”>Close Booking Widget</button></div>’).insertAfter(‘div.card’);</script><style>@media all and (orientation:landscape) { .svrclose { display: none; }.svrclose { margin: 10px;}</style> Replace YOUR_WEB_SITE with your actual domain name. Book now page: Follow the same steps to create the Wix Custom tool, but use the following code: <script> svr_widget_id =’11111111-1111-1111-1111-111111111111′; var svrbooking = document.createElement(‘iframe’); svrbooking.src =’//api.synthesisvr.com/widgets/’+window.svr_widget_id; svrbooking.style.width = ‘100%’; svrbooking.style.height =’100%’; document.getElementById(‘SITE_PAGES’).innerHTML =”; document.getElementById(‘SITE_PAGES’).appendChild(svrbooking); </script> Replace 11111111-1111-1111-1111-111111111111 with the widget public key. Also, through the Wix settings, make sure that code would load only for your “Book Now” page.

Synthesis VR API – Booking Widget

API As explained, the booking widget just utilizes the API and gives a ready to use example. However, in many cases, that may not be enough and as you may want to better match your website design, integrate your own payment processor, use a different language and so on. What usually would be enough is to open the widget page, copy all the source code in your own site and start editing the HTML / Javascript. However, this still may not be sufficient for some of you, so here comes the direct API integration. If you are not a developer and you don’t have such on hand, please stick to the widget. The next would just confuse you unnecessary. API CALL – AVAILABILITY URL = https://api.synthesisvr.com/ Method = GET Resource = /web/<public_key>/availability Accepted parameters: Parameter Format Description people Integer the number of VR stations you wants to book experience Integer the id of the experience type. If not provided, SynthesisVR would use the first experience type that is assigned on the widget date String ; YYYY- MM-DD A date that isn’t in the past duration Integer a duration that exists under your work hour rules customer_token String (optional) A token obtained via the /web/<public_key>/customers/auth API call JSON Response: Name Type Description balance String Shows the balance for the given customer_token or $0.00 if no balance is available coupons Array Shows the available vouchers against the given customer_token. Some vouchers may not appear if they are not allowed for the desired “people” ; “experience” ; “date” and “duration” parameters dows Integer Array From 0 to 6. Points to the days of the week when reservations can be booked. 0 = Monday ; 6 = Sunday special_days Array If a day of the week is disabled via the dows parameter, but there are exceptions. stations Key – Object pairs The key refers to experience type id. Check the “Experience Type Object” for the object values. times Key – Object pairs Represents the daily availability. Check the “Availability Object” for detailed description. Experience Type Object:   Name Type Description book_all Boolean This reservations requests to book all stations. descr Text Description of the experience type durations Integer Array Available durations in minutes pcs String Array The SynthesisVR IDs of the VR stations pos Integer If there are multiple experience types – the position of the current one stations Integer The total number of PCs under this experience type title String Title of the experience type   Availability Object:   Name Type Description cost Float The final cost to be charged per station endTimePre Timestamp – ISO 8601 A timestamp object pointing to when the session would end moreOptions Key – Object pairs Additional paid options for the current object precost Float The cost per station before discounts startTime String The startTimePre parameter in a human readable format startTimePre Timestamp – ISO 8601 A timestamp object pointing to when the session would start stations Integer The number of available (free) stations. value Time String – format HH:MM The “time” value to be used with the /web/<public_key>/book API call   API CALL – VALIDATE EMAIL URL = https://api.synthesisvr.com/ Method = POST Resource = /web/<public_key>/customers/validateEmail Accepted parameters: Parameter Format Description email String (optional) Email string to validate JSON Response: Name Type Description status Boolean True = there is a customer with such email address. You could proceed to authentication. False = no such customer exists. You could proceed with a signup process API CALL – CUSTOMER AUTHENTICATION     URL = https://api.synthesisvr.com/ Method = POST Resource = /web/<public_key>/customers/auth Accepted parameters: Parameter Format Description email String Email string to authenticate password String (optional) Password related to the given email service String (optional) The name of an authentication service. Example: “facebook” serviceString String (optional) The value to be authenticated for the given service string. JSON Response: Name Type Description cc String Last 4 digits of the CC associated with the account (e.g. XXXX1234) msg String Text description of the API call result name String Customer name pm String “0” = No payment method and no CC data collection is needed status Integer 1 = Authenticated ; 0 = Invalid credentials token String A string to be used with the AVAILABILITY and BOOK API calls API CALL – CUSTOMER CREATION URL = https://api.synthesisvr.com/ Method = POST Resource = /web/<public_key>/customers/create Accepted parameters: Parameter Format Description email String Email string to authenticate password String (optional) Password related to the given email service String (optional) The name of an authentication service. Example: “facebook” serviceString String (optional) The value to be authenticated for the given service string. name String Full customer’s name additional JSON key-value pairs Additional information to keep per customer. Example: {“birthday”:”1st April, 1985″,”phone”:”12135559999″} The API response is the same JSON as for: /web/<public_key>/customers/auth   API CALL – CUSTOMER UPDATE CC     URL = https://api.synthesisvr.com/ Method = POST Resource = /web/<public_key>/customers/updateCC Accepted parameters: Parameter Format Description customer_token String The token obtained from an “auth” or “create” API call json JSON key-value pairs The complete CC data. See below for field description. Note: the key-value pairs may vary between the payment processors JSON Response: Name Type Description status Integer 1 = Success ; 0 = Failure, use “msg” to lookup the error msg String Text description of the error. PayPal Here – JSON object:   Name Type Description credit_card Integer 1 = Success ; 0 = Failure, use “msg” to lookup the error security_digits String Text description of the error. exp_date1 Integer CC expiration Month exp_date2 Integer CC expiration Year first_name String First Name last_name String Last Name cardholder_address String Address of the CC owner cardholder_city String City cardholder_country String Country cardholder_state String State cardholder_zip String ZIP code cardholder_phone String Phone number   API CALL – CUSTOMER ASSIGN VOUCHER URL = https://api.synthesisvr.com/ Method = POST Resource = /web/<public_key>/customers/assignVoucher Accepted parameters: Parameter Format Description customer_token String The token obtained from an “auth” or “create” API call code String The voucher / coupon code JSON Response: Name Type Description status Integer 1 = Success ; 0 = Failure, use “msg” to lookup

SteamVR Audio Issues

We have got multiple reports about disappearing audio upon a game launch or at other occasions. If you are experiencing weird loss of audio, it may worth giving a try to the following guide.   Set the SteamVR Audio settings to Default   Setup your audio output through Windows       Note: “Microphone (USB Audio Device) is the same “HTC Vive Microphone” device

Survey Configuration

Survey? How would that help?We are happy to deliver a functionality that have been extensively tested with real players and has given great results. Running a survey is not only a great way to get some insights about your business, but is also a powerful marketing tool. If it doesn’t sound like a major functionality, here are some of the conclusions we’ve come to  (after 2000 sent survey requests): As a VR arcade, you primarily provide entertainment services and if there is anything your customer doesn’t like, you must know  However, people are usually shy to directly point out your issues and they are much more likely to do that online. Give your customers an option to rate your staff. This helps you build friendly relationships and increases their satisfaction and trust in your brand. Let your customers rate the games they play. This is visible for every reservation and also under the game usage reports. Rating the games would help you better build your game licensing Ask the right questions and convert your first time visitors into returning customers. Promote your promotions – let them know you have membership cards and special discounts during the weekdays. Yes, it works. However, there are some tricks you should use: Give a reward of 10% – 15% for every completed survey. This makes them feel you truly appreciate the gathered feedback, as you sacrifices some profit for this. The one catch is that the discount expires after 1 month, so if they don’t come back soon, they would lose it. In that case, it would be because they didn’t catch up and they wouldn’t get angry at you :-D. Set your survey to go out to a single customer only once within 30 days. This way, your customers would know this is a unique offer and would be harder to resists. The survey is a non-annoying way to ask your visitors to follow you on the social media. Edit your web and email templates and include the right links. Should you run a survey? In our live environment, we reached 13% response rate in a very competitive area. So… yes 😀  How to setup a survey on SynthesisVR  The survey process involves the following steps: Requires: A SynthesisVR Pro Subscription Correct SMTP settings (Administration >> Stores >> SMTP Configuration) Configure a survey A person or a group needs to have a session in your arcade (you don’t want to run a survey for people who didn’t actually visit you, so the session must be assigned to an account and must be set as paid and was used as well). SynthesisVR sends an email, providing a link to the survey. The process of customizing that email is covered. The customer clicks on the link and reaches a survey widget that is hosted on SynthesisVR. The process of customizing the widget is covered below. You could also host it on your own server and perform whatever changes you want on the page. In that case, you would have to use the survey API functionalities to provide the input to SynthesisVR.  Configure a surveyStart from the Administration section and click on the Feedback Setup under the Extras tab. Once in the section, you can click on the 3 dot menu in the top right and choose the “Add Survey Configuration” button. If this is your first survey, just click the “Load Example Configuration” button and everything would get magically setup for you. The example setup is a copy of the questions we used in the survey mentioned above.   Explanation of the options: Title – Used only for internal reference.Select VR Arcade(s) – If you have multiple arcades, select the arcade(s) where the rule applies.Enable for Experience Type – if you have multiple experience types, select the ones relevant to the survey.Repeat Interval – how often a single account should receive a survey request. If you set this to 0, they would receive a survey after every session. If they run two reservations one after another, this would lead to 2 survey requests. Our advice is to keep it to 1 month.Bonus On Complete – if you don’t want to provide any discount, just set this option to 0. To provide a discount, use one of the two formats: 10%– if the total cost for their next session is $90, they would get it for $81. $15– if the next session is for $90, they would get it for $75 instead  Note: If your currency isn’t dollar, you still have to use the $15 format to indicate the type of discount. In the reports, SynthesisVR would consider 15 according to the correct currency you use. Add New Question – there are few sub parameters: Visualization Type – Stars ; Free Text Input ; RadioButtons Position – use this to set the display order to thecustomers Internal Name – each question must have a unique internal name so SynthesisVR takes care of this automatically. There are few ways to collect answers and that is controlled by the visualization type. Rating based on “stars” Configuration example: Visualization example:     Rating based on radio button: Configuration example: Visualization example:  The customer would answer the question in plain Configuration example: Visualization example:   As mentioned above, SynthesisVR provides an option that lets you collect feedback about the games played. This happens through setting a custom “games” Internal Name.Configuration Example: Please note the #games# tag in the option’s text which would be replaced with the actual game title. At this point your survey is completely setup. As a next step, you would need to adjust the survey email template. To do that, go to “Administration >> PRO >> Online & Email Settings >> Email Templates” And scroll down to “  survey_invite” item and click on Edit. The survey_invite email template contains two parameters you could use: [‘fname’] – The customer’s firstname [‘uuid’] – Refers to the id of the VR session. The combination of the SynthesisVR API URL and the [‘uuid’] parameter gives access to the survey the customer could  You can get your UUID (displayed above as 11111111-1111-1111-1111-111111111111) by going to the Arcade Setup tab in the Administration section: The default survey_invite template contains everything you need. However, please feel free to add additional text and messages.When editing the email template, you could also adjust the “Outgoing Email Subject” field with the correct email subject that your customers would see.Note: If you haven’t already, it is also a good idea to adjust your header and footer email templates. From a pure visualization perspective, you could add your logo in the header template and your contact

Troubleshooting Voice Chat Services

1. “Initializing” Status The SynthesisVR-Voice app does not work when it’s run on the “VR Proxy” PC. Please install the proxy on a separate PC. 2. “Request Timeout” Status This message indicates the SynthesisVR-Voice app cannot reach the VR Proxy. What you are experiencing is a network issue and there could be multiple reasons behind this. Temporary networkoutage Disable the voice app, wait for a few seconds after exit and start it again SynthesisVR is integrated with the Firewall that comes with Windows. However, if you have a third-party firewall or antivirus program, you may need to add an exception. To do that, please consult the manual for that program. Your “VRProxy” PC is running on WiFi and your LANIP just got Restart the “SynthesisVR – Proxy” Windows service. If it is easier for you, you could simply restart the Under the SynthesisVR Web Administration, go to the “Administration” page and click on the PC name In the settings popup, verify that the “Server Mode Local IP Address” setting matches the LAN IP of the Server If it doesn’t match, you have to change it. If you have to perform such a change, then click on the “Refresh” button under your VR Stations and restart the Voice app (as described in 2.1) To find out your LAN IP (Local IP), please visit: https://www.whatismyip.com/ 3. Unable to hear or selecting the correct Mic input If your group is unable to hear you talking it could be because you have not selected the right input on the SynthesisVR Voice Chat service: Click the Voice icon on your taskbar and then click the Mic Icon Select the correct Mic input 4. Seeing weird characters and non-sense text inside the voice chat app on the VR stations  The Voice Chat server built into the SynthesisVR Server Mode have a local SQLite database. As long as this database doesn’t keep any important data, it is still used to control the status of the “calls”. If the server is restarted or shut down at the same time when we are saving data in the local database, then that database file may got corrupt. To fix this issue, perform the following actions on your VR Server PC: Stop the “VR ServerMode” Delete the directory: C:\ProgramFiles\SynthesisVR\Operator\db Start the “VR ServerMode” Then, on the VR stations, stop and start the Voice Chat. It should connect properly.

Mirroring Audio To a Monitor

From SteamVR, click on the drop down menu:   Choose settings:   From the SteamVR settings menu, choose Audio from the left side:   Change the “Mirror audio device” to whatever your TV/Monitor is and be sure that “Set Playback device to” is set to your Vive HDMI audio:

Firewall and Network Information

Proxy: TCP 2010 – Video Streaming(optional) 5060 – VoIP(optional) 5066 – VoIP(optional) 8005 – SynthesisVR communication port(mandatory) 8088 – SynthesisVR communication port(mandatory) UDP 5060 – VoIP(optional) 8070 – Synthesis communication port (recommended) 8071 – Synthesis communication port (recommended) All ports above 10000 (VoIP Audio –optional)   Access Point: TCP 5060 – VoIP(optional) 8006 – SynthesisVR communication port(mandatory) 8007 – SynthesisVR Leaderboard 8079 – SynthesisVR communication port(mandatory) 8080 – SynthesisVR communication port(mandatory) UDP 5060 – VoIP(optional) 8070 – SynthesisVR communication port(mandatory) 8071 – SynthesisVR communication port(mandatory) All ports above 10000 (VoIP Audio –optional)

Launching A Walk In Session

From the Your Arcade Section, click on whichever experience type you want to start:Once selected, the remaining stations that are available will be made available. If you want to select more than the single station (to do a multi-station session), click on the experience type in the other stations for all stations that you want to be part of the experience.Once you’ve selected all the stations that will be in the session, click on the appropriate time you want for the session on any of the stations (doesn’t need to be the first station selected): In the pop up, you have several things that you can do before launching the session if you choose to (none of which is required, all are optional):

KATVR Troubleshooting

If the games launched through KAT I/O works well and the movement does not work when launched through SynthesisVR, then go through all the below steps.   1. Make sure you are using an appropriate version of both KAT I/O and SynthesisVR: KAT I/O – 2.5.6 or newer SynthesisVR – 3.9.8 or newer 2. Prior SynthesisVR version 4+, switch the interface to “V4 – Beta”, start a session and check if you see the KAT I/O calibration icon in the top menu. It should be on the left side of the clock. If you see the icon, this means Synthesis properly detect KAT I/O and you can continue with the troubleshooting steps below. If the icon is not there, please mail us at info@synthesisvr.com 3. Update your inSteam KATVR drivers. You’ll find it in your KAT I/O install directory. Normally this is: C:\Program Files\KATIO_B\kat_inSteam_Setup.exe 4. Make sure the following file: %localappdata%\katio_b\config.ini contains this line: protocol=true If you just added it, you have to restart KAT I/O 5. While playing inSteam games, run the KAT I/O debugger: C:\Program Files\KATIO_B\Runtime_Debugging.exe It should look like this: SteamVR Status = True  Walk mini Status = True  Speed >0 while you are walking  InSteam Mode is a 6 digits number  Is Running = True

Square Part 2 – POS-To-Action Setup

Important: prior moving forward with this guide, make sure your Square settings are in place: Square Part 1 – Standard Setup The POS-To-Action setup is useful when: You want to start or extend a session as a result of payment processed on a Square POS terminal You want to automatically add payments to the SynthesisVR “walk-in” popup You want to automatically add payments to the “Sell Goods” popup   How to setup:   1. Under SynthesisVR, go to “Administration >> Advanced Settings >> Online & Email Settings >> Web Widgets & API”. Scroll down to the “API ACCESS” section. Then click the + character for creating a new rule. Create a new one and assign the “Square Webhooks” permission. A detailed example of creating a new API rule can be found here: https://synthesisvr.com/knowledge-base/reading-leaderboard-through-api/ After creating the rule, refresh the page and copy the Public Key.   2. Under Square (https://squareup.com/dashboard/), go to “Apps >> My Apps >> Manage App” (the process is handled with more details in our previous guide) and select the “Webhooks” option from the sidebar.   3. Set the notification URL to: https://api.synthesisvr.com/squareWebhooks/111111111-1111-1111-1111-111111111111 Replace 111111111-1111-1111-1111-111111111111 with your correct Public Key (created above) and click the “Save” button, located on the bottom right side of your screen.   4. Copy the “Signature Key” value. Paste it under the “Webhook Signature Key” field of the Square setting (Administration >> Advanced Settings >> Payment Processors >> Square Settings) under SynthesisVR.   Change the “POS to Action” to the desired behavior and Save the popup.   POS to Actions: Empty = disabled Session Only – if an item payment is related to a Synthesis session (explained below in this guide), the session either start or a running one gets extended Web Only — any non-item payments are added automatically to the Walk-in and Goods popups Session and Web — both previous options are enabled   5. Configure your Square items.   For correct interaction with Synthesis, each Square Item or Item variation must have a specific SKU format.   Each SKU has to start with: svr:s: standing for “SynthesisVR Session”   The next part of the SKU contains 3 numeric values separated by the | character. Parameter 1 = Experience Type ID Parameter 2 = Duration Parameter 3 = PC ID(s) (in case of multiple PCs, separate the ids by comma)   Example: 1|30|9,10   A successful payment for this item will start 30 minutes Immersive session on PCs with id 9 and 10.   Depending on the number of stations and experience types, creating a comprehensive Square SKUs setup could be a time-consuming task. Instead, on the Square settings popup under Synthesis, you’ll find a button that will do that for you: [Push POS-To-Action related SynthesisVR settings to Square]   Click that button, wait for 30 seconds and the magic is done.   For better session management through the Square POS terminal, each of your VR stations will be created as a “Square Category” and you’ll be able to filter the Items on that base. UPDATE November 1st, 2019: The Square integration now supports selling goods and balance as well as the Reward Points module. To sell an item, you have to use a specific SKU: svr:g:<ID>|<QUANTITY> The ID can be found upon clicking on the item under the Goods section. Supplying a quantity is optional, with a default value of 1.  The quantity value will be multiplied by the quantity value provided by Square. Example SKUs: svr:g:8 svr:g:3025   The functionality work only if the Square sell have an attached customer to it. Now you can enjoy using SynthesisVR together with Square POS.