Preparation

for webgains a username and password are required to download the feeds. It's best to add an extra user for this. Follow the link 'Manage Users' under 'Account' in the menu bar. Pick a nice username and password and select the access level 'none ( no login)'

 

The following pages will depict the setup of a complete joomla affiliatefeeds site The result will be best4shopping.co.uk

The description is for a site with two groups :

fashion and accommodation with each two feeds.

 

Er zijn scenarios denkbaar waar je slechts een deel van het aanbod uit een feed wilt gebruiken, bijvoorbeeld omdat je een site specifiek gericht hebt op een onderwerp. In dit forum bericht staat een korte beschrijving van een mogelijk filter. Dit artikel beschrijft het wat uitgebreider. Globaal zijn er twee mogelijklheden

  1. Door middel van een callback functie items die je niet wilt opnemen wegfilteren.
  2. Alles importeren en het menu gebruiken als filter

Hieronder een beschrijving van de methodes aan de hand van voorbeelden.

Algemene configuratie van de feed en menu

Stel we hebben een site over 'wijn' en willen daarbij een lijst met  boeken over  wijn  weergeven.

Allereerst met er een leverancier met een geschikte feed gevonden worden. Daisycon bijvoorbeeld heeft boek.net en bruna met datafeeds in het programma zitten. De feed van boek.net is megagroot bevat veel niet gerelateerde producten en bovenal bevat geen rubricering, we kunnen dus niet bepalen welke boeken in de rubriek 'wijn' thuishoren.

De feed van bruna is hanteerbaarder in heeft ook een rubricering waar we wellicht iets me kunnen. Bij de invoer van de feed is het ivm de performance verstandig het csv formaat te kiezen. In de ruwe data zien we dat het veld category gevuld is met termen als 'boek' en 'ebook' geen nuttige info voor onze filter akties. De sub_category bevat echter wel termijn die nuttig zijn. In de field selectie nemen we dan ook de sub_category als 'Select 1', voor 'Select 0' is dan Boeken een voor de hand liggende keuze.

Met een import wordt nu de complete datafeed  ingeladen.

Maak een nieuw menu item aan om de boeken weer te geven. Voer bij 'Main Selection' het Select 0 in met als parameter Boeken

Het menu zal nu alle boeken uit de database weergeven. Als je het menu op de front end bekijkt zie je een enorm lange lijst, dit komt deels doordat er veel rubrieken 'Engelstalig' zijn, m.b.v. van de callback functie die we toch gaan maken kunnen we de Engelse boeken een niveau lager zetten (zie script aan einde van de pagina).

Na een nieuwe import is de lijst korten en zien we er een rubriek 'Wijn en Dranken' is. Dit zijn de boeken waar we in geïnteresseerd zijn. Om het wat fraaier te maken herschrijven we de naam naar Wijn in de callback functie. De indeling bij Bruna is niet fijner dan 'Wijn en dranken'. Het is dus niet goed mogelijk alleen de wijn boeken eruit te filteren. Wel zou je in de titel kunnen gaan zoeken naar termen die niets met wijn te maken hebben zoals Wiskey.

Filteren in het menu

Zoals beschreven in de inleiding kunnen we nu verschillende kanten op:filteren van de items bij de import d.m.v. een callback  filteren met het menu.

Eerst het tweede geval, filteren met het menu. Onder het Advenced tab is een tweede filter. Hier kunnen we dan filteren op Select1 met als keuze Wijn ( als er alleen datafeeds met boeken zijn kun je ook het eerste filter op boeken laten vervallen en daar Select1 -> Wijn van maken)

Het idee van bovenstaande opzet is dat je twee menu's aanmaakt, eentje met de wijn boeken, en daaronder een menu met alle boeken, je bent toch al bezig met importeren en dan zou je kunnen overwegen die items ook maar te laten zien.

de boeken demo site demonstreert dit (in een andere volgorde), hoofdmenu is 'boeken' submenu is wijn. Daarbij zit ook nog een sub-menu naar het bier. Dit is een deeplink binnen het boeken menu. Dat is de derde mogelijkheid om te selecteren: maak een menu item aan op een onopvallende plek ( of in een onzichtbaar menu) en maak dan in het hoofdmenu een deeplink-menuitem ( externe link) aan.

Filteren bij de import

In het geval dat je de overige boeken helemaal niet wilt importeren kun je ze ook volledige weg filteren door in de callback functie het item te wissen.

de callback functie bruna2_cb verzorgt dit. Dit script filtert alle boeken uit de rubrieken met de term wijn of bier. Daarnaast kijkt het in de titel van de boeken naar bekende drank termen of zelf subrubrieken te maken.

drank boeken demo

 

Meer feeds

als je nog andere (boeken) feeds gaat toevoegen kun je stukken van de callback gaan hergebruiken. voorbeeld hiervan is het stukje 'hernoem_drank in onderstaand voorbeeld.

 

 

 

 

 


 

Feeds from affiliatewindow (AW) work fine with the component.  AW feeds are always compressed using zip or gzip format. The component does support de gzip format, however you need to enable it by adding: define('USE_GZOPEN',true); (only old version)

to the callback script ( use the edit link in the administrator or edit the feeds.php using a shell or ftp program)

On the right side of the AW main window there is a datafeed link, this will open a new window ( the create-a-feed link does the same).

 

(the first time a api key will be generated, this might lock the window, try reloading)

 

 

The screen allows to create a filter, it is recommended to have a single merchant in a feed. Clicking the ' select merchants' gives a list of a merchants. Ensure to select approved merchant only.

 

After selecting the merchant and optionally adding Categories or Brands filter click next.

Select the CSV format and gzip encoding. Both comma and piped format is suported ensure to select the correct on in the feed configuration later.

 

Copy the datafeed url ( no need to download). Go to the joomla datafeeds administrator, select 'Add feed' or 'New'. Paste the url in the 'feed url' fieldd, enter a feed name (name of the merchant) and select the correct CSV class ( here ' , & " '; auto detect does not work correctly for AW feeds). Hit Apply, now the right side should show example data. Map the feed using the 'Field selection' on the left side, Save and run the cron.

 

Both the component and the full joomla install contain example feeds and menu configuration. Have a look before removing them.

Configuring feeds

See this article

Importing the product data

After configuring a feed the data can be imported using the 'cron' menu or by clicking on the 'last update' date in the feed list.

Creating datafeeds menu's

Setting up automatic  feed updates

See automatic import for details about cron's.

New location


For automatic updating the feeds you will need to call the feedcron periodically. On unix style systems this is usually done using a cronjob. Most hosting providers allow to set up some cron.

There are two options calling the webpage using w g e t, curl or lynx. Or using the CLI version of php. The choice depends on the availability using the CLI version is highly recommend, this avoids  max_execution_time problems.

a typical webpage request looks like:

0 4 * * * w g e t http://www.example.com/administrator/components/com_datafeeds/cron/feedcron.php

(remove the spaces in w g e t)

a typical command line call:

0 4 * * * (cd  [path to the feedcron];php feedcron.php)

 

 


It is possible to use the datafeeds component to display the product feeds from commission junction using the CSV format. Versions 798 and newer support the gzipped format of the downloads. This website shows a few feeds. The cj feeds really lack some decent categories.

preperations

Username/password

CJ datafeeds require a password. Visit the services section in the CJ account manager. click the link Generate a new CJ HTTP password. You should recieve a username and password in your mailbox.

GZ compression

Commision Junction feeds are gz compressed. This is supported by the component however not enabled in older versions. To enable gz support add :

define('USE_GZOPEN',true);

to the callbacks file (feeds.php).

 

For each feed, click the Create Product Export' button

  • select CSV format , quoted (comma separated) or TAB will work fine.
  • select CJ HTTP
  • select a catalog
  • Save

 

You should receive a confirmation email. That one can be ignored. After some time ( might take hours) you should receive another email with the download link, like:

http:// datatransfer.cj.com/datatransfer/files/2862551/outgoing/productcatalog/41721/Killer_Dana-Killer_Dana_Product_Catalog.txt.gz

You need to add the username and email from the first mail :

http://USERNAME:PASSWORD@datatransfer.cj.com/datatransfer/files/2862551/outgoing/productcatalog/41721/Killer_Dana-Killer_Dana_Product_Catalog.txt.gz

 

The url goes into the feed url of the feed configuration. Use the CSV , and " parser. Click Apply and fill the field selections

 

CJ Semininairs

Commission Junction Offers Publisher Training including some seminairs about datafeeds. (17 & 18)

 

The ninja shadowbox (or lightbox) is a great extension to open images in a lightbox on your website. The ninja can be used to open iframed webpages as well. It is pretty easy to open merchant links in a lightbox on your site instead of clicking away from your site.

First install the ninja extension, in the module settings ensure the 'iframe' option is enabled.

Now you need to create a customized module or component layout

Simply add rel="shadowbox" or rel="shadowbox[list]" to the external links.

demo with a preview gallery in the component

Example code:

 

CSS

the file .../components/com_datafeeds/assets/datafeeds.css contains the css used for the component and the module. Changing this file is not recommended the file is overwritten during every upgrade. Add any changes to your templates css. ( Where the css of your template reside depends on your template, for example .../templates/YOUR TEMPLATE/css/style.css )

Changing the layout's

template specific

Joomla provides a mechanism to change the layout for every component and module for a specific template: template override Simply copy

.../components/com_datafeeds/views/items/tmpl/default_LAYOUT.php

to

.../templates/YOUR TEMPLATE/html/com_datafeeds/items/

or

.../modules/mod_datamenu/tmpl/LAYOUT.php

to

.../templates/YOUR TEMPLATE/html/mod_datamenu/

and modify the copies file.

adding a custom module layout

In modules/mod_datamenu/tmpl copy a layout you want to modify; for example top5table_list.php to top5div_list.php. In the file change the name of the function to match the new file name, in this case Datatop5div_listMenu.

There are three flavours of module layout, based on the file name the dataitems array has different content:

  • for files ending with _list.php the dataitems is a  list of items based on the settings.
  • for files ending with _custom.php dataitems is empty
  • for all other files dataitems is a menu tree

Example

displays items almost like the component does

{include_code_listing /var/www/www.affiliatefeeds.nl/images/code/modascom-3073.txt}

adding a custom sub component layout

(svn 788)

simply copy an existing default_*.php file in .../components/com_datafeeds/views/items/tmpl/ ; for example to default_better.php, the new layout should appear in the drop downbox in the menu configuration.

 

adding a compleet component layout

Copy all files

.../components/com_datafeeds/views/items/tmpl/default*.php

to

.../components/com_datafeeds/views/items/tmpl/yourname*.php

and edit the files.

This method should  work for all joomla component. There is a specific change for this component:

in the file default.xml, copied to yourname.xml you will find base='default' (twice), change this to base='yourname'

 

 

Information on searching can be found here