Mercadona ES - Product prices avatar

Mercadona ES - Product prices

Pricing

from $1.80 / 1,000 results

Go to Apify Store
Mercadona ES - Product prices

Mercadona ES - Product prices

Scrapes products and prices from the Mercadona online supermarket by search term, brand or category, for any Spanish postal code or warehouse.

Pricing

from $1.80 / 1,000 results

Rating

0.0

(0)

Developer

Giacomo Pigani

Giacomo Pigani

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Categories

Security

Limited permissions

Share

Mercadona Scraper

Scrapes products and prices from Mercadona's online supermarket. You can search the same way as on the website, filter by brand or category, or download the whole catalogue. Prices come from the warehouse that serves any Spanish postal code.

Input

Every parameter is optional. Give a search term or categories to scrape part of the catalogue, or leave both empty to get every product in the catalog. Without a postal code or warehouse, prices come from Mercadona's default warehouse, vlc1 (Valencia).

ParameterOptionsDescription
searchTerm(optional) Text to search forOne search, like the search box on the website. A phrase like leche condensada is searched as a whole. Returns the same products, in the same order, as the website, up to 100.
brands(optional) A brand, e.g. "Hacendado", or a list, e.g. ["Hacendado", "Campina"]Keeps only the search results of these brands. Capitalisation is ignored. Needs a search term.
categories(optional) Category or subcategory IDs, as strings, e.g. ["112"]Only these categories. A top-level category includes all its subcategories. With a search term, keeps only the results in these categories. Get the current list of IDs with the Mercadona Category IDs Actor.
postalCode(optional) 5-digit Spanish postal codeUses the warehouse that serves this postal code. Don't combine with warehouse.
warehouse(optional) Warehouse code, see WarehousesUses this warehouse. Don't combine with postalCode. The run fails if Mercadona doesn't serve the code.
language• es (Spanish, default)
• vai (Valencian)
• ca (Catalan)
• gl (Galician)
• eu (Basque)
• en (English)
• de (German)
Language of product and category names.
includeEan(optional) true (default) or falseWhether category and whole-catalogue rows include ean and brand, fetched from each product's page (one extra request per product). Set false for listings and prices only, much faster for a whole-catalogue run. Searches always include the EAN.

Example using a search query:

{
"searchTerm": "leche condensada",
"postalCode": "08012"
}

Example keeping only some brands:

{
"searchTerm": "leche condensada",
"brands": ["Campina", "Hacendado"]
}

Example using a category:

{
"categories": ["112"],
"warehouse": "bcn1"
}

Example to get all products for a postal code:

{
"postalCode": "08012"
}

Warehouses

CodeProvinces
alc1Alicante, Murcia
bcn1Barcelona
mad1Madrid
mad2Madrid
mad3Madrid
svq1Sevilla, Cádiz, Huelva
vlc1Valencia, Alicante, Castellón

Other regions use warehouses with numeric codes, for example 4391 for Bilbao (48001) or 4493 for Zaragoza (50001). For those, it's easiest to pass the postal code.

Output

  • Dataset: one item per product, as Mercadona returns it, plus subcategory and group (id and name). Every row carries ean and brand. Search results also carry search_term and more detail than category browsing: origin, suppliers, ingredients, allergens, photos and names in every language. A product listed in several places appears only once per run.
  • WAREHOUSE (key-value store): what was requested and which warehouse served the data, e.g. {"requested_postal_code": "08012", "requested_warehouse": null, "warehouse": "bcn1"}.
  • FAILED_REQUESTS (key-value store, only when some requests failed): the URL and error of each failed page. If any page failed, the run fails rather than returning an incomplete dataset as a success.

Product fields

Values come as Mercadona sends them. For example, prices are text such as "3.35". Fields inside an object are written with a dot, e.g. price_instructions.unit_price.

FieldDescription
idMercadona product ID.
display_nameProduct name, in the chosen language.
slug, share_urlURL slug and product page on tienda.mercadona.es.
thumbnailProduct image (300×300).
packagingHow it is sold, e.g. Bote, Paquete, Pack-6. Can be empty.
main_featureMercadona's short qualifier, e.g. 0% MG 0% azúcares añadidos. Often empty.
categoriesCategory rows: only the top-level category. Search rows: the full category path.
subcategory, groupSecond- and third-level category (id, name), added by the Actor.
publishedWhether the product is listed.
limitMost units per order. 999 means no practical limit.
unavailable_fromDate from which the product can no longer be delivered. Usually empty.
unavailable_weekdaysWeekdays the product can't be delivered (Mercadona's numbering). Usually empty.
badges.requires_age_checkAlcohol: the age is checked at delivery.
badges.is_waterBottled water.
brandBrand. In category browsing this and ean come from one extra request per product, so a whole-catalogue run makes about one request per product on top of the category pages.
eanEAN barcode. Can be empty for a few products.
is_new_arrivalCategory rows only: the product is in Mercadona's Novedades.
search_termSearch rows only: the search that returned the product.

Prices and sizes (price_instructions):

FieldDescription
unit_pricePrice in EUR of one sales unit, i.e. what goes in the cart. For products sold by weight, the price of the minimum amount.
previous_unit_priceThe previous price, when Mercadona shows one. Padded with spaces, e.g. " 1.40". Usually empty.
bulk_pricePrice per kg, litre or unit, rounded to cents.
reference_price, reference_formatThe shelf-label price per unit and its unit, e.g. "3.350" per kg.
unit_size, size_formatContent of one sales unit and its unit (kg, l, ud).
approx_sizeThe size is approximate (fresh products sold per piece).
is_pack, total_units, pack_size, unit_nameMultipacks, e.g. 8 units (ud.) of 0.125 kg, or 6 briks.
drained_weightDrained weight in kg, for tins and frozen products.
tax_percentageVAT rate: "4.000", "10.000" or "21.000".
selling_method0 sold by unit, 1 sold by weight (a few fresh products).
unit_selector, bunch_selector, min_bunch_amount, increment_bunch_amountHow the website lets you choose the quantity. For products sold by weight: the minimum and step, in kg.

Search rows only. The search returns the full product page:

FieldDescription
originCountry of origin.
is_bulk, is_variable_weightSold loose / sold by variable weight.
photosEvery product photo, each in zoom, regular and thumbnail size.
details.legal_name, details.descriptionLegal name and description.
details.suppliersSuppliers (name).
details.storage_instructions, details.usage_instructionsHow to store and use the product.
details.mandatory_mentions, details.danger_mentions, details.alcohol_by_volumeLegal mentions, hazard warnings and alcohol content.
details.is_prepared_by_mercadonaMade in Mercadona's stores or kitchens (bakery, Listo para Comer). It is not about own brands such as Hacendado. Can be empty.
nutrition_information.ingredients, nutrition_information.allergensIngredients and allergens, as HTML with allergens in <strong>.
translationsName and categories in every language (ca, en, eu, vai).

Fields not to trust. Mercadona sends these, but they are wrong or mostly empty. Figures are from the Barcelona catalogue (4,306 products):

  • price_instructions.price_decreased is always false, even for the 153 products whose previous_unit_price is higher than unit_price. Compare the two prices instead.
  • price_instructions.is_new is always false. Use is_new_arrival instead.
  • price_instructions.iva is empty for 3,118 products. Use tax_percentage instead.
  • status is always empty.