In dit artikel
- Alle velden
- Kosten invoeren in de XML
- CDATA gebruiken
- In de XML startdata en rooster aanleveren
- In de XML trainers toevoegen aan trainingen
- In de XML PE punten toevoegen
Veldmapping
Hieronder vind je een overzicht van alle velden in de product.xsd met een nadere toelichting en voorbeelden. Deze velden zijn hier benoemd om het eenvoudiger leesbaar te maken. In Automatisch updaten van je aanbod met XML vind je de product.xsd. Hierin staat de technische opzet van de XML structuur beschreven, inclusief alle mogelijke data types/waarden.
Kijk ook naar ons xml voorbeeld om een beeld te krijgen hoe al deze data moet worden vormgegeven.
Veldnaam/elementen | Omschrijving | Eisen |
* Products / Product | <Products> is root element van de XML. De onderstaande elementen vormen de structuur voor een product. Elk nieuw product start met het element <Product> | |
ID | Gebruik het ID element om een unieke waarde toe te kennen aan het product. Deze wordt door Springest gebruikt om bestaande producten te updaten. De Importer werkt CRUD. Dit betekent dat als een ID nog niet bestaat in de Springest Database, een nieuw product aangemaakt. Als een ID niet aanwezig is in de XML, maar wel in de database dan verandert de status van het product naar 'verwijderd'. Als een product ID gevonden wordt, dan wordt alle informatie uit de xml geupdate zodat de training volledig is bijgewerkt. Informeer datasupport altijd wanneer je de ID's in de xml aanpast. |
|
Name | Gebruik het Name element om de naam van het product op te geven. Deze naam moet uniek zijn. Ook als je meerdere dezelfde producten aanbiedt in andere talen. Ons advies is om de taal dan te noemen in de 'Name'. |
|
Description | Gebruik het Description element om een beschrijving op te geven. Maak gebruik van CDATA om HTML opmaak mee te geven. Leestekens die geaccepteerd worden binnen CDATA: ' " < > &. De volgende HTML tags zijn toegestaan: p, b, strong, h2, em, i, ul, ol, li, br. Overige HTML tags worden niet overgenomen. Hier lees je meer over het gebruik van CDATA in XML. |
|
*Images | Images is een root element voor afbeeldingen opgebouwd uit een of meerdere ImageUrl elementen |
|
Images/ImageUrl | Gebruik ImageUrl element om een url mee te geven van een afbeelding. |
|
VideoEmbed | Gebruik VideoEmbed element om video te plaatsen op het product door middel van een URL |
|
Language | Gebruik Language element om de taal op te geven die van toepassing is op het product. |
|
Price | Gebruik Price element om de prijs (exclusief btw) op te geven van het product.
|
|
VatIncluded | Gebruik het VatIncluded veld om aan te geven of de prijs van het product Vrijgesteld is van BTW of niet. Mogelijk waarden:
|
|
VatAmount | Gebruik het VatAmount element om het bedrag aan BTW op te geven van de opgegeven prijs onder het Price element. Indien je BTW vrijgesteld mag leveren, is de waarde van dit veld niet relevant. |
|
PriceExemptAmount | Gebruik het PriceExemptAmount element om een alternatieve prijs op te geven vrijgesteld van BTW. Hiermee is het mogelijk om prijs zowel vrijgesteld als prijs belast met BTW op te geven per product. De prijs vrijgesteld van BTW wordt getoond aan gebruikers (werknemers van organisaties) die product vrijgesteld van BTW kunnen afnemen. (alleen relevant als je een training zowel BTW vrij als BTW belast afgenomen mag worden) |
|
PricePeriod | Gebruik het PricePeriod veld om aan te geven over welke periode de prijs getoond wordt. Mogelijke waarden:
|
|
PriceAgreement | Enkel van toepassing op Incompany/maatwerk producten. Voor de overige producten negeren wij deze waarde. Gebruik het PriceAgreement element om aan te geven of er in overleg afspraken gemaakt kunnen worden over prijs. Waarde:
|
|
* AdditionalCosts | Gebruik <AdditionalCosts> als root element om extra kosten te specificeren. Door gebruik te maken van AdditonalCosts krijg je de mogelijkheid om per kostensoort een ander BTW percentage te vragen. Tevens kun je aangeven of producten optioneel of verplicht zijn. Optionele kosten geven wij weer gedurende het bestelproces, en een eindgebruiker kan deze wel of niet betalen. |
|
AdditionalCost | Gebruik AdditionalCost element om een of meerdere kosten op te geven. |
|
AdditionalCost/Type | Gebruik type element om het type kosten op te geven. |
|
AdditionalCost/Price | Gebruik Price element om de prijs van de koste op te geven. |
|
AdditionalCost/VatIncluded | Gebruik het VatIncluded veld om aan te geven of de prijs van de koste Vrijgesteld is van BTW of niet. Mogelijk waarden:
|
|
AdditionalCost/VatAmount | Gebruik het VatAmount element om het bedrag aan BTW op te geven van de opgegeven prijs onder het Price element. |
|
AdditionalCost/PriceExemptAmount | Gebruik het PriceExemptAmount element om een alternatieve bedrag voor de koste op te geven vrijgesteld van BTW. |
|
AdditionalCost/VATExemptAmount | Gebruik het VATExemptAmount element om het BTW bedrag op te geven voor het opgegeven bedrag vrijgesteld van BTW. Sommige product met laag BTW moeten wel opgeteld worden in de totale prijs die is vrijgesteld van BTW. (alleen relevant als je een training zowel BTW vrij als BTW belast afgenomen mag worden) |
|
AdditionalCost/Mandatory | Gebruik het Mandatory element om aan te geven of de koste verplicht is of optioneel. Optionele kosten kunnen door een gebruiker tijdens het boekingsproces wel of niet meegenomen worden in de aanschaf. |
|
PriceComplete | Gebruik het PriceComplete element om aan te geven of alle verplichte kosten zijn opgegeven. Wij verwachten altijd dat de prijzen volledig zijn. Niet volledige producten kunnen worden verwijderd. |
|
PriceInfo | Gebruik het PriceInfo element om extra informatie mee te geven omtrent de prijs. |
|
CourseType | Gebruik het CourseType element om aan te geven wat het de vorm is van het product. In de meeste gevallen vul je hier 'course' in. |
|
Duration | Gebruik het Duration element om de totale lesduur van het product op te geven. |
|
DurationUnit | Gebruik het DurationUnit element om de eenheid van de duur op te geven. |
|
DurationAgreement | Enkel van toepassing op Incompany/maatwerk producten. Gebruik het DurationAgreement element om aan te geven of er in overleg afspraken gemaakt kunnen worden over de duur. |
|
Runtime | Gebruik het Runtime element om extra informatie mee te geven over de doorlooptijd van de training. Voorbeeld: "De opleiding bestaat uit 4 cursusavonden verspreidt over 2 maanden" |
|
Completion | Gebruik het Completion element om extra informatie mee te geven over de afronding van het product. Voorbeeld: "Diploma", "Certificaat" |
|
MaxParticipants | Gebruik het MaxParticipants element om het max aantal deelnemers op te geven voor het product. Een training kan nooit plaatsvinden met meer mensen dan deze opgegeven waarde. |
|
MaxNumberOfSeats | Gebruik het MaxNumberOfSeats element om het (max) aantal plaatsen aan te geven dat nog beschikbaar zijn voor de gekoppelde startdatum. Voorbeeld: je hebt hier 3 opgegeven als waarde. Wij zullen dan na de derde inschrijving via Springest deze startdatum niet meer boekbaar maken. |
|
MinNumberOfSeats | MinNumberOfSeats is alleen relevant wanneer je gebruik maakt van Automatisch annuleren. Wij annuleren een startdate wanneer aan de voorwaarden van MinNumberOfSeats niet is voldaan. |
|
AvailableSeats | Met AvailableSeats kun je aangeven hoeveel plaatsen er nog beschikbaar zijn. Wanneer deze op 0 staat sluiten wij de startdatum. Deze is dan wel nog zichtbaar maar niet meer boekbaar. |
|
WebAddress | Gebruik het WebAddress element om de webpagina op te geven van het product aan de hand van een URL. |
|
PdfBrochure | Gebruik het PdfBrochure element om een Brochure te koppelen aan het product. |
|
ProductType | Gebruik het ProductType element om op te geven wat het type product is.
|
|
* Regions | Gebruik <Regions> als root element om Regio's te specificeren. Voor meer context: Invoeren van regio's, startdata en plaatsen | |
Region Region/name | Gebruik Region element om een of meerdere regio's op te geven. Region is alleen van belang als je voor producten geen startdata meegeeft. Indien er startdata aanwezig zijn deducteren wij uit het veld 'Place van de betreffende startingdateplace' (lees startdatum) wat de correcte regio is waar dat startmoment gaat plaatsvinden. |
|
Level | Gebruik het Level element om het niveau mee te geven. |
|
* PriceDiscounts/ Discount | Enkel voor producten die aan Go sites gekoppeld worden. Neem contact op met datasupport@springest.com als je verschillende kortingen hanteert. | |
Go | Gebruik Go elementen om voor GO/zakelijke platform aan te geven waar je de korting wenst te hebben. |
Mogelijke waarden:
|
*StartingDatePlaces | Gebruik <StartingDatePlaces> als root element om een of meerdere StartingDatePlace elementen te specificeren. Gebruik Schedule om per StartingDatePlace element een rooster mee te geven. Voor meer context:
| |
StartingDatePlace/ID | Gebruik ID element om een uniek ID mee te geven per StartingDatePlace element. |
|
StartingDatePlace/Startdate | Gebruik Startdate element om de startdatum van product op te geven. |
|
StartingDatePlace/Enddate | Gebruik Enddate element om de einddatum van product op te geven. |
|
StartingDatePlace/Place | Gebruik Place element om de locatie/plaats op te geven |
|
StartingDatePlace/StartdateIsMonthOnly | Gebruik StartdateIsMonthOnly element om aan te geven dat de startdatum een maand betreft. Voor een volledige datum in bij de datumvelden. |
|
StartingDatePlace/EnddateIsMonthOnly | Gebruik EnddateIsMonthOnly element om aan te geven dat de startdatum een maand betreft. Voor een volledige datum in bij de datumvelden. |
|
StartingDatePlace/StartGuaranteed | Gebruik StartGuaranteed element om aan te geven dat de startdatum gegarandeerd plaats vindt. Wanneer deze op true staat tonen wij dit op onze website. |
|
* Schedule / Courseday | Gebruik Schedule om per StartingDatePlace element een rooster mee te geven met een of meerdere Courseday elementen. | |
Courseday/ID | Gebruik ID element om een uniek ID mee te geven per CourseDay element. |
|
Courseday/Date | Gebruik Date element om aan te geven op welke dag het product plaatsvind. |
|
Courseday/Place | Gebruik Place element om de locatie/plaats op te geven |
|
Courseday/Name | Gebruik Name element om een naam aan de dag te geven. Voorbeeld: 'Lesdag 1: Introductie' |
|
Courseday/Starttime | Gebruik Starttime element om de starttijd op te geven van dag. |
|
Courseday/Endtime Additionele opties: | Gebruik Endtime element om de Eindtijd op te geven van dag. |
|
* PePoints | Neem contact op met datasupport@springest.com als je PE punten wilt toekennen aan jouw producten | |
*Moments | Alleen relevant als je geen Courseday/schedule data meestuurt | |
CrohoID | Gebruik het CrohoID element om ID op te geven volgens het keurmerk. Lees ook: https://www.springest.nl/keurmerken/croho |
|
CreboID | Gebruik het CrohoID element om ID op te geven volgens het keurmerk. Lees ook: https://www.springest.nl/keurmerken/crebo |
|
Purpose | Alleen voor vitality producten. Het doel van het product. |
|
* CostPlacements | Alleen voor vitality producten. Hoe de kosten geplaatst worden. Dit kan afhankelijk van het contract met de klant verschillen per site. |
|
*AllowedSites | Gebruik AllowedSites als root element om de sites op te geven waar het product gepubliceerd moet worden. Enkel gebruiken voor 'group' producten. |
Kosten invoeren in XML
Cursusprijs
<Price>
Dit veld kun je het totale verplichte kosten opgeven voor de opleiding.
Het is ook mogelijk om de totale verplichte kosten te specificeren per kostenpost. Vul dan enkel het lesgeld in en vul de extra kosten in onder <AdditionalCosts>. Hieronder meer over het gebruik van verschillende kostenposten.
<VatAmount>
Hier kunt je aangeven wat het BTW bedrag is voor de cursus.
NB. Als je gratis opleidingen wil aanbieden op Springest, geef dan de waarde 0 mee voor 'price' veld in de XML. Voor in-company trainingen kun je het veld leeg laten. Om er voor te zorgen dat 'op aanvraag' wordt getoond geef dan de waarde 'true' mee voor 'price-agreement' veld in de XML.
Cost types, taxes and calculations in the XML:
It is possible to state the costs per cost type. This can be useful for example when you have different vat percentages per cost type.
If this is the case you can fill in the cost for the 'tuition fee' in <price> and for stating different cost types and matching VAT percentages you can use the node <AdditionalCosts> stating each cost type and all values per <AdditionalCost>.
Our example:
Let assume you have these values in the xml:
<Price>100</Price>
<AdditionalCost>
<Type> lunch </Type><Price> 40</Price> <VatIncluded> no</VatIncluded><VatAmount> 3</VatAmount><Mandatory> no</Mandatory>
</AdditionalCost>
<AdditionalCost>
<Type>registration fee </Type> *
<Price> 20</Price>
<VatIncluded> no</VatIncluded>
<VatAmount> 5</VatAmount>
<Mandatory>no</Mandatory>
</AdditionalCost>
* see our xsd for possible values. Note that tuition fee is not included because we expect it to be(included) in the <price> tag, it is 100 in our example.
Calculating course price
Below a tabel with different price options:
Price | VatIncluded | VatAmount | Price on Springest | ||
Option1 | 100 | no | 21 | 121 | |
Option2 | 100 | exempt | - | 100 |
Adding different cost types from Additional Costs:
The calculation follows the same method as for <price>.
Type | Price | VatIncluded | VatAmount | Mandatory | Additional costs |
Registration fee | 20 | no | 5 | yes | + 25 |
Lunch | 40 | exempt | - | yes | + 40 |
TOTAL | + 75 |
------------------------------------------------------------------------------------------------------------------
Calculation of the TOTAL price:
We will sum all mandatory costs and add to the total of the course price.
Price | VatIncluded | VatAmount | Additional costs | Total price on Springest | ||
Option2 | 100 | no | 21 | 75 | 196 | |
Option3 | 100 | exempt | - | 75 | 175 |
Additional information:
- Courses free of charge should have <price>0</price>
- For <producttype> in-company</producttype> there should not be a price. To make sure we don't show a price you can use the <PriceAgreement> true</PriceAgreement in the XML. We won't show any prices in that case.
- The <VATamount> for for In-company trainings is not relevant. Please leave empty.
- Optional costs are not shown until the actual booking is happening. On this booking screen we will give users the option to book any optional costs.
- Have any questions or feedback for us? Please reach out to support@springest.nl and we will get back to you as soon as possible.
Aanleveren van startdata en rooster
Het komt vaak voor dat eenzelfde training meerdere startdata heeft. Aangezien de XML enkel unieke titels (unieke id's) mag bevatten, is het de bedoeling dat de verschillende data aan dezelfde training gekoppeld worden.
Hieronder zie je de structuur waar aangehouden moet worden, welke ook in het xml voorbeeld te zien is
<Products> <Product> <ID>product-0001</ID> <StartingDatePlaces> <StartingDatePlace> <ID></ID> <Startdate>2014-08-24</Startdate> <Place>Amsterdam</Place> <StartdateIsMonthOnly>false</StartdateIsMonthOnly> <Enddate>2014-09-24</Enddate> <EnddateIsMonthOnly>false</EnddateIsMonthOnly> <StartGuaranteed>true</StartGuaranteed> <Schedule> <CourseDay> <ID>ROO16_0657</ID> <Date>2017-02-08</Date> <Name lang="nl"><![CDATA[ Dag 2 ASOI ]]></Name> <StartTime>09:00:00</StartTime> <EndTime>17:00:00</EndTime> <Place>UTRECHT</Place> </CourseDay> </Schedule> </StartingDatePlace> <StartingDatePlace> <ID></ID> <Startdate>2014-09-24</Startdate> <Place>Rotterdam</Place> <StartdateIsMonthOnly>false</StartdateIsMonthOnly> <Enddate>2014-10-24</Enddate> <EnddateIsMonthOnly>false</EnddateIsMonthOnly> <StartGuaranteed>false</StartGuaranteed> <Schedule> <CourseDay> <ID>ROO16_0657</ID> <Date>2017-02-08</Date> <Name lang="nl"><![CDATA[ Dag 2 ASOI ]]></Name> <StartTime>09:00:00</StartTime> <EndTime>17:00:00</EndTime> <Place>UTRECHT</Place> </CourseDay> </Schedule> </StartingDatePlace> </StartingDatePlaces> </Product> </Products>
Trainers toevoegen aan trainingen
Je kunt gebruik maken van jouw XML-feed voor Springest, om ook automatisch (nieuwe) trainers te koppelen aan jouw aanbod op Springest. Je hoeft enkel de email van de trainer toe te voegen aan de XML. Zie hieronder het gedeelte wat aan de XML-feed moet toegevoegd worden:
<Trainers> <Trainer> <Email>trainer_name_a@springest.com</Email> </Trainer> <Trainer> <Email>trainer_name_b@springest.com</Email> </Trainer> </Trainers>
Mocht de email nog niet bekend zijn in ons systeem, dan wordt automatisch een uitnodiging gestuurd naar de betreffende persoon om een trainer profiel aan te maken. Het profiel zal vervolgens automatisch gekoppeld zijn met de trainingen die je hebt aangegeven in de XML.
Importeren van trainer gegevens
Naast het koppelen van trainers aan trainingen is het ook mogelijk om trainers los toe te voegen aan. Via een aparte trainer XML/FEED is het mogelijk om alvast de gegevens van trainers aan te leveren. Wij zullen automatisch de trainers toe voegen aan ons systeem. Op basis van het aangeleverde email adres wordt een uitnodiging gestuurd aan de trainers om hun account te bevestigen. Het profiel van de trainers is op dat moment al aangevuld met de gedeelde informatie.
Bekijk het XML en XSD voorbeeld om te zien welke informatie is in te laden.
Aanleveren van trainer gegevens
- Download: import_trainer_example.xml
- Voeg trainers toe aan de hand van de bestaande velden (zo compleet mogelijk)
- Check welke waarden zijn toegestaan per veld aan de hand van XML Schema: import_trainers_example.xsd
- Verander de naam van de XML in Provider-name_AllTrainers.xml. Voorbeeld: Springest_AllTrainers.xml
- Valideren: We verwachten dat je de XML die je aanmaakt eerst valideert eer je het deelt met datasupport. Op de volgende website kun je gemakkelijk jouw XML valideren tegen de XSD: http://www.freeformatter.com/xml-validator-xsd.html
- Mail het bestand of de url van de feed naar datasupport@springest.com
- NOTE: Maak melding van de character encoding die gebruikt is voor de XML. Voorbeeld: UTF-8
PE punten toevoegen
Het is mogelijk om informatie over PE Punten per training aan te leveren via een Springest XML-feed.
In het XML voorbeeld kan je zien hoe je verschillende PE organisaties, type punten, punten aan de XML kan toevoegen.
Hieronder is de structuur nog eens uitgelicht:
f <PePoints> <PePoint> <Organisation></Organisation> <PointType></PointType> <Points></Points> </PePoint> <PePoint> <PeOrganisation></PeOrganisation> <PointType></PointType> <Points></Points> </PePoint> </PePoints>
Uit welke organisaties kan ik kiezen?
Op dit moment hebben we een aantal organisaties gekoppeld in ons systeem. Neem gerust contact met ons op als er een organisatie ontbreekt.
De volledige lijst van organisatie namen en type punten die we op dit moment hebben kun je terug vinden onder het kopje PE Punten op de training pagina:
Bij deze ook een CSV met een lijst aan organisaties (niet volledig).
Vragen of feedback?
Neem dan contact op met onze technische helpdesk:
Mail: datasupport@springest.nl
Was dit artikel nuttig?
Dat is fantastisch!
Hartelijk dank voor uw beoordeling
Sorry dat we u niet konden helpen
Hartelijk dank voor uw beoordeling
Feedback verzonden
We stellen uw moeite op prijs en zullen proberen het artikel te verbeteren