Syntax error in template "20099#20135#103554998" in line 53, column 5:
You can't use "${" here as you are already in FreeMarker-expression-mode. Thus, instead of ${myExpression}, just write myExpression. (${...} is only needed where otherwise static text is expected, i.e, outside FreeMarker tags and ${...}-s.)
1<#assign languageId = themeDisplay.getLanguageId()/>
2
3<#-- Define separate maps for each category -->
4<#assign SahajSathi = {
5 "en_US": SahajSathi_en_US.getData(),
6 "or_IN": SahajSathi_or_IN.getData(),
7 "hi_IN": SahajSathi_hi_IN.getData(),
8 "bn_IN": SahajSathi_bn_IN.getData()
9} />
10<#assign SahajApp = {
11 "en_US": SahajApp_en_US.getData(),
12 "or_IN": SahajApp_or_IN.getData(),
13 "hi_IN": SahajApp_hi_IN.getData(),
14 "bn_IN": SahajApp_bn_IN.getData()
15} />
16<#assign AllService = {
17 "en_US": AllService_en_US.getData(),
18 "or_IN": AllService_or_IN.getData(),
19 "hi_IN": AllService_hi_IN.getData(),
20 "bn_IN": AllService_bn_IN.getData()
21} />
22<#assign SahajLite = {
23 "en_US": SahajLite_en_US.getData(),
24 "or_IN": SahajLite_or_IN.getData(),
25 "hi_IN": SahajLite_hi_IN.getData(),
26 "bn_IN": SahajLite_bn_IN.getData()
27} />
28<#assign SahajMitr = {
29 "en_US": SahajMitr_en_US.getData(),
30 "or_IN": SahajMitr_or_IN.getData(),
31 "hi_IN": SahajMitr_hi_IN.getData(),
32 "bn_IN": SahajMitr_bn_IN.getData()
33} />
34<#assign Jio = {
35 "en_US": Jio_en_US.getData(),
36 "or_IN": Jio_or_IN.getData(),
37 "hi_IN": Jio_hi_IN.getData(),
38 "bn_IN": Jio_bn_IN.getData()
39} />
40
41<#assign jioValue = Jio[languageId] />
42<#assign sahajMitrValue = SahajMitr[languageId] />
43<#assign sahajLiteValue = SahajLite[languageId] />
44<#assign allServiceValue = AllService[languageId] />
45<#assign sahajAppValue = SahajApp[languageId] />
46<#assign sahajSathiValue = SahajSathi[languageId] />
47
48<!--====================================-->
49<!--Mobile Banner Array-->
50<!--====================================-->
51<#assign mobileBannerMap = {
52 "en_US": [
53 ${MobileViewBanners.Banner_1.Banner_1_EN.getData()}!"",
54 MobileViewBanners.Banner_2.Banner_2_EN.getData()!"",
55 MobileViewBanners.Banner_3.Banner_3_EN.getData()!""
56 ],
57
58 "hi_IN": [
59 MobileViewBanners.Banner_1.Banner_1_HI.getData()!"",
60 MobileViewBanners.Banner_2.Banner_2_HI.getData()!"",
61 MobileViewBanners.Banner_3.Banner_3_HI.getData()!""
62 ],
63
64 "or_IN": [
65 MobileViewBanners.Banner_1.Banner_1_OR.getData()!"",
66 MobileViewBanners.Banner_2.Banner_2_OR.getData()!"",
67 MobileViewBanners.Banner_3.Banner_3_OR.getData()!""
68 ],
69
70 "bn_IN": [
71 MobileViewBanners.Banner_1.Banner_1_BN.getData()!"",
72 MobileViewBanners.Banner_2.Banner_2_BN.getData()!""
73 ]
74} />
75
76<!--========================-->
77<!--Clean Function-->
78<!--========================-->
79
80<#function clean(val)>
81 <#if !val?has_content>
82 <#return "">
83 </#if>
84
85 <#assign v = val?trim>
86
87 <#if v == "-" || v == "--" || v == "---">
88 <#return "">
89 </#if>
90
91 <#return v>
92</#function>
93
94<!--========================-->
95<!--Final Array -->
96<!--========================-->
97
98<#assign cleanedMobileBannerMap = {} />
99
100<#list mobileBannerMap?keys as lang>
101
102 <#assign rawList = mobileBannerMap[lang] />
103 <#assign cleanedList = [] />
104
105 <#list rawList as item>
106
107 <#assign c = clean(item) />
108
109 <#if c?has_content>
110 <#assign cleanedList += [c] />
111 </#if>
112
113 </#list>
114
115 <#assign cleanedMobileBannerMap += { lang: cleanedList } />
116
117</#list>
118
119<script>
120console.log("RAW MOBILE BANNERS:");
121console.log(${mobileBannerMap?json_string});
122
123console.log("CLEANED MOBILE BANNERS:");
124console.log(${cleanedMobileBannerMap?json_string});
125</script>
126
127<style>
128 .service-item {
129 width: 250px;
130 scroll-snap-align: start;
131 }
132
133 #mobileCarousel .carousel-item img {
134 width: 100%;
135 height: 600px;
136 object-fit: cover;
137 }
138</style>
139
140<section class="main-slider uat-aditya-test">
141 <div id="carouselExampleIndicators" class="carousel slide d-none d-md-block"
142 data-ride="carousel" data-interval="10000" tabindex="0">
143 <ol class="carousel-indicators">
144 <li data-target="#carouselExampleIndicators" data-slide-to="0"
145 class="active"></li>
146 <li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
147 <li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
148 <li data-target="#carouselExampleIndicators" data-slide-to="3"></li>
149 <li data-target="#carouselExampleIndicators" data-slide-to="4"></li>
150 <li data-target="#carouselExampleIndicators" data-slide-to="5"></li>
151 </ol>
152 <div class="carousel-inner">
153 <div class="carousel-item active">
154 <img src="${sahajSathiValue}" fetchpriority="high" loading="eager">
155 </div>
156 <div class="carousel-item">
157 <img src="${sahajAppValue}">
158 </div>
159 <div class="carousel-item">
160 <img src="${allServiceValue}">
161 </div>
162 <div class="carousel-item">
163 <img src="${sahajLiteValue}">
164 </div>
165 <div class="carousel-item">
166 <img src="${sahajMitrValue}">
167 </div>
168 <div class="carousel-item">
169 <img src="${jioValue}">
170 </div>
171 </div>
172 <a class="carousel-control-prev" href="#carouselExampleIndicators"
173 role="button" data-slide="prev"> <span
174 class="carousel-control-prev-icon" aria-hidden="true"></span> <span
175 class="sr-only">Previous</span>
176 </a> <a class="carousel-control-next" href="#carouselExampleIndicators"
177 role="button" data-slide="next"> <span
178 class="carousel-control-next-icon" aria-hidden="true"></span> <span
179 class="sr-only">Next</span>
180 </a>
181 </div>
182 <div id="mobileCarousel" class="carousel slide d-block d-md-none" data-bs-ride="carousel" data-bs-interval="2000">
183
184 <div class="carousel-inner">
185
186 <div class="carousel-item active">
187 <img src="https://retail.sahaj.co.in/documents/20126/175982926/All-Service_-Login_Banner_091225_V14_2.jpg/63b75c6e-a654-12bb-059f-7cec8557be98?t=1767172722132" class="d-block w-100 rounded" alt="Image 1">
188 </div>
189
190 <div class="carousel-item">
191 <img src="https://retail.sahaj.co.in/documents/20126/176523107/Sahaj-Bazar_Login-page-Banner_070126_V3_2_Eng.jpg/862caf62-4923-de67-b63a-a84d0359aaff?t=1767871564168" class="d-block w-100 rounded" alt="Image 2">
192 </div>
193
194 <div class="carousel-item">
195 <img src="https://retail.sahaj.co.in/documents/20126/173476529/Bus-Ticket-Booking_Login_Banner_141125_V3_1.jpg/83818cc8-6895-8b44-560f-b152681a10ba?t=1763988105098" class="d-block w-100 rounded" alt="Image 3">
196 </div>
197
198 <div class="carousel-item">
199 <img src="https://retail.sahaj.co.in/documents/20126/177385346/Bondvue_Login-page-Banner_220126_V3_Eng-20260122-105347.jpg/0f315e36-17bc-c872-ab4b-72ca80ccba69?t=1769080539129" class="d-block w-100 rounded" alt="Image 4">
200 </div>
201
202 <div class="carousel-item">
203 <img src="https://retail.sahaj.co.in/documents/20126/178869821/Unimoni_Forex_Login-page-Banner_110226_V1_Eng.jpg/b4691485-8108-e85f-7093-880c015c8702?t=1771232154659" class="d-block w-100 rounded" alt="Image 5">
204 </div>
205
206 </div>
207
208 <!-- Buttons -->
209 <button class="carousel-control-prev" type="button" data-bs-target="#mobileCarousel" data-bs-slide="prev">
210 <span class="carousel-control-prev-icon"></span>
211 </button>
212
213 <button class="carousel-control-next" type="button" data-bs-target="#mobileCarousel" data-bs-slide="next">
214 <span class="carousel-control-next-icon"></span>
215 </button>
216
217</div>
218</section>

Now Live: Sahaj Bazaar
Explore a new way to shop on the Sahaj Portal! An exciting platform with products for every budget from multiple sellers — all in one place.
Compare. Choose. Save.
A smarter shopping experience is just a click away!
Introducing: Sahaj–Surya Shakti
Cut electricity bills by 60–80% with solar power solutions — now live on Sahaj Portal!
Govt. subsidy + loan support
Big monthly savings for households
Earn by helping others save
Our Services
Payment Services
E-Learning
E-Governance
Earn More
What are you waiting for?
Download BoloBolo App now...
The BoloBolo App is specifically designed for our Sahaj Mitrs (SM), also known as Village Level Entrepreneurs (VLE), who are dispersed across India. These entrepreneurs provide a diverse array of services to Indian citizens, aiming to enhance their quality of life and ensure accessibility.
General Users, offering features like bill payments, loan and job applications, games, and chat options.
Why partner with Sahaj?
Sahaj operates one of the largest distribution networks in rural India, with 2,61,000 phygital retail outlets. Through its 'Brick and Click' phygital model, Sahaj effectively delivers a diverse range of products and services across these regions.
Become a Sahaj Mitr today to empower rural communities by facilitating easy access to government services. This role offers you the chance to earn attractive commissions while making a meaningful impact.
Our Videos
3,07,419+
Sahaj Mitr
4681+
Param Mitr
25
States/Union Territories

Sahaj Mitr (Retailer)
Sahaj Mitr is a village level entrepreneur who promotes various services of Sahaj to the rural population and participates in rural development. He is mostly located under a Gaon Panchayat.
Param Mitr (Distributor)
Param Mitr work as motivators for a group of Sahaj Mitr, who are mapped with him/her. He guides them, gives them training and inspires them to achieve their business objectives.
Super Param Mitr (Retailer)
Super Param Mitr works as leader for a group of Param Mitr. He creates goals and the strategies for Param Mitr to help achieve their business goals.

We've woven some of the finest names in the technology sector in our scheme of activities...
We are confident this portal will supercharge
your productivity and give you a competitive edge.
— Message from Sahaj
Now Live: Sahaj Bazaar
Explore a new way to shop on the Sahaj Portal! An exciting platform with products for every budget from multiple sellers — all in one place.
Now Live: Sahaj Bazaar
Explore a new way to shop on the Sahaj Portal! An exciting platform with products for every budget from multiple sellers — all in one place.