Il peut arriver que vous ajoutiez une fonctionnalité à votre application et que vous souhaitiez l’ajouter à tous vos abonnés actuels.
L’interface du backoffice ne contient pas de bouton magique pour faire ça : il y a bien trop de cas spécifiques et une telle fonctionnalité pourrait causer beaucoup de problèmes en quelques clics.

Bad practice

N’ajoutez pas en masse une fonctionnalité qui modifierai le prix des abonnements de vos clients. Vous risquez une insurrection. Si la fonctionnalité doit être payante, c’est une opportunité pour communiquer dessus et permettre à vos client de monter en gamme ou d’activer cette option.

API Backoffice

Vous aurez besoin de l’API Backoffice.
Attention : l’API Backoffice est légèrement différente de l’API Live. L’API Live est conçue pour mâcher le travail et proposer des appels très intuitifs. L’API Backoffice est plus souple, proche de la structure réelle des données, mais plus verbeuse et beaucoup moins intuitive.

Étape 1

Récupérez la liste de tous les abonnements via l’API Backoffice.https://docs.proabono.com/api/backoffice/#list-subscriptions

Utilisez des filtres sur mesure si vous souhaitez ne ciblez que certains abonnement.Par exemple, seulement les abonnements actifs :GET /Sub/Subscriptions?StateSubscription=Running

Étape 2

L’API Backoffice ne comprend pas ReferenceFeature. Vous devez récupérer l’id de la caractéristique que vous souhaitez ajouter. C’est un entier, qui se trouve dans l’url de la fiche de la caractéristique concernée.

Étape 3

Depuis la fiche de la caractéristique, définissez le ‘tarifs par défaut’. En réalité, cette fonctionnalité permet également de définir le paramétrage par défaut. Par exemple : est-ce que la fonctionnalité est activé de base ? Est-ce que le client peut l’activer depuis le portail client ? etc.Ces paramètres seront les valeurs par défaut lorsque vous ajouterez en masse les caractéristiques à vos abonnés.

Étape 4

Chaque Abonnement (Subscription) contient des Caractéristiques (Features). L’association entre un abonnement et une caractéristique s’appelle une SubscriptionFeature. Une SubscriptionFeature contient les informations de paramétrage et de prix de cette caractéristique dans cet abonnement. Cette documentation ne présente pas le cas ‘fonctionnalité payante’ (plus complexe).https://docs.proabono.com/api/backoffice/#subscriptionfeature-resource

Créez un gros objet JSON contenant une SubscriptionFeature par Abonnement.POST /Sub/SubscriptionFeatures[ {  “IdSubscription”: 12345,  “IdFeature”: 987,}, {  “IdSubscription”: 12346,  “IdFeature”: 987,},…]

Si la moindre erreur se produit, l’ensemble des modif est annulé.Si la caractéristique est déjà dans l’abonnement, une erreur va se produire.
Alternativement, vous pouvez faire une boucle et ajouter les caractéristiques abonnement par abonnement. Ça peut être utile si la caractéristique est déjà présente dans certains abonnement, ça évite qu’une erreur n’annule tout l’appel.