Commande sur mesure
Créer un devis sur mesure
La séquence est la suivante :
- commencer un devis pour un ClientLegalEntity
- ajouter une section : une section correspond a un service / accès
- créer la section (associée à un ClientContract)
- définir l’offre dans la section : par exemple, si c’est un accès : donner l’adresse a raccorder, la section sera remplie d’éléments qui formeront une première proposition
- personnaliser l’offre dans la section : c’est à cette étape que vous pouvez modifier le début et l’engagement, a l’étape précédente c’est une offre “par défaut” qui vous a été proposé
- ajouter une autre section en reprenant à l’étape 2 (si nécessaire)
- soumettre le devis : on va faire des vérifications, et donner un prix aux éléments qui nécessite une quotation
- signer le devis
En voici un, à titre d’exemple. Dans cette page nous allons employer des termes en “français” et qui sont a associer à des objets “machine” dont le nom est anglicisé au sein de l’API, pour éviter des confusions nous vous invitons à consulter ce lexique en cas de doute
Commencer un devis
Trouver votre entité commerciale
$myClientLegalEntity = null;
foreach ($prizzTelecom->getClientLegalEntities()->getItems() as $clientLegalEntity) {
if ($clientLegalEntity->getName() == "My Company name") {
$myClientLegalEntity = $clientLegalEntity;
}
}
Note
Vous pouvez stocker l’id de cette entité, ce sera probablement un élément de configuration de votre côté. Il n’est pas nécessaire de le rechercher à chaque fois.
Faire un test d’éligibilité et sélectionner l’offre
On suppose qu’on veut souscrire un “L2 PREMIUM”. Première étape, on fait un test d’éligibilité.
$eligResult = $prizzTelecom->createEligibility(
"111 Rue Réaumur, 75002 Paris",
$myClientLegalEntity->getId()
);
On parcours les proposition de l’éligibilité pour ne retenir que le L2 PREMIUM. On récupère en passant l’id de l’offre et de la liste de prix.
$price_list_id = null;
$offer_id = null;
foreach ($eligResult->getResponses() as $response_id) {
$ret = $prizzTelecom->getEligibility($response_id);
foreach ($ret->getResponse() as $response) {
if ($response->getCode() == 'L2 PREMIUM') {
$price_list_id = $response->getPriceListId();
$offer_id = $response->getOfferId();
}
}
}
Choisir un contrat
Le ClientContract (contrat), c’est la glue entre un ClientLegalEntity (vous) et une PriceList. Il faut en choisir un pour commencer une section. A noter qu’il peut il y avoir plusieurs ClientContract pour la même PriceList pour avoir une liste de contacts personnalisés, différents profil de configuration de la porte de collecte.
$myContract = null;
foreach ($myClientLegalEntity->getContracts() as $contract) {
if ($contract->getPriceList()->getId() == $price_list_id) {
$myContract = $contract;
}
}
Créer le devis
Il faut fournir en plus de votre ID celui de l’entité légale, on peut le trouver sur la liste de prix.
$legalEntityId = $prizzTelecom->getPriceList($price_list_id)->getLegalEntity()->getId();
$commercialOffer = $prizzTelecom->createCommercialOffer(
[
"legalEntityId" => $legalEntityId,
"clientLegalEntityId" => $clientLegalEntity->getId()
]
);
Note
Vous pouvez stocker l’id de la legalEntity, ce sera probablement un élément de configuration de votre côté. Il n’est pas nécessaire de le rechercher à chaque fois.
Ajouter une section au devis
Les devis sont découpé en sections, ainsi vous pouvez commander plusieurs prestations dans le même devis. Chaque section est liée à un contrat, et à un nom. C’est ce nom qui sera présenté pour la facturation (vous disposez aussi d’un champ “référence client” que vous pourrez définir après validation du devis. Il faut également préciser à nouveau l’adresse du livraison du service. Un ultime test d’éligibilité est refait juste avant le remplissage de la section.
$sectionParams = (new CreateCommercialOfferSection())
->setClientContractId($myContract->getId())
->setName("My new final customer");
$eligAddress = new SetCommercialOfferSectionOfferEligibility();
$eligAddress->setAddress("111 Rue Réaumur, 75002 Paris");
$section = $prizzTelecom->createCommercialOfferSection(
$commercialOffer->getId(),
$sectionParams
);
$offerParam = new SetCommercialOfferSectionOffer();
$offerParam
->setOfferId($offer_id)
->setEligibility($eligAddress);
$prizzTelecom->setCommercialOfferSectionOffer(
$commercialOffer->getId(),
$section->getId(),
$offerParam
);
Après cet appel, vous obtenez un devis avec une offre de “base” que vous pouvez déjà consulter dans l’espace client. Vous pouvez la modifier en mettant à jour la section.
Personnalisation : choix du débit, de la durée d’engagement
$itemsParameters = new UpdateCommercialOfferSectionItems();
$itemsParameters ->setBandwidth('100'); // il s'agit du débit en mb/s
$itemsParameters ->setGrt('4HNO'); // c'est la GTR au format : délai en heures suivi de son type HO ou HNO (cf paramètres utiles)
$update_commercial_offer_section_items->setCommitment('12'); // c'est l'engagement en mois
//$update_commercial_offer_section_items->setExpress('7'); // certaines offres disposent d'une option Express en jours, permettant un raccordement plus rapide contre rémunération.
$prizzTelecom->updateCommercialOfferSectionItems(
$commercialOffer->getId(),
$section->getId(),
$itemsParameters
);
Vous pouvez retourner consulter le devis il doit être à jour.
Demander la validation du devis
Une fois que vous avez terminé les modifications du devis vous pouvez nous le soumettre.
$prizzTelecom->submitCommercialOffer($commercialOffer->getId());
Une fois validé par nos services, la procédure de signature sera lancée. Vous recevrez un code par mail pour confirmer la commande.
Attention
Attention : le contenu du devis peut avoir changé s’il y avait des éléments qui nécessitaient une estimation. Si vous voulez intégrer le mécanisme de signature vous pouvez valider le devis avec le code comme ceci :
$prizzTelecom->signCommercialOffer(
$commercialOffer->getId(),
(new SignCommercialOffer())->setCode("123456")
);