Skip to content

Commit b6848a4

Browse files
feat: price web and data offer at five euros
1 parent 52c7eb3 commit b6848a4

3 files changed

Lines changed: 44 additions & 5 deletions

File tree

developpement-web-donnees/index.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@
105105
"offers": {
106106
"@type": "Offer",
107107
"priceCurrency": "EUR",
108-
"price": "90",
108+
"price": "5",
109109
"availability": "https://schema.org/InStock",
110110
"url": "https://atlasnexus.tech/developpement-web-donnees/"
111111
}
@@ -282,8 +282,8 @@ <h2 class="section-title text-foreground dark:text-dark-foreground mb-5 font-dis
282282
<div class="reveal reveal-delay-1 max-w-md mx-auto agentic-card rounded-2xl p-8 border border-border bg-white dark:bg-dark-card text-center">
283283
<span class="text-accent font-semibold tracking-widest uppercase text-xs">Paiement unique</span>
284284
<div class="mt-4 mb-6">
285-
<span class="text-6xl font-black font-display text-foreground dark:text-dark-foreground">150</span>
286-
<p class="text-sm text-slate-400 mt-2">ou sur devis léger pour un dashboard sur mesure</p>
285+
<span class="text-6xl font-black font-display text-foreground dark:text-dark-foreground">5</span>
286+
<p class="text-sm text-slate-400 mt-2">pour un micro-build cadré · périmètre sur mesure sur devis</p>
287287
</div>
288288
<ul class="text-left text-slate-600 dark:text-slate-300 space-y-3 mb-8 text-sm">
289289
<li class="flex items-start gap-2"><span class="text-accent font-bold mt-0.5"></span> Dashboard responsive multi-marchés</li>
@@ -293,7 +293,7 @@ <h2 class="section-title text-foreground dark:text-dark-foreground mb-5 font-dis
293293
<li class="flex items-start gap-2"><span class="text-accent font-bold mt-0.5"></span> Hébergement web + nom de domaine si éligible (1 an)</li>
294294
<li class="flex items-start gap-2"><span class="text-accent font-bold mt-0.5"></span> Livraison sous 5 jours</li>
295295
</ul>
296-
<a href="/#contact" class="block w-full bg-accent text-white px-6 py-4 rounded-full text-sm font-bold hover:bg-accent-dark shadow-lg shadow-emerald-500/20 transition-all">Commander maintenant — 150</a>
296+
<a href="/#contact" class="block w-full bg-accent text-white px-6 py-4 rounded-full text-sm font-bold hover:bg-accent-dark shadow-lg shadow-emerald-500/20 transition-all">Commander maintenant — 5</a>
297297
<p class="text-xs text-slate-400 mt-4">Paiement sécurisé. Satisfait ou remboursé sous 14 jours.</p>
298298
</div>
299299
</div>

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ <h3 class="text-2xl font-bold text-foreground mb-4 font-display">Développement
394394
<p class="text-slate-600 text-sm leading-relaxed mb-5"><strong>Livrable :</strong> dashboard, app web, données structurées.</p>
395395
<p class="text-slate-600 text-sm leading-relaxed mb-5"><strong>Pour :</strong> indépendants, PME, SaaS, finance, veille, reporting.</p>
396396
<div class="offer-spacer"></div>
397-
<p class="offer-price text-xl font-extrabold text-foreground mb-6 font-display">À partir de 15<span class="offer-quote text-sm font-semibold text-slate-500">ou sur devis léger</span></p>
397+
<p class="offer-price text-xl font-extrabold text-foreground mb-6 font-display">5<span class="offer-quote text-sm font-semibold text-slate-500">paiement unique · périmètre sur mesure sur devis</span></p>
398398
<div class="flex flex-col gap-2"><a href="/developpement-web-donnees/" class="inline-flex text-primary font-semibold hover:text-primary-dark">Voir l'offre →</a><a href="#contact" class="inline-flex text-slate-500 text-sm font-semibold hover:text-primary">Demander ce build</a></div>
399399
</article>
400400
<article class="reveal reveal-delay-2 card-hover agentic-blue-card offer-card rounded-2xl p-12 border border-border bg-white">

tests/test_web_data_price.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import json
2+
import re
3+
from pathlib import Path
4+
5+
ROOT = Path(__file__).resolve().parents[1]
6+
HOME = ROOT / "index.html"
7+
OFFER = ROOT / "developpement-web-donnees" / "index.html"
8+
9+
10+
def test_web_data_offer_is_five_euros_everywhere():
11+
home = HOME.read_text(encoding="utf-8")
12+
offer = OFFER.read_text(encoding="utf-8")
13+
14+
card_match = re.search(
15+
r"<h3[^>]*>Développement web \+ données</h3>(.*?)</article>",
16+
home,
17+
flags=re.DOTALL,
18+
)
19+
assert card_match, "Carte Développement web + données introuvable"
20+
card = card_match.group(1)
21+
assert "5€" in card
22+
assert "15€" not in card
23+
24+
assert '"price": "5"' in offer
25+
assert "Paiement unique" in offer
26+
assert ">5€</span>" in offer
27+
assert "Commander maintenant — 5€" in offer
28+
assert "150€" not in offer
29+
assert '"price": "90"' not in offer
30+
31+
json_ld_match = re.search(
32+
r'<script type="application/ld\+json">(.*?)</script>',
33+
offer,
34+
flags=re.DOTALL,
35+
)
36+
assert json_ld_match
37+
payload = json.loads(json_ld_match.group(1))
38+
assert payload["offers"]["price"] == "5"
39+
assert payload["offers"]["priceCurrency"] == "EUR"

0 commit comments

Comments
 (0)