Surveillez l'utilisation de votre clé avant d'atteindre une limite
Surveiller vos en-têtes de quota au fil de l'eau vous indique quand une limite approche, bien avant qu'une requête ne soit effectivement refusée.
« Nous sommes ouverts jusqu'à 18 h » n'est utile que si le visiteur qui le lit sait de quelles 18 h vous parlez. Un visiteur situé dans un autre fuseau horaire que votre entreprise a besoin que cette comparaison soit faite dans sa propre heure locale, et non dans la vôtre.
Une seule recherche d'IP renvoie directement un champ timezone, ce qui vous donne ce dont vous avez besoin sans appel supplémentaire.
GET /v1/ip?ip=203.0.113.44{
"status": "ok",
"ip": "203.0.113.44",
"version": 4,
"found": true,
"country": "Japan",
"country_code": "JP",
"region": "Tokyo",
"city": "Tokyo",
"postcode": "100-0001",
"lat": 35.6762,
"lon": 139.6503,
"timezone": "Asia/Tokyo",
"asn": 2345,
"org": "Example Telecom"
}Convertissez vos horaires d'ouverture, enregistrés dans le fuseau horaire de votre entreprise, dans le fuseau du visiteur à l'aide de l'identifiant de fuseau horaire que vous venez d'obtenir, puis comparez-les à l'heure locale actuelle du visiteur pour décider d'afficher « ouvert maintenant » ou « fermé », accompagné de l'heure locale à laquelle cet état est affiché.
Une entreprise ayant des établissements dans différentes villes doit consulter les horaires affichés de chaque établissement selon son propre fuseau enregistré, puis comparer chacun séparément au fuseau du visiteur, plutôt que de supposer qu'un seul jeu d'horaires s'applique partout. C'est surtout important lorsqu'un visiteur compare deux établissements sur la même page, car l'un peut apparaître ouvert et l'autre fermé au même instant s'ils se trouvent dans des fuseaux différents ou appliquent différemment l'heure d'été.
Plutôt que de convertir en silence en espérant que le visiteur comprenne, affichez clairement les deux informations, par exemple « Actuellement fermé. Ouvre à 9 h, votre heure (Asia/Tokyo). » Être explicite évite la confusion lorsqu'une entreprise opère de part et d'autre d'une frontière où l'heure d'été s'applique d'un côté mais pas de l'autre.
Ne calculez pas la comparaison ouvert ou fermé une seule fois pour mettre ce résultat booléen en cache pendant le reste de la session du visiteur. Une comparaison faite à 5 h 55 de l'après-midi affichera « ouvert » et sera fausse dès 6 h 05 si l'état d'ouverture est mis en cache au lieu d'être recalculé. Mettez en cache l'identifiant de fuseau horaire du visiteur, qui est réellement stable pendant une session, mais recalculez la comparaison ouvert ou fermé à chaque affichage.
Certaines régions conservent un décalage fixe toute l'année tandis qu'une région voisine change d'heure deux fois par an, ce qui signifie que l'écart entre deux fuseaux n'est pas constant au fil du calendrier. Si votre logique de comparaison code en dur un décalage en heures au lieu de partir de l'identifiant de fuseau horaire et de laisser votre bibliothèque de dates gérer la conversion, elle se désynchronisera précisément pendant les semaines qui entourent un changement d'heure.
L'identifiant de fuseau horaire du visiteur est stable pendant une session et mérite d'être mis en cache. Le fait que l'entreprise soit ouverte ou non change au cours de la journée : recalculez donc cette comparaison au moment de l'affichage à partir du fuseau mis en cache, plutôt que de mettre en cache l'état ouvert ou fermé lui-même.
Si vous devez connaître le décalage qui était, ou sera, en vigueur à un moment précis plutôt que maintenant, par exemple pour confirmer l'heure réelle, dans le fuseau du client, d'une commande passée hier, /v1/timezone accepte un paramètre time facultatif sous forme d'horodatage Unix, précisément pour ce type de vérification passée ou future.
Une recherche d'IP par nouvelle session de visiteur suffit pour cette fonctionnalité. Il s'agit d'une seule requête mise en cache pour la durée de la visite, ce qui maintient un site marchand très fréquenté bien en deçà des 2 500 requêtes gratuites par jour incluses avec chaque clé.
Afficher correctement « ouvert maintenant » pour une audience mondiale ne demande qu'une recherche et une simple comparaison d'heures, pas une fonctionnalité compliquée. La documentation de la recherche IPv4 détaille la forme complète de la réponse.