Google Spreadsheet Barcode informatie ophalen

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • DAX23E
  • Registratie: Maart 2012
  • Laatst online: 19:24
Ik wil in google spreadsheet barcodes toevoegen van voedsel producten. Op basis van de barcode moet dan informatie worden weergegeven zoals bijvoorbeeld de naam van het product, het merk en de hoeveelheid inhoud.

Ik heb al gevonden dat world.openfoodfacts.org bestaat die deze informatie over zo'n product kan weergeven. Als voorbeeld de 8717163821299 (Tomatensoep). Na online zoeken zou het moeten kunnen. Zie ook de volgende site https://openfoodfacts.github.io/openfoodfacts-server/api

Ik heb van alles geprobeerd, maar kom ik maar niet verder. Ook met Chatgpt geprobeerd, maar het wil niet lukken.

Is er iemand die mij verder kan helpen? Bijvoorbeeld door het zelf na te maken en na mij te sturen. Ik weet niet of ik de verkeerde code/ handeling gebruik of dat er iets niet wil lukken met de authenticatie die je moet verlenen.

Beste antwoord (via DAX23E op 22-10-2025 20:03)


  • dixet
  • Registratie: Februari 2010
  • Laatst online: 23:08
Het kan veel makkelijker. Vervang je script door
code:
1
2
3
4
5
6
7
function GetProductFromBarCode(barcode) {
  var url = "https://world.openfoodfacts.net/api/v2/product/" + encodeURIComponent(barcode);
  var response = UrlFetchApp.fetch(url);
  var data = JSON.parse(response.getContentText());

  return [[data.product.product_name, data.product.nutriments.carbohydrates_prepared]];
}

Hiermee heb je een nieuwe functie in je spreadsheet beschikbaar die je kan aanroepen met een barcode.
Als je een barcode in cel A2 heb staan zet je in B2
code:
1
=GetProductFromBarCode(A2)


met dit als resultaat:
Afbeeldingslocatie: https://tweakers.net/i/qXtJFZwSgsJYLonqPC4uF_0HeVU=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/7BevRNo0el63lQzNulH1jacM.png?f=user_large

De lijst achter "return" kan je aanvullen met alle elementen die je terug wilt zien. De elementen in je script behalve product_name zie ik niet in de API results, die heten vast anders.

[ Voor 5% gewijzigd door dixet op 22-10-2025 15:08 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • gambieter
  • Registratie: Oktober 2006
  • Niet online

gambieter

Just me & my cat

DAX23E schreef op donderdag 16 oktober 2025 @ 20:27:
Ik heb van alles geprobeerd, maar kom ik maar niet verder. Ook met Chatgpt geprobeerd, maar het wil niet lukken.
Beschrijf dan wat je geprobeerd hebt. Dit is nu nietszeggend, net als "chatGpt". Wees specifiek en informatief :)

I had a decent lunch, and I'm feeling quite amiable. That's why you're still alive.


Acties:
  • 0 Henk 'm!

  • DAX23E
  • Registratie: Maart 2012
  • Laatst online: 19:24
Ik heb de volgende code in Apps Script gedaan;

function onEdit(e) {
const sheet = e.source.getActiveSheet();
const col = e.range.columnStart;

// Controleer of we in kolom A zijn
if (col !== 1 || sheet.getName() !== "Blad1") return;

const barcode = e.range.getValue();
if (!barcode) return;

// OpenFoodFacts API
const url = `https://world.openfoodfacts.net/api/v2/product/${barcode}.json`;
const response = UrlFetchApp.fetch(url);
const data = JSON.parse(response.getContentText());

// Controleer of product gevonden is
if (data.status === 0) {
sheet.getRange(e.range.rowStart, 2, 1, 5).setValues([["Niet gevonden", "", "", "", ""]]);
return;
}

const product = data.product;

// Schrijf data naar de kolommen B–F
sheet.getRange(e.range.rowStart, 2, 1, 5).setValues([[
product.product_name || "",
product.brands || "",
product.categories || "",
product.quantity || "",
product.countries || ""
]]);

// Datum toegevoegd
sheet.getRange(e.range.rowStart, 7).setValue(new Date());
}


Maar als ik dan in spreadsheet op a1 of a2 dan de code scan, dan gebeurd er niks.

Acties:
  • 0 Henk 'm!

  • DAX23E
  • Registratie: Maart 2012
  • Laatst online: 19:24
Niemand die hierbij kan helpen?

Acties:
  • Beste antwoord
  • +2 Henk 'm!

  • dixet
  • Registratie: Februari 2010
  • Laatst online: 23:08
Het kan veel makkelijker. Vervang je script door
code:
1
2
3
4
5
6
7
function GetProductFromBarCode(barcode) {
  var url = "https://world.openfoodfacts.net/api/v2/product/" + encodeURIComponent(barcode);
  var response = UrlFetchApp.fetch(url);
  var data = JSON.parse(response.getContentText());

  return [[data.product.product_name, data.product.nutriments.carbohydrates_prepared]];
}

Hiermee heb je een nieuwe functie in je spreadsheet beschikbaar die je kan aanroepen met een barcode.
Als je een barcode in cel A2 heb staan zet je in B2
code:
1
=GetProductFromBarCode(A2)


met dit als resultaat:
Afbeeldingslocatie: https://tweakers.net/i/qXtJFZwSgsJYLonqPC4uF_0HeVU=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/7BevRNo0el63lQzNulH1jacM.png?f=user_large

De lijst achter "return" kan je aanvullen met alle elementen die je terug wilt zien. De elementen in je script behalve product_name zie ik niet in de API results, die heten vast anders.

[ Voor 5% gewijzigd door dixet op 22-10-2025 15:08 ]


Acties:
  • 0 Henk 'm!

  • DAX23E
  • Registratie: Maart 2012
  • Laatst online: 19:24
Bedankt! Dit werkt inderdaad. De rest van de informatie die ik zoek, daar kom ik wel verder mee.
Pagina: 1