Ik ben bezig met het opzetten van een webshop.. om zoveel mogelijk automatisch te doen kunnen we veel productgegevens van een leverancier verkrijgen via SOAP. Ik kan met een GetProductByName soapCall alle gegevens van een bepaald artikelnummer opvragen, en dan komt er een mooi stukje XML uitrollen met alle gegevens van dat product.
Daar staan echter nog geen verkoopprijzen in, omdat wij die zelf bepalen. We hebben deze echter wel al beschikbaar, zij het in een Excel-file (twee kollomen, één met het artikelnummer, het tweede met de prijs). Deze heb ik al omgezet naar een simpele .csv omdat daar beter mee te werken valt.
Wat ik dus wil doen, is de prijzen uit de csv-file toevoegen aan de XML die uit de SoapCall komt rollen. Tevens wil ik deze soapCall aan de hand van de Excel-file loopen om zo meerdere artikels tegelijk op te vragen. Dit laatste gaat al prima.
Op het toevoegen van de prijs als Element in de XML loop ik echter vast.
Als testcase heb ik een kleine .csv gemaakt met drie artikels:
De code die ik momenteel heb om de artikelgegevens uit op te halen ziet er momenteel zo uit:
Ik loop dus het .csv'tje, het artikelnummer wordt $productid, vervolgens vraag ik hier met de SoapCall de productgevens op. Dat gaat prima, ik krijg deze xml (verkleind als voorbeeld):
Nu wil ik dus de prijs, die ik uit het .csv haal en onder de php-var $productprice beschikbaar is, toevoegen als XML-element:
En hier heb ik dus geen flauw idee meer wat ik moet doen.
Ik begrijp dat ik de soap-verkregen XML anders zal moeten afvangen/printen dan met
zodat ik daar ergens iets tussen kan invullen, maar ik heb geen flauw idee hoe ik dit moet doen.
Met php ben ik tamelijk bekend maar dit is de eerste keer dat ik wat met Soap en XML doe. Heb al allerlei tutorials, manuals etc. op dit gebied doorgelezen maar heb de juiste dingen nog niet gevonden. Ook alle topics hier op GoT over Soap heb ik weinig aan.
Heb gezocht op vele combinaties van keywords soap, xml, php "insert xml element", "print soap xml".. Maar ben niks relevants tegengekomen. Gebruik dus waarschijnlijk niet de goede zoekwoorden maar dat komt dus waarschijnlijk omdat ik niet genoeg van de materie ken om de juiste keywords te kennen.
Iemand die me een handje kan helpen of een duwtje in de juiste richting kan geven?
Daar staan echter nog geen verkoopprijzen in, omdat wij die zelf bepalen. We hebben deze echter wel al beschikbaar, zij het in een Excel-file (twee kollomen, één met het artikelnummer, het tweede met de prijs). Deze heb ik al omgezet naar een simpele .csv omdat daar beter mee te werken valt.
Wat ik dus wil doen, is de prijzen uit de csv-file toevoegen aan de XML die uit de SoapCall komt rollen. Tevens wil ik deze soapCall aan de hand van de Excel-file loopen om zo meerdere artikels tegelijk op te vragen. Dit laatste gaat al prima.
Op het toevoegen van de prijs als Element in de XML loop ik echter vast.
Als testcase heb ik een kleine .csv gemaakt met drie artikels:
code:
1
2
3
| WS1070; 92,50 WS1080; 139,95 WS1170; 47,50 |
De code die ik momenteel heb om de artikelgegevens uit op te halen ziet er momenteel zo uit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| echo "<Catalog>"; $row = 1; $handle = fopen("test.csv", "r"); while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) { $productid = $data[0]; $productprice = $data[1]; $response = $client->__soapCall('GetProductByName', array( array( 'productName' => $productid, 'langCode' => 'nl' ) )); echo $response->GetProductByNameResult->any; //echo $productprice; } fclose($handle); echo "</Catalog>"; |
Ik loop dus het .csv'tje, het artikelnummer wordt $productid, vervolgens vraag ik hier met de SoapCall de productgevens op. Dat gaat prima, ik krijg deze xml (verkleind als voorbeeld):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <Catalog> <Product> <Id>370406</Id> <Name>WS1070</Name> <Description>DRAADLOOS WEERSTATION, DCF-KLOK, BUITENSENSOR</Description> </Product> <Product> <Id>374584</Id> <Name>WS1080</Name> <Description>WEERSTATION MET TOUCHSCREEN EN PC-AANSLUITING</Description> </Product> <Product> <Id>370356</Id> <Name>WS1170</Name> <Description>DRAADLOOS WEERSTATION MET DCF-KLOK EN BUITENSENSOR</Description> </Product> </Catalog> |
Nu wil ik dus de prijs, die ik uit het .csv haal en onder de php-var $productprice beschikbaar is, toevoegen als XML-element:
code:
1
2
3
4
5
6
| <Product> <Id>370356</Id> <Name>WS1170</Name> <Description>DRAADLOOS WEERSTATION MET DCF-KLOK EN BUITENSENSOR</Description> <Price>47,50</Price> </Product> |
En hier heb ik dus geen flauw idee meer wat ik moet doen.
Ik begrijp dat ik de soap-verkregen XML anders zal moeten afvangen/printen dan met
code:
1
| echo $response->GetProductByNameResult->any; |
zodat ik daar ergens iets tussen kan invullen, maar ik heb geen flauw idee hoe ik dit moet doen.
Met php ben ik tamelijk bekend maar dit is de eerste keer dat ik wat met Soap en XML doe. Heb al allerlei tutorials, manuals etc. op dit gebied doorgelezen maar heb de juiste dingen nog niet gevonden. Ook alle topics hier op GoT over Soap heb ik weinig aan.
Heb gezocht op vele combinaties van keywords soap, xml, php "insert xml element", "print soap xml".. Maar ben niks relevants tegengekomen. Gebruik dus waarschijnlijk niet de goede zoekwoorden maar dat komt dus waarschijnlijk omdat ik niet genoeg van de materie ken om de juiste keywords te kennen.
Iemand die me een handje kan helpen of een duwtje in de juiste richting kan geven?