Hej Kasper,
Tak for dit svar, og det lyder som en god løsning med PrestaShop og Google Shopping XML-feedet! Der er som @blomse siger mulighed for at bruge en løsning som Channable, det er dog dyrt på sigt da det koster minimum 400-500,- kr mdr.
En mulighed for at opsætte dette uden ekstra omkostninger kunne være ved at bruge Google Sheets sammen med Apps Script. Her er en overordnet forklaring på, hvordan du kan opsætte det:
Sådan fungerer løsningen: Hent feedet ind i Google Sheets:
Du kan opsætte et script i Google Sheets, som automatisk downloader hele feedet fra din leverandør én gang i døgnet. Feedet kan importeres via URL'en til XML-filen. Opret forbindelse til PrestaShop via API:
Ved hjælp af PrestaShops API kan du læse og opdatere lagerstatus for de matchende produkter. Dette kræver, at dine produkter har unikke varenumre (f.eks. SKU eller EAN), som kan bruges til at matche med XML-feedet. Opdater lagerstatus i PrestaShop:
Når feedet er importeret til Google Sheets, kan du skrive et script, der sammenligner varenummeret/EAN i feedet med dine produkter i PrestaShop og overskriver lagerstatus én gang i døgnet. Det tekniske setup: Importér feedet til Google Sheets:
Brug dette eksempel i Apps Script til at hente data fra din leverandør:
function importFeed() { var url = "URL_TIL_DIT_FEED"; // Indsæt link til XML-feedet var xml = UrlFetchApp.fetch(url).getContentText(); var document = XmlService.parse(xml); var items = document.getRootElement().getChildren("item"); // Afhænger af feed-strukturen var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Feed Data"); sheet.clear(); // Rydder tidligere data items.forEach(function(item, i) { sheet.getRange(i + 1, 1).setValue(item.getChildText("sku")); // Tilpas felter som SKU/EAN sheet.getRange(i + 1, 2).setValue(item.getChildText("quantity")); // Lagerstatus }); } Opsæt API-integration til PrestaShop:
PrestaShop har en indbygget API, som gør det muligt at opdatere produkter. Du skal først aktivere API’et i PrestaShops backoffice og få din nøgle. Brug Apps Script til at sende data tilbage til din webshop:
function updatePrestaShopStock() { var url = "dinwebshop/api/products/"; // Din PrestaShop API-url var apiKey = "DIN_API_KEY"; var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Feed Data"); var data = sheet.getDataRange().getValues(); data.forEach(function(row) { var sku = row[0]; // SKU fra feed var stock = row[1]; // Lagerstatus var productUrl = url + "?filter[reference]=" + sku; // Find produkt med SKU var headers = { "Authorization": "Basic " + Utilities.base64Encode(apiKey + ":") }; var response = UrlFetchApp.fetch(productUrl, { headers: headers }); var product = JSON.parse(response.getContentText()); if (product.products.length > 0) { var productId = product.products[0].id; var updateUrl = url + productId; var payload = { product: { id: productId, stock_availables: { quantity: stock } } }; UrlFetchApp.fetch(updateUrl, { method: "PUT", contentType: "application/json", headers: headers, payload: JSON.stringify(payload) }); } }); } Automatiser processen:
Brug Triggers i Google Apps Script til at køre begge scripts (import og opdatering) automatisk én gang i døgnet.
Forudsætninger: Dine varer skal have unikke varenumre (SKU/EAN), så feedet kan matches korrekt med PrestaShops produkter. Du skal have API-adgang aktiveret i PrestaShop med den nødvendige nøgle og rettigheder.
Denne løsning kræver lidt teknisk opsætning, men den er gratis at implementere og kan spare dig for både tid og penge på længere sigt. Hvis det lyder interessant, er du velkommen til at sige til.
Du kan sende mig en mail til mig med feed, og eventuelt et link til din shop, så vil jeg gerne se hvor hurtigt det eventuelt kan sættes op.
Håber dette hjælper dig godt på vej! 😊
Bedste hilsner, Mosel Studio
|