Kortingscodefeeds integreren

Daisycon

de kortingscode feed van daisycon kan opgenomen worden als datafeed.

Export voorbereiden

kies in het actiecodes menu je media en zo je wilt landen en categorieen, selecteer ook het filter op 'aanmeld status' = goedgekeurd. Zoeken en dan de programma's selecteren. Kies ook het vinkje onderaan 'Nieuwe actiecodes automatisch toevoegen'. Ga naar het tab 'exporteren' en kies CSV en 'Kolom namen toevoegen' zet het vinkje 'external' aan. Nu krijg je de feed link die je in de component kunt gebruiken. Kies in de component als class 'CSV ; en "'

Feed gebruiken

De inhoud van de feed wijkt wat af van gewone datafeeds. Via de list/text velden onderin de configuratie f een callback filter kun je de description aanvullen met de code en datums.

Integratie met product feeds

Interessant wordt het om bij een product ook de actiecode van die aanbieder te tonen. Dit zou je kunnen doen via een custom mod_datamenu. Dat kan eenvoudig mits de naam in 'program name' binnen de kortingscode feed identiek is aan het veld 'naam' in de feed configuratie van de bijbehorende product feed.

 

 

 

Callback voorbeeld regio's

Een veel voorkomend probleem in feeds zijn de verschillende schrijfwijzen, bijvoorbeeld in reizen en vakantie feeds worden landen en regio's op verschillende wijzen geschreven.  Neem bijvoorbeeld

 

'Vierwaldstaettersee' versus 'Vierwoudstedenmeer' of 'Saasdal' en 'Saasdal Noord'

 

Bovenstaande zijn twee voorbeelden van veel voorkomende problemen in de vakantie feeds, verschillende schrijfwijzen voor hetzelfde, of varianten van regio's. zoals twee regio's die elkaar overlapen en die je wellicht toch als 1 wilt presenteren. Onderstaande script geeft een illustratie hoe deze twee problemen op te lossen zijn.

 

Read more: Callback voorbeeld regio's

Zelf datafeeds maken

Als een aanbieder geen eigen datafeeds aanbied kun je zelf een productlijst maken.

Als je handmatig te werk gaat is een CSV bestand maken het eenvoudigst. Je kunt een gewone editor gebruiken, of in een spreadsheet programma als excel werken.

De eersre regel van je CSV bestand zijn de namen van de velden. Die zie je dan later terug in de feed configuratie. Op de andere regels komen dan regel voor regel de waardes van de velden. Onderstaande een voorbeeld van Jambo Safari. De links komen uit de deeplinkgenerator. De afbeelding kun je zelf maken, hier is het de afbeelding uit  het aangeboden materiaal.

 

Read more: Zelf datafeeds maken

Automatische feed configuratie Daisycon

Deze functie is niet meer aanwezig. Feeds moeten handmatig aangemaakt worden.

Daisycon levert naast de productfeeds ook een feed van feeds. In deze feed staan alle feeds je je voor een bepaalde website kunt gebruiken. Hiermee is het dan mogelijk feeds half-automatisch te configureren.

In het admin gedeelte van de datafeeds component ( componenten->datafeeds) bevindt zich een tabblad 'Daisycon'. Hier verschijnt een lijst met alle beschikbare feeds. Door 1 of meerdere feeds te selecteren en op 'copy' te klikken wordt een nieuwe feed aangemaakt op basis van de gegevens in de feed van feeds.

Eigen feed voor feeds configureren

Ga naar daisycon meld je aan. Ga naar het menu Materiaal-> Productfeeds-> hulpmiddelen/tools.

 

Eventueel kun je een selectie maken uit de categorieën en standaarden.  De formaten doen er niet zoveel toe, de component past het formaat van de feed van feeds zelf aan. Kopieer de link

Ga op je joomla site naar componenten->feed of feeds ->daisycon en selecteer de 'voorkeuren/preferences'. Plak de  link in het te kleine hokje. Opslaan en daarna de pagina opnieuw laden. Als het goed is verschijnen nu jouw feeds.

 

Gebruik

in de lijst kun je 1 of meerdere feeds selecteren, met de 'kopiëren/copy' knop bovenaan kopieer je de feeds naar het actieve deel.

Na het kopiëren

De component probeert een aantal velden al voor je in te vullen. Hoe goed dit lukt is afhankelijk van de feed.

Controlleer de feed door op 'toepassen/apply' te klikken. Als het een werkende feed is zie je na verloop van tijd rechts voorbeeld data verschijnen. Let op : er is willeswaar een feed opgehaald maar de items zijn nog niet aan de database toegevoegd.

Controler de geselecteerde velden. Maak een keuze voor de groep: veld Select0

Zet de feed op aktief en sla deze op.

Importeer de data via de cron tab. Nu worden de items daadwerkelijk aan de database toegevoegd.

Opmerkingen

  • de feed van feeds wordt lokaal gecached. Als je voor nieuwe programma's bent goedgekeurt kan het even  (max 15 minuten) duren voordat je de wijzigingen ziet.
  • Ook bij Daisycon zelf zit er soms een vertraging in.
  • De feed van feeds is per site (media)
  • een slotje in het overzicht betekend dat je de feed al gebruikt.
  • de feed van feeds bevat soms ook feeds die het niet meer doen.
  • de feeds worden standaard op niet actief (unpublsihed) gezet.Controlleer een feed voordat je deze published

 

callback function xyz_cb not found

Kijk in de feeds-example.php en copier de relavante functie naar feeds.php

 

 

Daisycon feeds

Encoding

De feeds van daisycon zijn ISO-8859-15 gecodeerd. Voor XMLfiles gaat dit op php5 systemen niet goed, libxml ondersteunt het niet. Als het ophalen van xml feeds misgaat zet je Auto Encoding uit (nee/no) en vul je ISO-8859-1 (dus niet 15) in bij de encoding. Dit gaat meestal het best.

Feed generator

Eerdere problemen met de feed-url van daisycon zijn opgelost.

Gebruik de link bij  Download feed en niet de link uit de tekstbox.

Tip: Gebruik de feed van feeds

De updated feature?

De parser ondersteund de feature van daisycon om alleen de updated items te downloaden niet. Het algoritme van de import wordt daardoor een heel stuk ingewikkelder, de parser moet aardig overhoop en daisycon is de enige die deze feature op dit moment heeft. Er zijn dan ook geen plannen om het wel te ondersteunen.

 

 

 

 

Werken andere feeds ook ?

Kwestie van uitproberen. de parsers van tradetracker en affiliates zijn een goed punt om eens te proberen.

 

Voor te afwijkende feeds zoals bijvoorbeeld suncamp kan een custom parser toegevoegd worden. Er zijn wel basisvoorwaarden aan de structuur van de feed: de feed moet per item gerubriceerd zijn en niet op menu items.

 


 

 

 

Problemen met afbeeldingen

De feed bevat links naar niet bestaande afbeeldingen.

 

Tja, hier moet de eigenaar van de feed/website zijn huiswerk beter doen. De afbeelding wordt met een klein stukje inline javascript vervangen door een lege afbeelding.

 


 

Een eigen afbeelding.

De feed bevat geen afbeelding of je wilt altijd een eigen afbeelding weergeven. Dat kan met een callback function:

function noimage_cb (&$item) {
generic_cb($item);
$item['image']='https://www.example.com/noimage.jpg';
}
 

en bij de callback functie in de feed configuratie vervang je generic_cb dan door noimage_cb

 

 

 

Hoe krijg ik menu's items gelijk

Verschillende feeds gebruiken verschillende schrijfwijzen voor items 'Belgie' versus 'België' en 'LCD TV' versus 'LCD Televisie'. Het eerste probleem ( e versus ë) wordt in principe door de zogeheten collation van de database opgelost, maar het is toch netter het gelijk te trekken anders is er kans dat Belgie in plaats van België in de menu's komt. Andere problemen kunnen worden opgelost via een callback functie.  Een voorbeeld voor het aanpassen van landen:

Read more: Hoe krijg ik menu's items gelijk

Hoe krijg ik die rare tekens weg

Elke feed heeft een specifiek karakter codering. Als in de keten van het maken van de feed, het opsturen van de feed, ophalen van de feed, het parsen, het in de database zetten en het uiteindelijk weergeven in joomla iets fout gedaan wordt krijg je rare tekens waar umlauts of andere niet standaard tekens staan.

 

PHP4

Onder php4 is de automatische detectie van de codering door de parser niet goed, dat is een probleem van php en kan niet opgelost worden. Daarom wordt voor php4 de te verwachten codering altijd op UTF-8 gezet. Als de codering van de feed afwijkt (daisycon) (en dan is het meestal ISO-8859-1) moet je dat handmatig instellen in het feeds menu.

Codering CSV Bestanden

CSV bestanden bevatten geen coderings informatie. Hier moet je bij de aanbieder 'ISO-8859-1' als codering van de feed instellen, of ook hier 'Auto encoding' uitzetten en bij 'Encoding' 'UTF-8'

 

 

 

 

Read more: Hoe krijg ik die rare tekens weg

More Articles ...