Obtenir les prix d'une offre sans passer par un devis

Sur vos contrats vous avez accès à des listes de prix, celles-ci ne permettent pas à elles seule de calculer une offre parce qu’il existe des règles (exceptions) qui peuvent faire varier le prix. Jusque là, il fallait passer par la création d’un devis pour connaître le prix définitif (hors FAS a estimer).

Vous pouvez interroger notre API pour obtenir les combinaisons possible sur ces deux endpoint :

  • offers/{id}/contexts
  • offers/{id}/contexts/shortened

et tester votre combinaison d’items sur ce endpoint

  • offers/{id}/context

Obtenir l’ensemble des combinaisons possibles pour une offre

Pour utiliser ces routes ils vous suffit de passer l’identifiant d’une liste de prix, vous pouvez trouver cet identifiant en parcourant la liste de vos contrats en parcourant l’attribut contracts.

Comme il peut il y avoir beaucoup de combinaisons la réponse peut être volumineuse et peut lisible, c’est pourquoi vous pouvez aussi utiliser une version ou chaque proposition est résumée :

Les deux routes prennent les même arguments

Exemple

offers/{idOffre}/contexts?priceList={priceListId}

Les principal combinaisons pour nos offres

Offre Id offre priceList pour Prizz Infrastructures priceList pour Prizz Télécom
L2 PREMIUM 1 24 25
L2 BASIC 5 16 17
L3 INTERNET 4 29

A titre de comparaison, voici un élément de la version résumée

[{
        "offerId": 1,
        "isValid": false,
        "total": 9900,
        "totalWithoutNrc": 9900,
        "items_id": [71,149,73,115,105],
        "hasToEstimateProducts": false,
        "attributes": {
            "offer_type": 1,
            "bw_down": 10,
            "bw_down_guaranteed": 10,
            "bw_up_guaranteed": 10,
            "bw_up": 10,
            "national": 0,
            "commitment_months": 36,
            "construction_time_in_days": 42,
            "eligibility_string": "f1"
        }
	      
}]

et le même dans sa version longue

[{
        "offerId": 1,
        "isValid": false,
        "total": 9900,
        "totalWithoutNrc": 9900,
        "items": [
            {
                "priceListId": 24,
                "product": {
                    "productCode": "pl2",
                    "group": null,
                    "id": 3,
                    "name": "Liaison L2",
                    "attributes": {
                        "offer_type": 1
                    }
                },
                "commercialCode": "pl2",
                "description": "Liaison L2",
                "insideOfferOnly": true,
                "toEstimate": false,
                "active": true,
                "id": 71,
                "createDate": "2024-03-19T15:41:32+01:00",
                "lastModifiedDate": "2024-03-19T15:41:32+01:00",
                "name": "prizzl2",
                "unitPrice": 9900,
                "unitPriceStr": "99.00",
                "unit": null,
                "vat": "TVA_FR_NORMAL",
                "recurrence": "monthly"
            },
            {
                "priceListId": 24,
                "product": {
                    "productCode": "pl2_local",
                    "group": {
                        "type": "national",
                        "name": "national_L2 PREMIUM"
                    },
                    "id": 42,
                    "name": "Liaison L2 collecte locale",
                    "attributes": {
                        "national": 0
                    }
                },
                "commercialCode": "pl2_local",
                "description": "Porte de livraison locale : accès dans la même zone",
                "insideOfferOnly": true,
                "toEstimate": false,
                "active": true,
                "id": 149,
                "createDate": "2024-03-19T15:41:32+01:00",
                "lastModifiedDate": "2024-03-19T15:41:32+01:00",
                "name": "prizzl2_local",
                "unitPrice": 0,
                "unitPriceStr": "0.00",
                "unit": null,
                "vat": "TVA_FR_NORMAL",
                "recurrence": "monthly"
            },
            {
                "priceListId": 24,
                "product": {
                    "productCode": "pl2020",
                    "group": {
                        "type": "bandwidth",
                        "name": "bandwidth_L2 PREMIUM"
                    },
                    "id": 4,
                    "name": "Liaison L2 10Mbps",
                    "attributes": {
                        "bw_down": 10,
                        "bw_down_guaranteed": 10,
                        "bw_up_guaranteed": 10,
                        "bw_up": 10
                    }
                },
                "commercialCode": "pl2020",
                "description": "Débit 10Mb/s",
                "insideOfferOnly": true,
                "toEstimate": false,
                "active": true,
                "id": 73,
                "createDate": "2024-03-19T15:41:32+01:00",
                "lastModifiedDate": "2024-03-19T15:41:32+01:00",
                "name": "prizzl2020",
                "unitPrice": 0,
                "unitPriceStr": "0.00",
                "unit": null,
                "vat": "TVA_FR_NORMAL",
                "recurrence": "monthly"
            },
            {
                "priceListId": 24,
                "product": {
                    "productCode": "pl2_nrc_Z1B",
                    "group": {
                        "type": "nrc",
                        "name": "nrc_L2 PREMIUM"
                    },
                    "id": 25,
                    "name": "Liaison L2 FAS ZONE 1",
                    "attributes": {
                        "construction_time_in_days": 42,
                        "eligibility_string": "f1"
                    }
                },
                "commercialCode": "pl2_nrc_Z1B",
                "description": "FAS ZONE 1",
                "insideOfferOnly": true,
                "toEstimate": false,
                "active": true,
                "id": 115,
                "createDate": "2024-03-19T15:41:32+01:00",
                "lastModifiedDate": "2024-03-19T15:41:32+01:00",
                "name": "prizz Liaison L2 FAS ZONE 1",
                "unitPrice": 0,
                "unitPriceStr": "0.00",
                "unit": null,
                "vat": "TVA_FR_NORMAL",
                "recurrence": null
            },
            {
                "priceListId": 24,
                "product": {
                    "productCode": "pl2_cmt_36",
                    "group": {
                        "type": "commitment",
                        "name": "commitment_L2 PREMIUM"
                    },
                    "id": 20,
                    "name": "Liaison L2 Engagement 36 mois",
                    "attributes": {
                        "commitment_months": 36
                    }
                },
                "commercialCode": "pl2_cmt_36",
                "description": "Engagement 36 mois",
                "insideOfferOnly": true,
                "toEstimate": false,
                "active": true,
                "id": 105,
                "createDate": "2024-03-19T15:41:32+01:00",
                "lastModifiedDate": "2024-03-19T15:41:32+01:00",
                "name": "prizzLiaison L2 Engagement 36 mois",
                "unitPrice": 0,
                "unitPriceStr": "0.00",
                "unit": null,
                "vat": "TVA_FR_NORMAL",
                "recurrence": "monthly"
            }
        ]
    },
    ]

Tester directement une combinaison

Cette route vous permet de tester une combinaison pour une offre que vous formez vous même. Les éléments qui la compose doivent appartenir à la même liste de prix.

offers/1/context?items[]=121&items[]=536&items[]=73&items[]=71&items[]=113&items[]=149

{
    "offerId": 1,
    "isValid": true,
    "total": 104900,
    "totalWithoutNrc": 14900,
    "items": [
        {

L’attribut isValid de la réponse confirme que la combinaison que vous testez est correcte.

A savoir pour construire vos listes d’items

Chez nous, une offre, c’est un item de base associé à une liste d’items qui appartiennent à un groupe qui lui même correspond à un choix que l’on peut faire pour définir un accès. Par exemple, il y a un groupe pour la bande passante, un autre pour la durée d’engagement etc..

Lorsque vous consultez un item d’une liste de prix il faut regarder la clé product qui contient elle même une clé group

En règle général, chaque groupe doit contenir au moins un élément.

Listes des groupes par offre

L2 PREMIUM

type min max
bandwidth 1 1
commitment 1 1
express 0 1
grt 1 1
national 1 1
nrc 1 1

L2 BASIC

type min max
bandwidth 1 1
commitment 1 1
express 0 1
grt 1 1
nrc 1 1

L3 INTERNET

type min max
bandwidth 1 1
commitment 1 1
express 0 1
grt 1 1
nrc 1 1
subnet 1 1