Documentation technique

Installer les extensions Ts-Immo avec Composer

Les extensions Ts-Immo sont publiées sur un dépôt Composer privé. Cette page décrit le branchement du dépôt, l’authentification par jeton et la lecture des erreurs 403 — pour les intégrateurs et les agences qui versionnent le composer.json de leur site WordPress.

Paquets publiés
39
Vendor
ts-services
Authentification
Token API, en Bearer

Le dépôt Composer

Un seul dépôt sert toutes les extensions. Il est de type composer, expose 39 paquets, tous sous le vendor ts-services.

URL du dépôt

url

https://api.ts-services.com/v1/identity/wordpress/composer

Le dépôt est privé : sans en-tête d’authentification, il répond 403 Forbidden, y compris sur son index. Un navigateur ouvert sur cette URL affichera donc une erreur — c’est le comportement attendu, pas un incident.

Le composer.json minimal

À placer à la racine du site WordPress, à côté de wp-content.

composer.json

json

{
  "repositories": [
    { "type": "composer", "url": "https://api.ts-services.com/v1/identity/wordpress/composer" }
  ],
  "require": {
    "composer/installers": "^2.0",
    "ts-services/ts-immo": "^2.0"
  },
  "extra": {
    "installer-paths": {
      "wp-content/plugins/{$name}/": ["type:wordpress-plugin"],
      "wp-content/themes/{$name}/": ["type:wordpress-theme"]
    }
  },
  "config": { "allow-plugins": { "composer/installers": true } }
}

composer/installers et installer-paths sont obligatoires

Sans eux, Composer applique son comportement par défaut et dépose les extensions dans vendor/ : WordPress ne les voit pas, et la liste des extensions reste vide malgré une installation réussie. Le bloc allow-plugins est tout aussi nécessaire — depuis Composer 2.2, un plugin Composer non autorisé explicitement n’est pas exécuté, et composer/installers est précisément un plugin Composer.

Les deux chemins déclarés dans installer-paths couvrent les extensions (type:wordpress-plugin) et les thèmes (type:wordpress-theme). Ajoutez-y vos propres destinations si votre arborescence n’est pas standard.

Authentification

Le jeton attendu est un token API client, généré depuis l’espace client Ts-Immo, rubrique des clés d’accès. Il est envoyé en Bearer sur l’hôte du dépôt.

Générer un token dans l’espace client

Méthode recommandée — écrire le jeton une fois pour toutes

Cette commande fonctionne à l’identique sur macOS, Linux et Windows. Elle écrit le jeton dans le auth.json global de Composer : il est réutilisé par tous vos projets, et rien n’est à réexporter à chaque session de terminal.

auth.json global

shell

composer config --global --auth bearer.api.ts-services.com VOTRE_TOKEN

auth.json contient le jeton en clair

C’est sans conséquence pour le fichier global, qui reste sur votre poste. En revanche, si vous déposez un auth.json dans le projet, à côté du composer.json, excluez-le du dépôt Git — sinon le jeton part dans l’historique, où il survit à la suppression du fichier.

.gitignore

gitignore

auth.json

Alternative — la variable d’environnement COMPOSER_AUTH

Utile en intégration continue, ou pour une installation ponctuelle sans écrire de fichier. La valeur est le même JSON dans les trois cas ; c’est la syntaxe qui change d’un shell à l’autre.

macOS / Linux — bash, zsh

bash

export COMPOSER_AUTH='{"bearer":{"api.ts-services.com":"VOTRE_TOKEN"}}'

Les apostrophes protègent les guillemets du JSON : elles ne font pas partie de la valeur.

Windows — PowerShell

powershell

$env:COMPOSER_AUTH = '{"bearer":{"api.ts-services.com":"VOTRE_TOKEN"}}'

C’est bien $env: et non set — voir le premier piège ci-dessous.

Windows — cmd.exe

batch

set COMPOSER_AUTH={"bearer":{"api.ts-services.com":"VOTRE_TOKEN"}}

Aucun guillemet autour du JSON : ils seraient intégrés à la valeur.

Les trois pièges

Ils sont à l’origine de l’essentiel des demandes de support sur Composer.

  1. 1

    Sous PowerShell, set ne crée pas une variable d’environnement

    Dans PowerShell, set est un alias de Set-Variable : la valeur reste dans la session PowerShell et n’est jamais transmise à Composer. Composer se retrouve alors sans jeton et affiche l’invite « Username: ». Répondez Ctrl+C — ne saisissez aucun identifiant, il n’y en a pas — puis rejouez la commande avec la syntaxe $env:.

  2. 2

    En cmd.exe, n’entourez pas le JSON de guillemets

    La commande set de cmd.exe prend tout ce qui suit le signe égal, guillemets compris. set COMPOSER_AUTH="{...}" enregistre donc une valeur qui commence et finit par un guillemet : Composer ne parvient pas à la lire comme du JSON et repart sans authentification.

  3. 3

    La clé d’authentification est le nom d’hôte seul

    Composer indexe les identifiants par hôte : la clé est api.ts-services.com, rien d’autre. Ni l’URL complète du dépôt, ni un chemin, ni api.ts-services.com:443. Une clé mal formée n’est jamais signalée comme telle : le jeton n’est simplement pas envoyé, et le dépôt répond 403 — ce qui ressemble à un problème de droits alors que c’est un problème de configuration.

Installer et mettre à jour

Une fois le dépôt déclaré et le jeton en place, les commandes sont celles de Composer, sans particularité.

Commandes courantes

shell

# Installer ce que décrit le composer.json
composer install

# Ajouter une extension
composer require ts-services/ts-immo-slider

# Mettre à jour les seules extensions Ts-Immo
# (guillemets obligatoires : zsh refuse un motif sans correspondance)
composer update "ts-services/*"

Les extensions sont déposées dans wp-content/plugins/, une par dossier, et restent à activer depuis l’administration WordPress.

Extensions disponibles

Extensions gratuites

Installables avec un compte actif, sans add-on.

PaquetRôle
ts-services/ts-immoExtension historique Ts-Immo
ts-services/ts-immo-managerGestionnaire d’extensions
ts-services/ts-immo-supportSupport client
ts-services/ts-immo-syncConnecteur de synchronisation (versions 1.0.x)

Extensions soumises à un add-on

Chaque add-on débloque le téléchargement des paquets de sa ligne.

Add-onPrixExtensions incluses
Page bien9,90 €/mois ou 99 €/an
  • ts-services/ts-immo-property-specs
  • ts-services/ts-immo-slider
  • ts-services/ts-immo-badges
  • ts-services/ts-immo-energy-badge
  • ts-services/ts-immo-neighborhood
  • ts-services/ts-immo-poi
  • ts-services/ts-immo-mortgage
Recherche & navigation9,90 €/mois ou 99 €/an
  • ts-services/ts-immo-listing
  • ts-services/ts-immo-ai-listing
  • ts-services/ts-immo-map-search
  • ts-services/ts-immo-compare
  • ts-services/ts-immo-favorites
  • ts-services/ts-immo-similar
Conversion & leads9,90 €/mois ou 99 €/an
  • ts-services/ts-immo-lead-forms
  • ts-services/ts-immo-alerts
  • ts-services/ts-immo-valuation-tracker
  • ts-services/ts-immo-agents
Vitrine & marketing4,90 €/mois ou 49 €/an
  • ts-services/ts-immo-sections
  • ts-services/ts-immo-showcase
  • ts-services/ts-immo-window-card
  • ts-services/ts-immo-pdf-brochure
  • ts-services/ts-immo-virtual-tour
  • ts-services/ts-immo-reviews
  • ts-services/ts-insta
  • ts-services/ts-yt
  • ts-services/ts-immo-share
  • ts-services/ts-immo-schema-seo
  • ts-services/ts-immo-widgets
Boîte à outils Pro9,90 €/mois ou 99 €/an
  • ts-services/ts-css-and-js
  • ts-services/ts-debug-manager
Conformité légale4,90 €/mois ou 49 €/an
  • ts-services/ts-immo-legal
Ts-Immo Sync PRO4,90 €/mois ou 49 €/an
  • ts-services/ts-immo-sync-pro
Module Estimation4,90 €/mois ou 49 €/an
  • ts-services/ts-estimation
Statistiques des visiteurs4,90 €/mois ou 49 €/an
  • ts-services/ts-immo-insights
Chatbot sur le site9,00 €/mois
  • ts-services/ts-immo-chatbot

Tous les paquets sont visibles dans le dépôt

Y compris ceux dont vous n’avez pas l’add-on. Le refus a lieu au téléchargement, pas à la découverte : composer show et la résolution des dépendances listeront donc des paquets que vous ne pouvez pas encore installer.

Le détail de chaque add-on figure sur la page tarifs.

Dépannage

Composer n’affiche pas la raison d’un refus. Quel que soit le problème, le message est le même :

Sortie de Composer

text

The 'https://api.ts-services.com/v1/identity/wordpress/composer/…' URL could not be accessed (HTTP 403): HTTP/1.1 403 Forbidden

Les trois causes d’un 403

CauseCe que vous observezÀ faire
Jeton absent, expiré ou mal configuréLe dépôt entier échoue à se charger, dès la résolution des dépendances. Composer peut aussi demander « Username: ».Vérifiez la clé d’hôte dans auth.json ou COMPOSER_AUTH, puis régénérez le jeton depuis l’espace client.
Add-on non souscrit pour ce paquetLa résolution aboutit, les paquets sont listés, et un seul d’entre eux échoue au téléchargement.Repérez le paquet dans le tableau des add-ons et souscrivez l’add-on correspondant.
Abonnement échuDes paquets qui s’installaient la veille sont refusés, sans changement du composer.json.Vérifiez l’état de l’abonnement et des paiements dans l’espace client.

Le test qui départage jeton et add-on

Si composer install liste bien les paquets et n’échoue que sur le téléchargement de l’un d’eux, c’est l’add-on qui manque. S’il échoue à charger le dépôt entier, avant même de résoudre les dépendances, c’est le jeton.

Après un échec, nettoyez le composer.json

Un composer require refusé laisse quand même sa trace

La ligne reste écrite dans composer.json et dans composer.lock. Il faut la retirer à la main : sinon les composer install suivants rejoueront la même dépendance et échoueront à nouveau, sur un site pourtant sain.

Nettoyage

shell

# Retirer la dépendance refusée (composer.json + composer.lock)
composer remove ts-services/ts-immo-slider

# Si la commande échoue elle aussi : supprimer la ligne à la main dans
# composer.json, puis synchroniser le lock sur ce seul paquet
composer update ts-services/ts-immo-slider

composer update --lock ne suffit pas : cette option réécrit l’empreinte du fichier de verrouillage sans toucher aux paquets. Celui que vous venez de retirer de composer.json reste dans composer.lock, et le composer install suivant le réinstalle — donc échoue à nouveau.

Installer les extensions Ts-Immo avec Composer | Ts-Immo — Ts-Immo