Manage packages vehicles

Promotions Packs are listing packages for Car Dealers Agency Classifieds listings. In this tutorial you’ll learn how to get information about packages and also engage and activate a package. For a user to massively list as a car dealer through a business agreement, he/she should:
  • Set up the user as a car dealer.
  • Assign a listing package.
  • Engage a stand-out package (Optional - in MLB only).
NOTE: For testing purposes, you should send the test user to the support channel so that he/she is activated as car dealer.

Contents:

Query packages by category

The possible values for classifieds_promotion_packs categories are different each site. Possible values are: {site_id}1743: Car Dealer. For example, on Argentina, Car Dealer package category it’s MLA1743 while in Brazil it’s MLB1743 Make a GET to look for packages in an specific category:
curl -X GET https://api.mercadolibre.com/categories/{category_id}/classifieds_promotion_packs
Example
curl -X GET https://api.mercadolibre.com/categories/MLA1743/classifieds_promotion_packs
Response
[
  {
    "id": "MPAB",
    "category_id": "MLA1743",
    "brand": "MLMOTORS",
    "description": "Paquete 15 Básico",
    "price": 819.17,
    "package_type": "rotary",
    "package_content": "publications",
    "duration": 30,
    "status": "active",
    "charge_type_id": "CCAA",
    "max_upgrades": 0,
    "quota_type": "reusable",
    "listing_details": [
      {
        "listing_type_id": "silver",
        "available_listings": 15
      }
    ]
  },
  {
    "id": "MPAE",
    "category_id": "MLA1743",
    "brand": "MLMOTORS",
    "description": "Paquete 15 Especial",
    "price": 1157.97,
    "package_type": "rotary",
    "package_content": "publications",
    "duration": 30,
    "status": "active",
    "charge_type_id": "CCAS",
    "max_upgrades": 0,
    "quota_type": "reusable",
    "listing_details": [
      {
        "listing_type_id": "gold",
        "available_listings": 5
      },
      {
        "listing_type_id": "silver",
        "available_listings": 10
      }
    ]
  },
  {
    "id": "MPAP",
    "category_id": "MLA1743",
    "brand": "MLMOTORS",
    "description": "Paquete 15 Premium",
    "price": 1629.87,
    "package_type": "rotary",
    "package_content": "publications",
    "duration": 30,
    "status": "active",
    "charge_type_id": "CCAR",
    "max_upgrades": 0,
    "quota_type": "reusable",
    "listing_details": [
      {
        "listing_type_id": "silver",
        "available_listings": 8
      },
      {
        "listing_type_id": "gold",
        "available_listings": 6
      },
      {
        "listing_type_id": "gold_premium",
        "available_listings": 1
      }
    ]
  },
  {
    "id": "MPBB",
    "category_id": "MLA1743",
    "brand": "MLMOTORS",
    "description": "Paquete 30 Básico",
    "price": 1242.67,
    "package_type": "rotary",
    "package_content": "publications",
    "duration": 30,
    "status": "active",
    "charge_type_id": "CCBA",
    "max_upgrades": 0,
    "quota_type": "reusable",
    "listing_details": [
      {
        "listing_type_id": "silver",
        "available_listings": 30
      }
    ]
  },
  {
    "id": "MPBE",
    "category_id": "MLA1743",
    "brand": "MLMOTORS",
    "description": "Paquete 30 Especial",
    "price": 1617.77,
    "package_type": "rotary",
    "package_content": "publications",
    "duration": 30,
    "status": "active",
    "charge_type_id": "CCBS",
    "max_upgrades": 0,
    "quota_type": "reusable",
    "listing_details": [
      {
        "listing_type_id": "gold",
        "available_listings": 10
      },
      {
        "listing_type_id": "silver",
        "available_listings": 20
      }
    ]
  },
  {
    "id": "MPBP",
    "category_id": "MLA1743",
    "brand": "MLMOTORS",
    "description": "Paquete 30 Premium",
    "price": 2246.97,
    "package_type": "rotary",
    "package_content": "publications",
    "duration": 30,
    "status": "active",
    "charge_type_id": "CCBR",
    "max_upgrades": 0,
    "quota_type": "reusable",
    "listing_details": [
      {
        "listing_type_id": "silver",
        "available_listings": 16
      },
      {
        "listing_type_id": "gold_premium",
        "available_listings": 2
      },
      {
        "listing_type_id": "gold",
        "available_listings": 12
      }
    ]
  },
  {
    "id": "MPCB",
    "category_id": "MLA1743",
    "brand": "MLMOTORS",
    "description": "Paquete 300 Básico",
    "price": 2839.87,
    "package_type": "rotary",
    "package_content": "publications",
    "duration": 30,
    "status": "active",
    "charge_type_id": "CCEA",
    "max_upgrades": 0,
    "quota_type": "reusable",
    "listing_details": [
      {
        "listing_type_id": "silver",
        "available_listings": 300
      }
    ]
  },
  {
    "id": "MPCE2",
    "category_id": "MLA1743",
    "brand": "MLMOTORS",
    "description": "Paquete 300 Especial",
    "price": 5526.07,
    "package_type": "rotary",
    "package_content": "publications",
    "duration": 30,
    "status": "active",
    "charge_type_id": "CCES",
    "max_upgrades": 300,
    "quota_type": "reusable",
    "listing_details": [
      {
        "listing_type_id": "gold",
        "available_listings": 90
      },
      {
        "listing_type_id": "silver",
        "available_listings": 210
      }
    ]
  },
  {
    "id": "MPCP2",
    "category_id": "MLA1743",
    "brand": "MLMOTORS",
    "description": "Paquete 300 Premium",
    "price": 11200.97,
    "package_type": "rotary",
    "package_content": "publications",
    "duration": 30,
    "status": "active",
    "charge_type_id": "CCER",
    "max_upgrades": 300,
    "quota_type": "reusable",
    "listing_details": [
      {
        "listing_type_id": "silver",
        "available_listings": 180
      },
      {
        "listing_type_id": "gold",
        "available_listings": 95
      },
      {
        "listing_type_id": "gold_premium",
        "available_listings": 25
      }
    ]
  },
  {
    "id": "MPDB",
    "category_id": "MLA1743",
    "brand": "MLMOTORS",
    "description": "Paquete 60 Básico",
    "price": 1424.17,
    "package_type": "rotary",
    "package_content": "publications",
    "duration": 30,
    "status": "active",
    "charge_type_id": "CCCA",
    "max_upgrades": 0,
    "quota_type": "reusable",
    "listing_details": [
      {
        "listing_type_id": "silver",
        "available_listings": 60
      }
    ]
  },
  {
    "id": "MPDE",
    "category_id": "MLA1743",
    "brand": "MLMOTORS",
    "description": "Paquete 60 Especial",
    "price": 2162.27,
    "package_type": "rotary",
    "package_content": "publications",
    "duration": 30,
    "status": "active",
    "charge_type_id": "CCCS",
    "max_upgrades": 0,
    "quota_type": "reusable",
    "listing_details": [
      {
        "listing_type_id": "gold",
        "available_listings": 20
      },
      {
        "listing_type_id": "silver",
        "available_listings": 40
      }
    ]
  },
  {
    "id": "MPDP",
    "category_id": "MLA1743",
    "brand": "MLMOTORS",
    "description": "Paquete 60 Premium",
    "price": 3529.57,
    "package_type": "rotary",
    "package_content": "publications",
    "duration": 30,
    "status": "active",
    "charge_type_id": "CCCR",
    "max_upgrades": 0,
    "quota_type": "reusable",
    "listing_details": [
      {
        "listing_type_id": "silver",
        "available_listings": 32
      },
      {
        "listing_type_id": "gold_premium",
        "available_listings": 4
      },
      {
        "listing_type_id": "gold",
        "available_listings": 24
      }
    ]
  },
  {
    "id": "MPEB",
    "category_id": "MLA1743",
    "brand": "MLMOTORS",
    "description": "Paquete 100 Básico",
    "price": 2029.17,
    "package_type": "rotary",
    "package_content": "publications",
    "duration": 30,
    "status": "active",
    "charge_type_id": "CCDA",
    "max_upgrades": 0,
    "quota_type": "reusable",
    "listing_details": [
      {
        "listing_type_id": "silver",
        "available_listings": 100
      }
    ]
  },
  {
    "id": "MPEE2",
    "category_id": "MLA1743",
    "brand": "MLMOTORS",
    "description": "Paquete 100 Especial",
    "price": 3118.17,
    "package_type": "rotary",
    "package_content": "publications",
    "duration": 30,
    "status": "active",
    "charge_type_id": "CCDS",
    "max_upgrades": 300,
    "quota_type": "reusable",
    "listing_details": [
      {
        "listing_type_id": "gold",
        "available_listings": 30
      },
      {
        "listing_type_id": "silver",
        "available_listings": 70
      }
    ]
  },
  {
    "id": "MPEP2",
    "category_id": "MLA1743",
    "brand": "MLMOTORS",
    "description": "Paquete 100 Premium",
    "price": 5271.97,
    "package_type": "rotary",
    "package_content": "publications",
    "duration": 30,
    "status": "active",
    "charge_type_id": "CCDR",
    "max_upgrades": 300,
    "quota_type": "reusable",
    "listing_details": [
      {
        "listing_type_id": "gold",
        "available_listings": 30
      },
      {
        "listing_type_id": "silver",
        "available_listings": 60
      },
      {
        "listing_type_id": "gold_premium",
        "available_listings": 10
      }
    ]
  }
]

Query listing packages engaged by a user

Bear in mind that there are currently two models: 1 - Plain package to list in a single display, and the option to engage a stand-out package to increase the display on demand (available in MLB only) 2- Mixed package with various display quotas, e.g., silver, golden and golden_premium, where a display increase or reduction is achieved by finishing the listing and re-listing (available in the remaining sites).
curl -X GET https://api.mercadolibre.com/users/{user_id}/classifieds_promotion_packs?access_token=$ACCESS_TOKEN;
Example
curl -X GET https://api.mercadolibre.com/users/135146148/classifieds_promotion_packs?access_token=$ACCESS_TOKEN;
Response:
[
    {
     "id": 754985,
     "user_id": "135146148",
     "promotion_pack_id": "MPAB",
     "category_id": "MLU1743",
     "description": "Paquete 15 Básico",
     "package_type": "rotary",
     "status": "active",
     "date_created": "2013-05-23T15:34:48.498-04:00",
     "date_start": "2013-05-23T15:34:47.544-04:00",
     "date_expires": "2013-06-22T15:34:47.544-04:00",
     "date_stopped": null,
     "last_updated": "2013-05-23T15:35:48.211-04:00",
     "engagement_type": "none",
     "charge_id": 822129921,
     "remaining_listings": 15,
     "used_listings": 0,
     "listing_details": [
        {
           "listing_type_id": "silver",
           "available_listings": 15,
           "used_listings": 0,
           "remaining_listings": 15
        }
     ]
    }
]

Query stand-out packages engaged by a user

Bear in mind that stand-out packages are available for MLB only. Based on the display level desired for your items, you may engage different stand-out packages. For more information please see the following tutorial.
curl -X GET https://api.mercadolibre.com/users/{user_id}/classifieds_promotion_packs?package_content=upgrades&status=active&access_token=$ACCESS_TOKEN;
Response
[
    {
        "id": 1584151,
        "user_id": "XXXXXX",
        "promotion_pack_id": "IPUPGGP5INT",
        "category_id": "MLA1459",
        "brand": "MLREALESTATE",
        "description": "5 Destaques Oro Premium Interior",
        "package_type": "rotary",
        "status": "active",
        "date_created": "2017-08-31T09:08:29.124-04:00",
        "date_start": "2017-08-31T09:08:29.113-04:00",
        "date_expires": "2017-09-30T09:08:29.113-04:00",
        "date_stopped": null,
        "last_updated": "2017-08-31T09:25:57.860-04:00",
        "engagement_type": "none",
        "package_content": "upgrades",
        "charge_id": 3152387845,
        "bonus_id": null,
        "remaining_listings": 0,
        "used_listings": 5,
        "quota_type": "reusable",
        "next_promotion_pack_id": null,
        "parent_promotion_pack_id": null,
        "listing_details": [
            {
                "listing_type_id": "gold_premium",
                "available_listings": 5,
                "used_listings": 5,
                "remaining_listings": 0
            }
        ]
    },
    {
        "id": 1584150,
        "user_id": "XXXXXX",
        "promotion_pack_id": "IPUPGG5INT",
        "category_id": "MLA1459",
        "brand": "MLREALESTATE",
        "description": "5 Destaques Oro Interior",
        "package_type": "rotary",
        "status": "active",
        "date_created": "2017-08-31T09:08:28.752-04:00",
        "date_start": "2017-08-31T09:08:28.742-04:00",
        "date_expires": "2017-09-30T09:08:28.742-04:00",
        "date_stopped": null,
        "last_updated": "2017-08-31T09:25:57.747-04:00",
        "engagement_type": "none",
        "package_content": "upgrades",
        "charge_id": 3152387844,
        "bonus_id": null,
        "remaining_listings": 0,
        "used_listings": 5,
        "quota_type": "reusable",
        "next_promotion_pack_id": null,
        "parent_promotion_pack_id": null,
        "listing_details": [
            {
                "listing_type_id": "gold",
                "available_listings": 5,
                "used_listings": 5,
                "remaining_listings": 0
            }
        ]
    }
]

Resource description

attribute description
id unique package identifier.
user_id unique id of the user who engaged the package.
category_id Package category.
description package name.
package_type: package detail.
status package status possible values are: active: the user can use this package to list. An available_listing will be discounted when he does. pending: the package it’s not active yet. finished: expired package.
date_created date the package was created.
date_start: date the package was activated.
date_expires date the package expires.
date_stopped date the package was finished.
last_updated last time the package was updated.
engagement_type Possible values are: “none”: The package was engaged for one time. “re-engagement”: When the package expires, a similar package_type will be re engaged automatically.
charge_id unique id of the charge generated over the engagement of the package.
listing_details detailed information about listing types and availability.
listing_type_id listing_type associated to the package.
available_listings amount of listings the user gets with the package.
used_listings already spent listings.
remaining_listings available listings left.

Verify if a user has a specific listing_type available

curl -X GET https://api.mercadolibre.com/users/{user_id}/classifieds_promotion_packs/silver?access_token=$ACCESS_TOKEN

Item stand-out

To stand out a listing you should make the following post (only MLB). Bear in mind that in order to perform this action, the user should have previously engaged a stand-out package:
POST https://api.mercadolibre.com/items/{item_id}/listing_type?access_token=$ACCESS_TOKEN
Example
curl -X POST 'https://api.mercadolibre.com/items/MLA111111111/listing_type?access_token=$ACCESS_TOKEN' -d '{"id":"listing_type"}'
Response
{
  "id": "MLA111111111",
  "site_id": "MLA",
  "title": "Test 10 No Ofertar",
  "subtitle": null,
  "seller_id": 184854440,
  "category_id": "MLA24337",
  "official_store_id": null,
  "price": 100,
  "base_price": 100,
  "original_price": null,
  "currency_id": "ARS",
  "initial_quantity": 1,
  "available_quantity": 1,
  "sold_quantity": 0,
  "sale_terms": [
  ],
  "buying_mode": "classified",
  "listing_type_id": "gold",
  "start_time": "2017-12-22T19:48:46.000Z",
  "stop_time": "2018-01-25T16:07:12.000Z",
  "condition": "used",
  "permalink": "http://auto.mercadolibre.com.ar/MLA-563940625-test-10-no-ofertar-_JM",
  "thumbnail": "http://mla-s1-p.mlstatic.com/808917-MLA26557857454_122017-I.jpg",
  "secure_thumbnail": "https://mla-s1-p.mlstatic.com/808917-MLA26557857454_122017-I.jpg",
  "pictures": [
    {
      "id": "808917-MLA26557857454_122011",
      "url": "http://mla-s1-p.mlstatic.com/808917-MLA26557857454_122017-O.jpg",
      "secure_url": "https://mla-s1-p.mlstatic.com/808917-MLA26557857454_122017-O.jpg",
      "size": "500x375",
      "max_size": "1024x768",
      "quality": ""
    }
      ],
  "video_id": null,
  "descriptions": [
    {
      "id": "MLA698666322-1525861980"
    }
  ],
  "accepts_mercadopago": true,
  "non_mercado_pago_payment_methods": [
  ],
  "shipping": {
    "mode": "not_specified",
    "methods": [
    ],
    "tags": [
    ],
    "dimensions": null,
    "local_pick_up": false,
    "free_shipping": false,
    "logistic_type": "not_specified",
    "store_pick_up": false
  },
  "international_delivery_mode": "none",
  "seller_address": {
    "comment": "",
    "address_line": "test 2581",
    "zip_code": "5001",
    "city": {
      "id": "TUxBQ0NBUGNiZGQx",
      "name": "Córdoba"
    },
    "state": {
      "id": "AR-X",
      "name": "Córdoba"
    },
    "country": {
      "id": "AR",
      "name": "Argentina"
    },
    "search_location": {
      "neighborhood": {
        "id": "TUxBQk9UUjI3MjVa",
        "name": ""
      },
      "city": {
        "id": "TUxBQ0NBUGNiZGQx",
        "name": "Córdoba"
      },
      "state": {
        "id": "TUxBUENPUmFkZGIw",
        "name": "Córdoba"
      }
    },
    "latitude": -31.386787,
    "longitude": -64.21307,
    "id": 177301981
  },
  "seller_contact": {
    "contact": "",
    "other_info": "",
    "area_code": "",
    "phone": "",
    "area_code2": "",
    "phone2": "",
    "email": "",
    "webpage": ""
  },
  "location": {
    "address_line": "test 2581",
    "zip_code": "",
    "neighborhood": {
      "id": "",
      "name": ""
    },
    "city": {
      "id": "TUxBQ0NBUGNiZGQx",
      "name": "Córdoba"
    },
    "state": {
      "id": "TUxBUENPUmFkZGIw",
      "name": "Córdoba"
    },
    "country": {
      "id": "AR",
      "name": "Argentina"
    },
    "open_hours": "",
    "latitude": -34.48755,
    "longitude": -58.56987
  },
  "geolocation": {
    "latitude": -34.48755,
    "longitude": -58.56987
  },
  "coverage_areas": [
  ],
  "attributes": [
    {
      "id": "COLOR",
      "name": "Color",
      "value_id": "52055",
      "value_name": "Blanco",
      "value_struct": null,
      "attribute_group_id": "ADICIONALES",
      "attribute_group_name": "Adicionales"
    },
    {
      "id": "STEERING",
      "name": "Dirección",
      "value_id": "370873",
      "value_name": "Asistida",
      "value_struct": null,
      "attribute_group_id": "ADICIONALES",
      "attribute_group_name": "Adicionales"
    },
    {
      "id": "TRACTION_CONTROL",
      "name": "Control de tracción",
      "value_id": null,
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "ADICIONALES",
      "attribute_group_name": "Adicionales"
    },
    {
      "id": "HAS_AIR_CONDITIONING",
      "name": "Aire acondicionado",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "CONFORT",
      "attribute_group_name": "Confort"
    },
    {
      "id": "HAS_LEATHER_UPHOLSTERY",
      "name": "Tapizado de cuero",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "CONFORT",
      "attribute_group_name": "Confort"
    },
    {
      "id": "HAS_ISOFIX",
      "name": "Sistema ISOFIX",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "DFLT",
      "attribute_group_name": "Otros"
    },
    {
      "id": "HAS_ONBOARD_COMPUTER",
      "name": "Computadora de abordo",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "EQUIPAMIENTO",
      "attribute_group_name": "Equipamiento"
    },
    {
      "id": "BRAND",
      "name": "Marca",
      "value_id": "75966",
      "value_name": "Mercedes Benz",
      "value_struct": null,
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "DOORS",
      "name": "Puertas",
      "value_id": null,
      "value_name": "4",
      "value_struct": null,
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "FUEL_TYPE",
      "name": "Tipo de combustible",
      "value_id": "64364",
      "value_name": "Nafta",
      "value_struct": null,
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "KILOMETERS",
      "name": "Kilómetros",
      "value_id": null,
      "value_name": "180000 km",
      "value_struct": {
        "number": 180000,
        "unit": "km"
      },
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "MODEL",
      "name": "Modelo",
      "value_id": "503625",
      "value_name": "Clase C",
      "value_struct": null,
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "TRANSMISSION",
      "name": "Transmisión",
      "value_id": "370876",
      "value_name": "Automática",
      "value_struct": null,
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "TRIM",
      "name": "Versión",
      "value_id": null,
      "value_name": "250 CGI BLUEEFFICIENCY AVANTGARDE AUT",
      "value_struct": null,
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "VEHICLE_BODY_TYPE",
      "name": "Tipo",
      "value_id": "452758",
      "value_name": "Sedán",
      "value_struct": null,
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "VEHICLE_TYPE",
      "name": "Tipo de vehículo",
      "value_id": "398351",
      "value_name": "Autos y camionetas",
      "value_struct": null,
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "VEHICLE_YEAR",
      "name": "Año",
      "value_id": null,
      "value_name": "2011",
      "value_struct": null,
      "attribute_group_id": "FIND",
      "attribute_group_name": "Ficha técnica"
    },
    {
      "id": "HAS_ABS_BRAKES",
      "name": "Frenos ABS",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "SECURITY",
      "attribute_group_name": "Seguridad"
    },
    {
      "id": "HAS_CURTAIN_AIRBAG",
      "name": "Airbag de cortina",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "SECURITY",
      "attribute_group_name": "Seguridad"
    },
    {
      "id": "HAS_FRONT_FOGLIGHTS",
      "name": "Faros antinieblas delanteros",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "SECURITY",
      "attribute_group_name": "Seguridad"
    },
    {
      "id": "HAS_RAIN_SENSOR",
      "name": "Sensor de lluvia",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "SECURITY",
      "attribute_group_name": "Seguridad"
    },
    {
      "id": "HAS_SIDE_IMPACT_AIRBAG",
      "name": "Airbag laterales",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "SECURITY",
      "attribute_group_name": "Seguridad"
    },
    {
      "id": "HAS_STABILITY_CONTROL",
      "name": "Control de estabilidad",
      "value_id": "242085",
      "value_name": "Sí",
      "value_struct": null,
      "attribute_group_id": "SECURITY",
      "attribute_group_name": "Seguridad"
    }
  ],
  "warnings": [
  ],
  "listing_source": "",
  "variations": [
  ],
  "status": "active",
  "sub_status": [
  ],
  "tags": [
    "only_html_description"
  ],
  "warranty": null,
  "catalog_product_id": "MLA8689901",
  "domain_id": "MLA-CARS_AND_VANS",
  "parent_item_id": null,
  "differential_pricing": null,
  "deal_ids": [
  ],
  "automatic_relist": false,
  "date_created": "2017-12-22T19:48:47.000Z",
  "last_updated": "2017-12-27T01:24:54.000Z"
}

Next: Categories & attributes

Be part of our community