def METHOD_NAME(self, data):
    def boolcheck(lst):
        return tuple([elem for elem in lst if elem is not None])
    category_mapping = {
        obj["@id"]: boolcheck(
            obj.get("category", {}).get("categoryPath", [])
            + [obj.get("category", {}).get("name")]
            + [obj["name"]]
        )
        for obj in data["categories"].values()
    }
    return [
        {
            "code": obj["@id"],
            "name": obj["name"],
            "categories": category_mapping[obj["category"]["@id"]],
            "location": obj["location"]["name"] if "location" in obj else None,
            "exchanges": [],
            "unit": "",
            "type": "product",
        }
        for obj in data["flows"].values()
        if obj["flowType"] == "PRODUCT_FLOW"
    ]