Skip to content

Changelog

upcoming 6.8.0 [Planned March 2025]

Breaking change : Adding a product to the cart with tag restriction

Context : In Resamania, it is possible to restrict the items that a contact can add to their cart based on the tags that the contact has (see our official documentation).

These restrictions are detailed in the dedicated article available here

Before

Our API could, at times, allow these products to be added even if the contact did not have the tag. Our API only took into account the tags that the customer already had on their record, and not the tags that the products already in their cart would provide them with.

After

As soon as a product has a restriction by tag, it is systematically checked. Tags that an item A already in the cart would provide upon purchase are now taken into account to determine whether item B can be added.

WARNING

It is therefore possible that if you have not taken into account the tag restrictions on products, your additions to the baskets may throw up an error. It is also possible that when removing an item from the basket – if it had tags that other items depend on – these other items will also be automatically deleted.

6.7.0 [ February 2025]

Breaking change : WebWallet & Payable creation

WARNING

This change will happen overnight, we strongly recommend that you adapt your calls right now as the current API version already handle those fields

From now on, the clubCode and checkout properties will now be mandatory in both POST /payable_objects and POST /web_wallets requests.

json
{
  "contactId": "{{contactId}}",
  "amount": {{saleAmount}},
  "currency":"EUR",
  "clubId": "{{clubId}}",
  "clubCode": "{{clubCode}}", // Retrieved from club's entity `code` property
  "checkout":"{{checkoutId}}", // Retrieved from the GET /checkouts endpoint
  "payableObjects":{
    "sales":[
      "{{saleId}}"
    ]
  },
  "useAvailableAmount": false,
  "cancelUrl": "https://cancel.url",
  "validUrl": "https://valid.url"
}

6.5.0 [December 2025]

Breaking change : NetworkNodes representation change

The endpoint GET /network_nodes described in Working with chains will change in the 6.5.0 release planned mid-december 2025.

WARNING

This change will happen overnight, we strongly recommend that you adapt your calls in a way that they are able to handle both schemas depending on the one your receive, this way your integration won't break and you won't have to sync with our delivery window.

INFO

You will have the opportunity to view this new representation in action in early December (Starting Monday 8th)

The children property was a nested array, now it's a simple list of NetworkNodes IRIs

Before

You had to iterate on each children level do find the club's ones

json
{
    "@context": "\/demoapi\/contexts\/NetworkNode",
    "@id": "\/demoapi\/network_nodes",
    "@type": "hydra:Collection",
    "hydra:member": [
        {
            "@id": "\/demoapi\/network_nodes\/1433",
            "@type": "NetworkNode",
            "id": 1433,
            "name": "Siège",
            "alias": null,
            "type": "group",
            "clubId": null,
            "children": [
                {
                    "@id": "\/demoapi\/network_nodes\/1434",
                    "@type": "NetworkNode",
                    "id": 1434,
                    "name": "Franchisé",
                    "alias": null,
                    "type": "group",
                    "clubId": null,
                    "children": [
                        {
                            "@id": "\/demoapi\/network_nodes\/1436",
                            "@type": "NetworkNode",
                            "id": 1436,
                            "name": "Config Franchisés",
                            "alias": null,
                            "type": "franchise",
                            "clubId": null,
                            "children": [
                                {
                                    "@id": "\/demoapi\/network_nodes\/1438",
                                    "@type": "NetworkNode",
                                    "id": 1438,
                                    "name": "Arthémis",
                                    "alias": "arthemis",
                                    "type": "club",
                                    "clubId": "\/demoapi\/clubs\/1356",
                                    "children": []
                                },
                                {
                                    "@id": "\/demoapi\/network_nodes\/1439",
                                    "@type": "NetworkNode",
                                    "id": 1439,
                                    "name": "Bacchus",
                                    "alias": "bacchus",
                                    "type": "club",
                                    "clubId": "\/demoapi\/clubs\/1357",
                                    "children": []
                                },
                                // ...
                            ]
                        }
                    ]
                },
                // ...
            ]
        },
        {
            "@id": "\/demoapi\/network_nodes\/1434",
            "@type": "NetworkNode",
            "id": 1434,
            "name": "Franchisé",
            "alias": null,
            "type": "group",
            "clubId": null,
            "children": [
                {
                    //...
                }
            ]
        },
        //...
    ],
    // ...
}

After

All network-nodes are at the same root level, we know how is a children of who by reading the children array[<string>] property

json
{
    "@context": "\/demoapi\/contexts\/NetworkNode",
    "@id": "\/demoapi\/network_nodes",
    "@type": "hydra:Collection",
    "hydra:member": [
        {
            "@id": "\/demoapi\/network_nodes\/1433",
            "@type": "NetworkNode",
            "id": 1433,
            "name": "Siège",
            "alias": null,
            "type": "group",
            "clubId": null,
            "children": [
              "\/demoapi\/network_nodes\/1434"
              // ...
            ]
        },
        {
            "@id": "\/demoapi\/network_nodes\/1436",
            "@type": "NetworkNode",
            "id": 1436,
            "name": "Config Franchisés",
            "alias": null,
            "type": "franchise",
            "clubId": null,
            "children": [
              "\/demoapi\/network_nodes\/1438",
              "\/demoapi\/network_nodes\/1439"
              // ...
            ]
        }
        {
            "@id": "\/demoapi\/network_nodes\/1438",
            "@type": "NetworkNode",
            "id": 1438,
            "name": "Arthémis",
            "alias": "arthemis",
            "type": "club",
            "clubId": "\/demoapi\/clubs\/1356",
            "children": []
        },
        {
            "@id": "\/demoapi\/network_nodes\/1439",
            "@type": "NetworkNode",
            "id": 1439,
            "name": "Bacchus",
            "alias": "bacchus",
            "type": "club",
            "clubId": "\/demoapi\/clubs\/1357",
            "children": []
        },
        {
            "@id": "\/demoapi\/network_nodes\/1434",
            "@type": "NetworkNode",
            "id": 1434,
            "name": "Franchisé",
            "alias": null,
            "type": "group",
            "clubId": null,
            "children": [
                //...
            ]
        },
        //...
    ],
    // ...
}