Smart POS - Portal Publico
Soluciones para ventas presenciales
Si eres pequeño, mediano o gran comercio, en Transbank tenemos la solución perfecta para que puedas realizar ventas presenciales -de manera rápida, cómoda y segura- acorde a las particularidades de tu negocio.
A continuación encontrarás distintas soluciones para ventas con tarjetas en tu local, selecciona la opción que más te acomode.
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing: ==> PermitirContratar.UrlContratardvws [in template "20101#20131#63329" at line 232, column 40] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #if PermitirContratar.UrlContratardvw... [in template "20101#20131#63329" at line 232, column 34] ----
1<style>
2.tbk-public:not(.liferay-instance) .btn_3 a {
3 background: #09B1ff;
4 text-align: center;
5 padding-left: 20px !important;
6 padding-right: 20px !important;
7 background: #09B1ff;
8 text-align: center;
9 padding-left: 20px !important;
10 word-wrap: break-word;
11 width: auto;
12 max-width: 400px;
13 padding-right: 20px !important;
14 font-size: 0.8rem;
15}
16.tbk-public:not(.liferay-instance) .promocionestransbank .seccion_medios .titulo {
17display: block;
18}
19@media (max-width: 767px) {
20.tbk-public:not(.liferay-instance) .promocionestransbank .seccion_medios .titulo {
21display: block;
22}
23.collapse_2.visible-xs .visible-xs .panel-heading {
24padding: 10px 15px;
25}
26.collapse_2.visible-xs .card {
27 background-color: transparent;
28}
29.collapse_2.visible-xs .btn:not(:disabled):not(.disabled) {
30 cursor: pointer;
31 width: 100%;
32 text-align: left;
33}
34.collapse_2.visible-xs .btn-link {
35 color: white;
36 text-transform: uppercase;
37 font-size: 18px;
38 font-weight: 500;
39}
40.collapse_2.visible-xs .card-header {
41 padding: 0;
42 border: 1px solid #009cdd;
43 border-radius: 3px;
44}
45.collapse_2.visible-xs .card-body li {
46 color: white;
47 list-style: none;
48}
49.collapse_2.visible-xs .btn-link:hover {
50 color: #a09e9e;
51 text-decoration: none;
52}
53.collapse_2.visible-xs .btn-link:focus {
54 color: #a09e9e;
55 text-decoration: none;
56}
57
58.bloque_collapse_2.visible-xs .btn.btn-link {
59 font-size: 14px;
60 color: #43484c;
61 font-family: "Roboto",sans-serif;
62 text-transform: uppercase;
63 font-weight: 400;
64 width: 100%;
65 text-align: left;
66}
67.bloque_collapse_2.visible-xs .card-header {
68background: rgba(0,0,0,0) none repeat scroll 0 0;
69border: 1px solid #009cdd;
70border-radius: 2px;
71padding: 0;
72}
73
74.seccion_medios .bloque_collapse_2.visible-xs .btn.btn-link .glyphicon {
75 top: 5px;
76 position: absolute;
77 right: 10px;
78}
79.bloque_collapse_2.visible-xs .btn-link:hover {
80text-decoration: none;
81}
82.bloque_collapse_2.visible-xs .card {
83box-shadow: none;
84margin-bottom: 0.5rem;
85}
86.bloque_collapse_2.visible-xs .card-body {
87background: #009cdd none repeat scroll 0 0;
88color: #fff;
89font-size: 14px;
90}
91.tbk-public:not(.liferay-instance) .bloque_collapse_2.visible-xs a:hover, .tbk-public:not(.liferay-instance) .bloque_collapse_2.visible-xs a:focus {
92color: #23527c;
93}
94.bloque_collapse_2 .panel-group {
95 margin-left: 10px;
96margin-right: 10px;
97}
98.bloque_collapse_2 .panel-heading{
99 padding: 7px;
100}
101
102}
103 .nav-pills .nav-link.active, .nav-pills .nav-underline .tab a.active, .nav-underline .tab .nav-pills a.active, .nav-pills .nav-underline .tab.active a, .nav-underline .tab.active .nav-pills a, .nav-pills .show > .nav-link, .nav-pills .nav-underline .tab .show > a, .nav-underline .tab .nav-pills .show > a {
104 color: rgb(255, 255, 255);
105 background-color: transparent;
106 font-weight: 400;
107}
108.contenedor_tab_1 {
109 padding-top: 28px;
110}
111.tab_bloque_2 .nav-pills .nav-link.active, .tab_bloque_2 .nav-pills .nav-underline .tab a.active, .tab_bloque_2 .nav-underline .tab .nav-pills a.active, .tab_bloque_2 .nav-pills .nav-underline .tab.active a, .tab_bloque_2 .nav-underline .tab.active .nav-pills a, .tab_bloque_2 .nav-pills .show > .nav-link, .tab_bloque_2 .nav-pills .nav-underline .tab .show > a, .tab_bloque_2 .nav-underline .tab .nav-pills .show > a {
112 color: #43484c;
113 background-color: transparent;
114 font-weight: 400;
115}
116.tab_bloque_2 .nav li.active {
117 background: rgba(0,0,0,0) url(../images/img/bullet_tab.png) no-repeat scroll center bottom;
118}
119.tab_bloque_1 .nav li.active {
120 background: rgba(0,0,0,0) url(../images/img/bullet_tab.png) no-repeat scroll center bottom;
121}
122.contenedor_tab_1 .nav li a.active {
123 background: url(../images/img/bullet_tab.png) center bottom no-repeat scroll rgba(0, 0, 0, 0);
124 border-width: 0px;
125 color: rgb(255, 255, 255);
126 font-weight: 500;
127}
128.tab_bloque_2 .nav li a.active {
129 background: url(../images/img/bullet_tab.png) center bottom no-repeat scroll rgba(0, 0, 0, 0);
130 border-width: 0px;
131 color: rgb(255, 255, 255);
132 font-weight: 500;
133}
134</style>
135<div class="row">
136 <div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 ">
137 <div class="productos_interior">
138 <div class="caja_1">
139 <div class="col_izq">
140 <div class="titulo_3">
141 <h4>${.vars['reserved-article-title'].data}</h4>
142 </div>
143 <#if Bajada.getData()?has_content>
144 <div class="txt">
145 <p>${Bajada.getData()}</p>
146 </div>
147 </#if>
148 </div>
149 <#if ImagenIntroduccion.getData()?? && ImagenIntroduccion.getData() !="">
150 <div class="col_der">
151 <img class="img-responsive" src="${ImagenIntroduccion.getData()}" alt="" title="">
152 </div>
153 </#if>
154 <div class="borrado"></div>
155 </div>
156 <div class="caja_2">
157 <div class="col_izq">
158 <#if Titulo.getSiblings()?has_content && Titulo.getData() !="">
159 <#list Titulo.getSiblings() as cur_Titulo>
160 <div class="titulo_4">
161 <h4>${cur_Titulo.getData()}</h4>
162 </div>
163
164 <#if Titulo.TipoSolucion??>
165 <#if Titulo.TipoSolucion.getData() == "1">
166 <#assign claseTexto="txt texto-ventas-presenciales">
167 <#elseif Titulo.TipoSolucion.getData() == "2">
168 <#assign claseTexto="txt texto-ventas-internet">
169 <#elseif Titulo.TipoSolucion.getData() == "3">
170 <#assign claseTexto="txt texto-pagos-recurrentes">
171 <#elseif Titulo.TipoSolucion.getData() == "4">
172 <#assign claseTexto="txt texto-pagos-tarjetas">
173 <#else>
174 <#assign claseTexto="txt">
175 </#if>
176 <#else>
177 <#assign claseTexto="txt">
178 </#if>
179
180 <div class="${claseTexto}">
181 ${cur_Titulo.Descripcion.getData()}<br>
182 <#if Titulo.TituloComoFunciona.getSiblings()?has_content>
183 <#list Titulo.TituloComoFunciona.getSiblings() as cur_TituloComoFunciona>
184 <div>
185 <strong>${cur_TituloComoFunciona.getData()}</strong><br>
186 <p>${cur_TituloComoFunciona.BajadaComoFunciona.getData()}</p><br>
187 </div>
188 </#list>
189 </#if>
190 <#if DescripcionManual.Manual.getData() !="">
191 <div>
192 <strong>${DescripcionManual.getData()}
193 <a href="${DescripcionManual.Manual.getData()}" target="_blank">acá</a>
194 </strong>
195 </div>
196 </#if>
197 <#if DescripcionManual.Manual.getData() !="" && URLEnlaceManual?? && URLEnlaceManual.Manual.getData() !="" >
198 <div>
199 <strong>${DescripcionManual.getData()}
200 <a href="${URLEnlaceManual.getData()}" target="_blank">acá</a>
201 </strong>
202 </div>
203 </#if>
204 </div>
205 </#list>
206 </#if>
207 </div>
208 <div class="col_der">
209 <#if VideoYoutube.getData() !="">
210 <div class="embed-responsive embed-responsive-16by9">
211 <iframe class="embed-responsive-item" width="560" height="315"
212 src="${VideoYoutube.getData()}" frameborder="0" allowfullscreen=""></iframe>
213 </div>
214 </#if>
215 </div>
216 <div class="borrado"></div>
217 </div>
218 <#assign evento = "evento-interactivo" />
219 <#assign categoria = "Portal público" />
220 <#if PermitirContratar?? && PermitirContratar.getData() == "true">
221 <#list Titulo.TipoSolucion.getSiblings() as cur_solucion>
222
223 <#if cur_solucion.getData() !="">
224 <#if cur_solucion.getData() == "1" || cur_solucion.getData() == "2">
225 <div class="row">
226 <#if PermitirContratar.UrlContratar.getData()?? && PermitirContratar.UrlContratar.getData() !="" && PermitirContratar.TextoBotonContratar.getData()?? && PermitirContratar.TextoBotonContratar.getData() !="" >
227 <div class="btn_3 col" >
228 <a class="mx-auto" href="${PermitirContratar.UrlContratar.getData()}" onclick="enviaDatoGA('Quiero contratarlo')">${PermitirContratar.TextoBotonContratar.getData()}</a>
229 </div>
230 </#if>
231
232 <#if PermitirContratar.UrlContratardvws.getData()?? && PermitirContratar.UrlContratardvws.getData() !="" && PermitirContratar.TextoBotonContratar7a0r.getData()?? && PermitirContratar.TextoBotonContratar7a0r.getData() !="" >
233 <div class="btn_3 col" >
234 <a class="mx-auto" href="${PermitirContratar.UrlContratardvws.getData()}" onclick="enviaDatoGA('Quiero contratarlo')">${PermitirContratar.TextoBotonContratar7a0r.getData()}</a>
235 </div>
236 </#if>
237
238
239
240 </div>
241 </#if>
242 </#if>
243
244
245
246 </#list>
247 </#if>
248 </div>
249 </div>
250</div>
251<div class="container-fluid">
252
253
254
255
256
257
258
259 <div class="row contenedor_tabs_beneficios" <#if BannerBeneficio.getData()?? && BannerBeneficio.getData() !="">
260 style="background: url('${BannerBeneficio.getData()}');</#if> min-height: 400px; background-size: cover;">
261 <div class="col-sm-offset-2 col-sm-8">
262 <div class="contenedor_tab_1 hidden-xs">
263 <!-- Nav tabs -->
264 <#if BannerBeneficio.TituloBeneficio.getSiblings()?has_content &&
265 BannerBeneficio.TituloBeneficio.getData() !="">
266 <ul class="nav nav-pills" role="tablist">
267 <#list BannerBeneficio.TituloBeneficio.getSiblings() as cur_BannerBeneficio>
268 <#if cur_BannerBeneficio?is_first>
269 <#assign tabActive="active" />
270 <#assign tabselected="true" />
271 <#else>
272 <#assign tabActive="" />
273 <#assign tabselected="false" />
274 </#if>
275 <li role="presentation" class="nav-item" >
276 <a class="nav-link ${tabActive}"
277 id="#beneficio-${cur_BannerBeneficio?counter}-tab"
278 data-toggle="pill"
279 href="#beneficio-${cur_BannerBeneficio?counter}"
280 role="tab"
281 aria-controls="#beneficio-${cur_BannerBeneficio?counter}"
282 aria-selected="${tabselected}">
283 ${cur_BannerBeneficio.getData()}
284 </a>
285 </li>
286 </#list>
287 </ul>
288 </#if>
289 <!-- Tab panes -->
290 <div class="tab-content">
291 <#if BannerBeneficio.TituloBeneficio.getSiblings()?has_content && BannerBeneficio.TituloBeneficio.getData() !="">
292 <#list BannerBeneficio.TituloBeneficio.getSiblings() as cur_BannerBeneficio>
293 <#if cur_BannerBeneficio?is_first>
294 <#assign tabActive="active" />
295
296 <#else>
297 <#assign tabActive="" />
298 </#if>
299 <div role="tabpanel" class="tab-pane ${tabActive}" id="beneficio-${cur_BannerBeneficio?counter}">
300 <div class="col_1">
301 ${cur_BannerBeneficio.DescripcionBeneficio.getData()}
302 </div>
303 <#if cur_BannerBeneficio.ImagenBeneficio.getData()?? &&
304 cur_BannerBeneficio.ImagenBeneficio.getData() !="">
305 <div class="col_2">
306 <div class="img_tab hidden-xs ">
307 <img class="img-responsive"
308 src="${cur_BannerBeneficio.ImagenBeneficio.getData()}" alt="" title="">
309 </div>
310 </div>
311 </#if>
312 </div>
313 </#list>
314 </div>
315 </#if>
316 </div>
317 <!-- Collapse movil-->
318 <div class="collapse_2 visible-xs">
319 <div id="accordion">
320 <#if BannerBeneficio.TituloBeneficio.getSiblings()?has_content>
321 <#list BannerBeneficio.TituloBeneficio.getSiblings() as cur_BannerBeneficio>
322 <div class="card">
323 <div class="card-header" id="headingOne">
324 <h5 class="mb-0">
325 <button class="btn btn-link" data-toggle="collapse" data-target="#beneficio${cur_BannerBeneficio?counter}-collapseOne" aria-expanded="true" aria-controls="beneficio${cur_BannerBeneficio?counter}-collapseOne">
326 ${cur_BannerBeneficio.getData()}<span class="glyphicon glyphicon-minus"></span>
327 </button>
328 </h5>
329 </div>
330
331 <div id="beneficio${cur_BannerBeneficio?counter}-collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion">
332 <div class="card-body">
333 ${cur_BannerBeneficio.DescripcionBeneficio.getData()}
334 </div>
335 </div>
336 </div>
337 </#list>
338 </#if>
339 </div>
340 </div>
341 </div>
342 </div>
343</div>
344<div class="seccion_medios">
345 <div class="container-fluid">
346 <div class="row ">
347 <div class="col-sm-offset-2 col-sm-8">
348 <div class="titulo">Tarjetas</div>
349 <div class="caja_logos">
350 <#if BannerTarjeta.getSiblings()?has_content && BannerTarjeta.getData() !="">
351 <#if BannerTarjeta.getSiblings()?size==1>
352 <#list BannerTarjeta.getSiblings() as cur_BannerTarjeta>
353 <div class="tc_independiente">
354 <img src="${cur_BannerTarjeta.getData()}" alt="" title="">
355 </div>
356 </#list>
357 <#else>
358 <#list BannerTarjeta.getSiblings() as cur_BannerTarjeta>
359 <div class="tc">
360 <img src="${cur_BannerTarjeta.getData()}" alt="" title="">
361 </div>
362 </#list>
363 </#if>
364 </#if>
365 </div>
366 </div>
367 </div>
368 </div>
369 <div class="row tab_bloque_2 hidden-xs">
370 <div class="col-sm-offset-2 col-sm-8">
371 <!-- Nav tabs -->
372 <#if TituloTarjeta.getData() !="">
373 <ul class="nav nav-pills" role="tablist">
374 <#list TituloTarjeta.getSiblings() as cur_TituloTarjeta>
375 <#if cur_TituloTarjeta?is_first>
376 <#assign tabActive="active" />
377 <#else>
378 <#assign tabActive="" />
379 </#if>
380 <li class="nav-item">
381 <a id="tarjeta_${cur_TituloTarjeta?counter}-tab"
382 data-toggle="pill"
383 href="#tarjeta_${cur_TituloTarjeta?counter}"
384 role="tab"
385 aria-controls="tarjeta_${cur_TituloTarjeta?counter}"
386 aria-selected="true"
387 class="nav-link ${tabActive}">
388 ${cur_TituloTarjeta.getData()}
389 </a>
390 </li>
391 </#list>
392 </ul>
393 </#if>
394 <!-- Tab panes -->
395 <#if TituloTarjeta.getData() !="">
396 <div class="tab-content">
397 <#list TituloTarjeta.getSiblings() as cur_TituloTarjeta>
398 <#if cur_TituloTarjeta?is_first>
399 <#assign tabActive="active" />
400 <#else>
401 <#assign tabActive="" />
402 </#if>
403 <div role="tabpanel" class="tab-pane ${tabActive}" id="tarjeta_${cur_TituloTarjeta?counter}">
404 ${cur_TituloTarjeta.DetalleTarjeta.getData()}
405 </div>
406 </#list>
407 </div>
408 </#if>
409 </div>
410 </div>
411 <!-- bloque collapse 2 -->
412 <div class="container-fluid bloque_collpsse_2 visible-xs">
413 <div class="row">
414 <div class="col-sm-offset-2 col-sm-8">
415 <div class="bloque_collapse_2 visible-xs">
416 <div id="accordion">
417 <#if TituloTarjeta.getData() !="">
418 <#list TituloTarjeta.getSiblings() as cur_TituloTarjeta>
419 <div class="card">
420 <div class="card-header" id="headingOne">
421 <h5 class="mb-0">
422 <button class="btn btn-link collapsed" data data-toggle="collapse" data-target="#tarjeta_${cur_TituloTarjeta?counter}" aria-expanded="true" aria-controls="tarjeta_${cur_TituloTarjeta?counter}">
423 ${cur_TituloTarjeta.getData()} <span class="glyphicon glyphicon-minus"></span>
424 </button>
425 </h5>
426 </div>
427
428 <div id="tarjeta_${cur_TituloTarjeta?counter}" class="collapse" aria-labelledby="headingOne" data-parent="#accordion">
429 <div class="card-body">
430 ${cur_TituloTarjeta.DetalleTarjeta.getData()}
431 </div>
432 </div>
433 </div>
434 </#list>
435 </#if>
436 </div>
437 </div>
438 </div>
439 </div>
440 </div>
441 <div class="container-fluid productos_interior pd-0">
442 <div class="row">
443 <div class="col-sm-8 col-sm-offset-2 ">
444 <div class="caja_2 alineacion">
445 <div class="col_izq pd-0">
446 <#if TituloDocumentacion.getData()?? && TituloDocumentacion.getData() != "">
447 <div class="titulo_4">
448 <h4>${TituloDocumentacion.getData()}</h4>
449 </div>
450 </#if>
451 <#if TituloDocumentacion.PDFDocumentoOneClick.getData()?? && TituloDocumentacion.PDFDocumentoOneClick.getData() != "">
452 <div class="txt">
453 <ul>
454 <li><a class="tbk__link" href="${TituloDocumentacion.PDFDocumentoOneClick.getData()}" target="_blank" >API SOAP Webpay - Oneclick</a></li>
455 </ul>
456 </div>
457 </#if>
458 </div>
459 <#if ImagenDocumentacion.getData()?? && ImagenDocumentacion.getData() != "">
460 <div class="col_der pd-0">
461 <img class="img-responsive" src="${ImagenDocumentacion.getData()}" />
462 </div>
463 </#if>
464 </div>
465 </div>
466 </div>
467 </div>
468</div>
469
470
471
472<script>
473
474
475 function enviaDatoGA(etiqueta){
476 let tituloPadre = document.getElementById('titulo_padre').value;
477 tagEventoInteractivo('${evento}', '${categoria}', 'Click '+tituloPadre+' - ${.vars['reserved-article-title'].data?upper_case?replace(".", "")}', etiqueta);
478 }
479
480
481
482</script>