Bus de Santander à
Burgos, au meilleur prix
Horaires et arrêts de bus
Comment se fait le trajet de ##origin## à ##destination## ?
Les bus de ##origin## à ##destination## ont une fréquence de ##times## services quotidiens et la durée du voyage est de ##durationMin##. Vous pouvez réserver vos billets pour ##destination## à partir de seulement ##Precio##€
Les bus de ##origin## à ##destination## ont une fréquence de ##times## services quotidiens et la durée du voyage est comprise entre ##durationMin## pour le service le plus direct et ##durationMax## heures pour celui avec le plus d’arrêts. Vous pouvez réserver vos billets pour ##destination## à partir de seulement ##Precio##€
|
##Duracion## |
|
|
##firstBus## |
|
|
##lastBus## |
|
##Distancia##Km |
|
##times## bus par jour |
425
90593
Meilleurs prix et jours pour voyager de ##origin## à ##destination##
Dans cette section, vous pourrez consulter les meilleurs prix et jours pour voyager de ##origin## à ##destination##. Trouvez facilement l'option la plus économique selon le jour de la semaine.
Dans les prochains mois
Gares
##origin##
##destination##
Avantages de voyager avec Alsa
Confort
Bus équipés de Wi-Fi, de divertissements à bord, de repose-pieds, de toilettes et des meilleurs systèmes de sécurité.
Meilleur prix
Nos voyages sont le moyen le plus économique de se déplacer, avec le meilleur prix garanti.
Efficacité environnementale
Se déplacer en bus est le moyen le plus durable de voyager, ce qui améliore notre empreinte carbone.
Questions fréquentes
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar):
==> busInformation [in template "10157#10197#77738740" at line 14, column 6]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #if busInformation.status?? && busInf... [in template "10157#10197#77738740" at line 14, column 1]
----
1<#assign originId = Origen.route_id_origin.getData() />
2<#assign destinationId = Destino.route_id_destination.getData() />
3<#assign price = route_minimum_price.getData() />
4<#assign distance = route_distance.getData() />
5
6
7<#assign errorService = false>
8<#attempt>
9 <#assign busInformation = (restClient.get("/Alsa-SEO-rest/v1.0/bus-information?languageId=${themeDisplay.getLanguageId()}&originId=${originId}&destinationId=${destinationId}") )>
10<#recover>
11 <#assign errorService = true>
12</#attempt>
13<#if busInformation.status?? && busInformation.status =="INTERNAL_SERVER_ERROR">
14 <#assign errorService = true>
15
16</#if>
17
18 <#assign journalArticleId = .vars['reserved-article-id'].data>
19 <#assign journalArticleResourceLocalServiceUtil = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")>
20 <#assign assetCategoryLocalServiceUtil = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
21 <#assign articleResourcePK = journalArticleResourceLocalServiceUtil.getArticleResourcePrimKey(groupId, journalArticleId)/>
22 <#assign categoryList=assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle",articleResourcePK) >
23 <#assign journalArticle = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
24 <#assign encontrado = false>
25 <#assign articles = [] >
26 <#list categoryList as category>
27 <#if !encontrado>
28 <#assign urlTitle = "seo_faqs_" + category.getName()?lower_case>
29 <#attempt>
30 <#assign article = journalArticle.getArticleByUrlTitle(groupId, urlTitle)!>
31 <#if article??>
32 <#assign articles += [article]>
33 </#if>
34 <#recover>
35 </#attempt>
36
37 </#if>
38 </#list>
39
40 <#attempt>
41<#assign articleGenerico = journalArticle.getArticleByUrlTitle(groupId, "seo_faqs_genericas")!>
42 <#if articleGenerico??>
43 <#assign articles += [articleGenerico]>
44 </#if>
45 <#recover>
46 </#attempt>
47
48 <#assign faqs = []>
49 <#list articles as article>
50 <#assign document = saxReaderUtil.read(article.getContentByLocale(localeUtil.toLanguageId(themeDisplay.locale)))>
51 <#assign rootElement = document.getRootElement() />
52
53
54
55<#list rootElement.elements() as dinamicElement>
56
57 <#-- Inicializamos variables vacías para cada FAQ -->
58 <#assign titulo = "">
59 <#assign valorEvaluar = "">
60 <#assign respuesta = "">
61 <#assign respuestaGenerica = "">
62 <#assign respuestaSupra = "">
63 <#assign respuestaComfort = "">
64 <#assign respuestaSi = "">
65 <#assign respuestaNo = "">
66
67 <#foreach dinamicElementFill in dinamicElement.elements()>
68 <#assign fieldRef = dinamicElementFill.attributeValue("field-reference")>
69 <#if fieldRef == "tituloFaq">
70 <#assign titulo = dinamicElementFill.element("dynamic-content").getText()>
71 </#if>
72 <#if fieldRef == "valorEvaluar">
73 <#assign valorEvaluar = dinamicElementFill.element("dynamic-content").getText()>
74 </#if>
75 <#if fieldRef == "respuestaGenerica">
76 <#assign respuestaGenerica = dinamicElementFill.element("dynamic-content").getText()>
77 </#if>
78 <#if valorEvaluar == "tipoServcio" || valorEvaluar == "tipoServicioUltimo">
79 <#if fieldRef == "respuestaConfort">
80 <#assign respuestaComfort = dinamicElementFill.element("dynamic-content").getText()>
81 </#if>
82 <#if fieldRef == "respuestaSupra">
83 <#assign respuestaSupra = dinamicElementFill.element("dynamic-content").getText()>
84 </#if>
85 </#if>
86 <#if valorEvaluar == "Opción45855620" || valorEvaluar == "nocturno">
87
88 <#if fieldRef == "respuestaSi">
89 <#assign respuestaSi = dinamicElementFill.element("dynamic-content").getText()>
90
91 </#if>
92 <#if fieldRef == "respuestaNo">
93 <#assign respuestaNo = dinamicElementFill.element("dynamic-content").getText()>
94
95 </#if>
96 </#if>
97 </#foreach>
98
99 <#if !errorService>
100 <#if titulo?has_content || valorEvaluar?has_content || respuestaGenerica?has_content>
101 <#-- reemplazamos las variables en titulo -->
102 <#assign titulo = titulo?replace("[destino]", busInformation.destination)?replace("[origen]", busInformation.origin) />
103
104 <#-- reemplazamos las variables en respuestaGenericas -->
105 <#assign estacionesDesFormateadas = "">
106 <#assign estacionesOriFormateadas = "">
107 <#list busInformation.lastStopsOnItinerary as estacion>
108 <#assign estacionesDesFormateadas += "- ${estacion} <br>">
109 </#list>
110 <#list busInformation.firstStopsOnItinerary as estacion>
111 <#assign estacionesOriFormateadas += "- ${estacion} <br>">
112 </#list>
113 <#assign respuestaGenerica = respuestaGenerica?replace("[destino]", busInformation.destination)?replace("[origen]",
114 busInformation.origin)?replace("[numeroServicios]", busInformation.times)?replace("[tiempoViaje]", busInformation.durationMin)
115 ?replace("[estacionesDestino]", estacionesDesFormateadas)?replace("[estacionesOrigen]", estacionesOriFormateadas)
116 ?replace("[price]", price)?replace("[distance]", distance) />
117
118 <#if valorEvaluar == "tipoServcio" >
119
120 <#-- reemplazamos las variables en respuestaSupra -->
121 <#if busInformation.firstBusSupra?has_content>
122 <#assign respuestaSupra = respuestaSupra?replace("[destino]", busInformation.destination)?replace("[origen]",
123 busInformation.origin)?replace("[tipoServicio]", busInformation.firstBusSupra.serviceType)
124 ?replace("[horaPrimerAutoBusSupra]", busInformation.firstBusSupra.firstBusTime)
125 ?replace("[estacionOrigen]", busInformation.firstBusSupra.originStation)
126 ?replace("[estacionDestino]", busInformation.firstBusSupra.destinationStation)
127 ?replace("[horaLlegada]", busInformation.firstBusSupra.arrivalTime)/>
128 <#else>
129 <#assign respuestaSupra = "" />
130 </#if>
131
132 <#-- reemplazamos las variables en respuestaComfort -->
133 <#if busInformation.firstBusComfort?has_content>
134 <#assign respuestaComfort = respuestaComfort?replace("[destino]", busInformation.destination)?replace("[origen]",
135 busInformation.origin)?replace("[tipoServicio]", busInformation.firstBusComfort.serviceType)
136 ?replace("[horaPrimerAutoBusConfort]", busInformation.firstBusComfort.firstBusTime)
137 ?replace("[estacionOrigen]", busInformation.firstBusComfort.originStation)
138 ?replace("[estacionDestino]", busInformation.firstBusComfort.destinationStation)
139 ?replace("[horaLlegada]", busInformation.firstBusComfort.arrivalTime)/>
140 <#else>
141 <#assign respuestaComfort = "" />
142 </#if>
143 </#if>
144 <#if valorEvaluar == "tipoServicioUltimo" >
145
146 <#-- reemplazamos las variables en respuestaSupra ultimo bus-->
147 <#if busInformation.lastBusSupra?has_content>
148 <#assign respuestaSupra = respuestaSupra?replace("[destino]", busInformation.destination)?replace("[origen]",
149 busInformation.origin)?replace("[tipoServicio]", busInformation.lastBusSupra.serviceType)
150 ?replace("[horaPrimerAutoBusSupra]", busInformation.lastBusSupra.firstBusTime)
151 ?replace("[estacionOrigen]", busInformation.lastBusSupra.originStation)
152 ?replace("[estacionDestino]", busInformation.lastBusSupra.destinationStation)
153 ?replace("[horaLlegada]", busInformation.lastBusSupra.arrivalTime)/>
154 <#else>
155 <#assign respuestaSupra = "" />
156 </#if>
157
158 <#-- reemplazamos las variables en respuestaComfort ultimo bus-->
159 <#if busInformation.lastBusComfort?has_content>
160 <#assign respuestaComfort = respuestaComfort?replace("[destino]", busInformation.destination)?replace("[origen]",
161 busInformation.origin)?replace("[tipoServicio]", busInformation.lastBusComfort.serviceType)
162 ?replace("[horaPrimerAutoBusConfort]", busInformation.lastBusComfort.firstBusTime)
163 ?replace("[estacionOrigen]", busInformation.lastBusComfort.originStation)
164 ?replace("[estacionDestino]", busInformation.lastBusComfort.destinationStation)
165 ?replace("[horaLlegada]", busInformation.lastBusComfort.arrivalTime)/>
166 <#else>
167 <#assign respuestaComfort = "" />
168 </#if>
169</#if>
170 <#if valorEvaluar == "Opción45855620" >
171
172 <#if busInformation.travelEveryDay == "S">
173 <#assign respuestaSi = respuestaSi?replace("[destino]", busInformation.destination)?replace("[origen]",
174 busInformation.origin)?replace("[numeroServicios]", busInformation.times)?replace("[tiempoViaje]", busInformation.durationMin) />
175 <#assign respuestaNo = "" />
176 <#else>
177 <#assign respuestaNo = respuestaNo?replace("[destino]", busInformation.destination)?replace("[origen]",
178 busInformation.origin)?replace("[numeroServicios]", busInformation.times)?replace("[tiempoViaje]", busInformation.durationMin) />
179 <#assign respuestaSi = "" />
180
181 </#if>
182 </#if>
183 <#if valorEvaluar == "nocturno" >
184 <#if busInformation.firstNightService?has_content >
185 <#assign respuestaSi = respuestaSi?replace("[destino]", busInformation.destination)?replace("[origen]",
186 busInformation.origin)?replace("[numeroServicios]", busInformation.times)?replace("[tipoServicio]", busInformation.firstNightService.serviceType)
187 ?replace("[horaPrimerAutoBusNocturno]", busInformation.firstNightService.firstBusTime)
188 ?replace("[estacionOrigen]", busInformation.firstNightService.originStation)
189 ?replace("[estacionDestino]", busInformation.firstNightService.destinationStation)
190 ?replace("[horaLlegada]", busInformation.firstNightService.arrivalTime)/>
191 <#assign respuestaNo = "" />
192 <#else>
193 <#if busInformation.lastBusComfort?has_content>
194 <#assign respuestaNo = respuestaNo?replace("[destino]", busInformation.destination)?replace("[origen]",
195 busInformation.origin)?replace("[numeroServicios]", busInformation.times)?replace("[tipoServicio]", busInformation.lastBusComfort.serviceType)
196 ?replace("[horaPrimerAutoBusConfort]", busInformation.lastBusComfort.firstBusTime)
197 ?replace("[estacionOrigen]", busInformation.lastBusComfort.originStation)
198 ?replace("[estacionDestino]", busInformation.lastBusComfort.destinationStation)
199 ?replace("[horaLlegada]", busInformation.lastBusComfort.arrivalTime)/>
200 <#assign respuestaSi = "" />
201 <#else>
202 <#assign respuestaNo = respuestaNo/>
203 <#assign respuestaSi = "" />
204 </#if>
205 </#if>
206 </#if>
207 <#if (respuestaGenerica!="" || respuestaComfort!="" || respuestaSupra!="" || respuestaSi!="" || respuestaNo!="") >
208
209 <#assign faqs = faqs + [{"titulo": titulo, "valorEvaluar": valorEvaluar, "respuestaGenerica":
210 respuestaGenerica, "respuestaComfort": respuestaComfort, "respuestaSupra": respuestaSupra,
211 "respuestaSi": respuestaSi, "respuestaNo": respuestaNo}]>
212</#if>
213 </#if>
214 <#else>
215 <#if !titulo?contains("[") && (respuestaGenerica!="" || respuestaComfort!="" || respuestaSupra!="" || respuestaSi!="" || respuestaNo!="") >
216 <#assign faqs = faqs + [{"titulo": titulo, "valorEvaluar": valorEvaluar, "respuestaGenerica":
217 respuestaGenerica, "respuestaComfort": respuestaComfort, "respuestaSupra": respuestaSupra,
218 "respuestaSi": respuestaSi, "respuestaNo": respuestaNo}]>
219 </#if>
220 </#if>
221
222</#list>
223 </#list>
224
225<div class="dropdown2020 c-dropdown-with-info container-fluid">
226<#assign idAleatorioInicial = .now?long />
227 <div class="preguntas-frecuentes container">
228 <div id="accordion${idAleatorioInicial}" class="panel-group" role="tablist" aria-multiselectable="true">
229 <#if faqs?has_content>
230 <#assign idAleatorio = .now?long />
231 <#list faqs as faq>
232 <div class="panel panel-default">
233 <div class="panel-heading accordian" role="tab" id="heading_${idAleatorio}" aria-selected="false" aria-controls="collapse_${idAleatorio}"
234 aria-expanded="false" tabindex="-1">
235 <div class="pregunta-faq">
236 <a role="button" data-toggle="collapse" data-parent="#accordion${idAleatorioInicial}"
237 href="#collapse_${idAleatorio}" title="${faq.titulo}" aria-expanded="false" aria-controls="collapse_${idAleatorio}" class="collapsed">
238 <span class="container-displays-blinds h3">
239 ${faq.titulo}
240 </span>
241 </a>
242 </div>
243 </div>
244 <div id="collapse_${idAleatorio}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading_${idAleatorio}" aria-hidden="true" aria-expanded="false">
245 <div class="contenido-preguntas-frecuentes" tabindex="0">
246 <#if faq.valorEvaluar == "ninguno" >
247 ${faq.respuestaGenerica}
248 <#elseif faq.valorEvaluar == "tipoServcio">
249 ${faq.respuestaSupra}
250 ${faq.respuestaComfort}
251 <#elseif faq.valorEvaluar == "tipoServicioUltimo">
252 ${faq.respuestaSupra}
253 ${faq.respuestaComfort}
254 <#elseif faq.valorEvaluar == "Opción45855620">
255 ${faq.respuestaSi}
256 ${faq.respuestaNo}
257 <#elseif faq.valorEvaluar == "nocturno">
258 ${faq.respuestaSi}
259 ${faq.respuestaNo}
260 </#if>
261 </div>
262 </div>
263 <#assign idAleatorio-- />
264 </div>
265 </#list>
266 </#if>
267 </div>
268 </div>
269</div>
270
271
272<#if faqs?has_content>
273<script type="application/ld+json">
274<@compress single_line=true>
275{
276 "@context": "https://schema.org",
277 "@type": "FAQPage",
278 "mainEntity": [
279 <#list faqs as faq>
280 <#-- Determinar qué respuesta usar -->
281 <#assign respuesta = "">
282 <#if faq.respuestaGenerica?has_content>
283 <#assign respuesta = faq.respuestaGenerica>
284 <#elseif faq.respuestaComfort?has_content>
285 <#assign respuesta = faq.respuestaComfort>
286 <#elseif faq.respuestaSupra?has_content>
287 <#assign respuesta = faq.respuestaSupra>
288 <#elseif faq.respuestaSi?has_content>
289 <#assign respuesta = faq.respuestaSi>
290 <#elseif faq.respuestaNo?has_content>
291 <#assign respuesta = faq.respuestaNo>
292 </#if>
293
294 <#assign cleaned_answer = respuesta?replace("'", "’")>
295 <#assign cleaned_question = faq.titulo?replace("'", "’")>
296 {
297 "@type": "Question",
298 "name": "${cleaned_question?json_string}",
299 "acceptedAnswer": {
300 "@type": "Answer",
301 "text": "${cleaned_answer?json_string}"
302 }
303 }<#if faq_has_next>,</#if>
304 </#list>
305 ]
306}
307</@compress>
308</script>
309</#if>