Internet Marketing and Web Development Resources
Home Site Map About Contact

PepperJam Network Product Data Feeds and Store Builder Guide


Table of Contents

- top -

Product Feed Format


Return to Network Specific Implementation Guides and Documentations or to Affiliate Datafeeds Resources.

PepperJam Network provides access to product feeds to all affiliates for free via their networks web-interface. This is convenient and works in most cases.

There is probably the option for FTP access available as well. PepperJam does not state anything about it on their website, but I am sure that the option exists, if you contact PPJN support directly.

Access to product feeds via HTTP is simple and cheap and works well, as long the size of the feeds is not too big to cause problems on the side of the web server rather than the users.

I provided my affiliates, when I was still an affiliate manager myself, with access to the merchants product data via HTTP. That was back in 2003 already. One important feature that should be considered is the ability for the affiliate to pull the feed by automated means, without the need to login manually somewhere, e.g. the networks web-interface.

Problem with Automated Access

Unfortunately does this not work with PepperJam Network. It is requried to be logged in to the networks website that the access to the product feed data via the provided URL will work.

I tried adding the URL parameters "&email=MYEMAIL" and "&passwd=MYPASSWORD" (name of the fields on the websites login-form) to the provided URL, but that did not work. To secure the transfer, I could change the URL to use SSL for the connection, by changing the "http://..." to "https://...". Using SSL would make sense, since I would use my real user name and password in plain readable text in the URL, something you probably want to secure a little bit :).

Passing the login credentials along with the request for the product feed is only one possible option to make it work for everybody. I actually used in 2003 the same "trick" as Google and other services use today to provide you with a URL to a "private" feed (e.g. private calendar feed). The URL simply contains one parameter with a long and cryptic value, which contains in crypted format everything Google needs to identify you and to obscure the URL in a way that makes it virtually impossible to guess by any other person. The user has the ability to generate a new URL for a feed, if the existing one was made public somehow.

I wrote a script in VB to automatically pull product data feeds from pepperjam. It provides several command line options to adjust it to your needs.

You can download the Source Code here (right-click and select "save as", change extension of file from ".txt" to ".vbs"). Requirement: Microsoft Windows XP Service Pack 2 or Windows 2003 Server Service Pack 1, specifically the WinHTTP component with version 5.1.

PepperJam Affiliate Network - Automatic Product Data Feed Download Script, Version 0.9b
written by Carsten Cumbrowski (2009), http://www.cumbrowski.com/
	
usage: pullfeeds.vbs /u:EMAIL /p:PW /a:AFFID /out:OUTFILE.CSV [/progs:PRGIDS  
 /cats:CATIDS /kw:KWDS /outdir:DRIVE:\PATH /over:N /:timeout:NNN]
 	 
Required Command Line Parameters
------------------------------------------------------------------------------------------
/u:USERNAME - Your PPJN Username/Email
/p:PASSWORD - Your PPJN Account Password (Number)
/a:AFFILIATEID - Your Numeric Affiliate ID
/out:FILENAME - Output File Name (only file name, not Path)
 
Optional Parameters
------------------------------------------------------------------------------------------
/progs:PROGRAMIDs - Program IDs, separate multiple programs with '-', default = all programs
/cats:CATEGORYIDs - Category IDs, separate multiple categories with '-' 
/kw:KEYWORDS - Keywords, separate multiple keywords with '+'
/outdir:DIRPATH - Output Directory (Default = current directory)
/over:N - Do Not Overwrite Existing Output File (Default = overwrite)
/timeout:NNN - Timeout in seconds for Download Request (default = 300 (5 min))
	
Examples
------------------------------------------------------------------------------------------	
Example 1 (using defaults):
Download all products enabled for your account to a file called feed.csv to the same
location where the script is located on the hard disk.

pullfeeds.vbs /u:john.d@hotmail.com /p:mypw /a:987 /out:feed.csv

Example 2 (special output directory):
Same as Example 1, but saving the results in a different directory, e.g. c:\feeds

pullfeeds.vbs /u:john.d@hotmail.com /p:mypw /a:987 /out:feed.csv /outdir:c:\feeds

Example 3 (filter by programs):
Same as Example 1, but only download products for two specific advertisers with if 10 and 59

pullfeeds.vbs /u:john.d@hotmail.com /p:mypw /a:987 /out:feed.csv /progs:10-59


Accessing the Product Feed


The format of the download URL for the product data feed in delimited format
Note: the line-break was added for space reasons

http://feeds.pepperjamnetwork.com/product-catalog/download/?affiliate_id=AFFILIATEID
&program_ids=PROGRAMIDS&categories=CATEGORYIDS&keywords=KWS

The URL contains "place holders" that must be replaced with the appropriate value, depending on your specific account and settings.

PlaceholderDescription
AFFILIATEIDyour affiliate ID in the PepperJam Network
PROGRAMIDSPPJN Merchant IDs separted by a dash "-" or "all" for all merchants where you have an active relationship with, e.g. ...&program_ids=65-67-177-370-558-620-2088 or ...&program_ids=all
CATEGORYIDSPPJN Product Category IDs. See list of IDs and their use below. your affiliate ID in the PepperJam Network. Like for the program_ids parameter, separate multiple categories with a dash "-". To select all categories, leave the parameter empty instead of using "all".
KWSKeywords to filter product results separated by "%20" (=space, but URL encoded). Note: the URL provided via the PPJN interface includes a space instead of the "%20", which produces a mal-formatted URL and can cause problems with some browsers.

PepperJam Network Product Categories (as of 01/2009)


7 Accessories
9 Art/Photo/Music
11 Automotive
13 Books/Media
15 Business
17 Careers
19 Clothing/Apparel
1 Commerce
2 Computer & Electronics
3 Education
23 Entertainment
24 Family
25 Financial Services
27 Food & Drinks
29 Games & Toys
31 Gifts & Flowers
33 Health & Beauty
35 Home & Garden
37 Insurance
39 Legal
41 Marketing
43 Medical
45 Phonecard Services
47 Recreation & Leisure
49 Shops/Malls
51 Sports & Fitness
53 Travel
55 Web Services

The Delimited Feed Format


Column Delimiter: Comma (,)
Row Delimiter: Line Feed (Char(10))

The first row contains the title for each column. Column titles are always lower case, without special characters and using an underscore "_" instead of a space " " to separate words.

Note: String values are only enclosed in double-quotes ("), if the value contains one or more occurrences of the column delimiter character (comma, ",").

- top -

The Product Feed Columns


Return to Network Specific Implementation Guides and Documentations or to Affiliate Datafeeds Resources.

The delimted product data feed of the PepperJam Affiliate Network contains 80 different columns. Most of the columns are obligatory and it depends on the advertiser, if the information is provided or not.

The column names are pretty descriptive. I added notes where I deemed it necessary or helpful.

#NameType(Length)Notes
1program_idIntegerRequired Field, The unique ID of the advertiser within the PPJN
2program_nameString(255)Required Field, the Name of the advertisers program within the PPJN
3age_rangeString(255) 
4artistString(255) 
5aspect_ratioString(255) 
6authorString(255) 
7battery_lifeString(255) 
8bindingString(255) 
9buy_urlString(255)Required Field, URL to product with affiliate tracking code already included
10colorString(255) 
11color_outputString(3)"yes" or "no"
12conditionString(255) 
13description_longString(512) 
14directorString(255) 
15display_typeString(255) ???
16editionString(255) 
17expiration_dateDate Format:YYYY-MM-DD ("0000-00-00" if n/a)
18featuresString(255) 
19focus_typeString(255) 
20formatString(255) 
21functionsString(255) 
22genreString(255) 
23heel_heightString(255) 
24heightString(255) 
25image_thumb_urlString(255) 
26image_urlString(255) 
27installationString(255) 
28isbnString(255) 
29lengthString(255) 
30load_typeString(255) 
31locationString(255) 
32made_inString(255) 
33manufacturerString(255)AG
34materialString(255) 
35megapixelsInteger 0 if n/a
36memory_typeString 
37memory_capacityString 
38memory_card_slotString 
39model_numberString 
40mpnString 
41nameString Required Field, Name of the product
42occasionString 
43operating_systemString 
44optical_driveString 
45price_retailDouble/Floatdefault: 0 
46pagesIntegerdefault: 0 
47payment_acceptedString 
48payment_notesString 
49platformString 
50price_saleDouble/Floatdefault: 0  
51processorString 
52publisherString 
53quantity_in_stockInteger default: 0 
54ratingString 
55recommended_usageString 
56resolutionString 
57shoe_sizeString 
58screen_sizeString 
59shipping_methodString 
60price_shippingDouble/FloatFormat: 999.99/99/0
61shoe_widthString 
62sizeString 
63skuString 
64staringString 
65styleString 
66tracksInteger 0 if n/a
67upcString 
68weightString 
69widthString 
70wireless_interfaceString 
71yearInteger 0 if n/a
72zoomString 
73category_networkString empty
74category_programString usually > for hierarchy
75description_shortString 
76discontinuedString(3)yes or "no" String values; not Boolean
77in_stockString(3)yes or "no" String values; not Boolean
78tech_spec_urlString 
79keywordsString 
80priceDouble/Float999.99/99/0

The product feed can be imported into spread-sheet applications like Microsoft Excel without any problems. Below are some screen shots that show a sample PepperJam Network Product Data Feed with real data loaded into MS Excel 2007.

Screen Shots of a sample product feed from PepperJam Network loaded into Microsoft Excel



- top -

Coupon Feeds


Return to Network Specific Implementation Guides and Documentations or to Affiliate Datafeeds Resources.

The interface of the coupon feed selection and configuration tool at PepperJam Network

As you can see in the above screen-shot, accessing the coupon feed from PepperJam Network is simple and easy.

Unlike for the product data feed are the keyword search and category selection only for the filtering of your advertising partners and only of help, if you signed up for many of the programs available through the network. They do not impact the coupon feed results.

You can choose to get all promotions and coupons for all of your advertisers or filter by specific advertisers, filtering by type of offer or keyword is not possible.

The coupon feeds can be accessed via the provided URL without the need to be logged-in to the web-interface of the PepperJam Network, which makes it easier for automated access to their content.

There are two possible options for the format of the coupon data feed.

  1. Delimited Format
  2. RSS Format

For details about the feed in RSS format, see the next chapter below.

- top -

Coupon Feeds in Delimited Format


The generated URL to pull the coupon feed in delimited format looks like this.

http://feeds.pepperjamnetwork.com/coupon/download/?affiliate_id=AFFILIATEID&program_ids=PROGRAMIDS

The URL contains "place holders" that must be replaced with the appropriate value, depending on your specific account and settings.

PlaceholderDescription
AFFILIATEIDyour affiliate ID in the PepperJam Network
PROGRAMIDSPPJN Merchant IDs separted by a dash "-" or "all" for all merchants where you have an active relationship with, e.g. ...&program_ids=65-67-177-370-558-620-2088 or ...&program_ids=all

Column Delimiter: Comma (,)
Row Delimiter: Line Feed (Char(10))

The first row contains the title for each column. Column titles are always lower case, without special characters and using an underscore "_" instead of a space " " to separate words.

Note: String values are only enclosed in double-quotes ("), if the value contains one or more occurrences of the column delimiter character (comma, ",").

The delimited values coupon feed has 8 columns, which are pretty descriptive. I added notes where I deemed it necessary or helpful.

#NameTypeNotes
1program_idInteger 
2program_nameString 
3nameString 
4coupon_codeString 
5descriptionString 
6urlString 
7beginDateFormat: MM/DD/YYYY
8expireDateFormat: MM/DD/YYYY

Screenshot of a sample coupon feed from PepperJam Network loaded into Microsoft Excel

- top -

Coupon Feeds in RSS Format


The RSS feed uses a custom tag "coupon_code", which contains the promotion code or coupon code, where it is available, but no tag for the begin or expiration date/time of the promotion. This information is only included in text format within the "description" tag and hard to impossible to parse automatically, which makes the RSS version only feasible for real-time useage and not for the import into a custom database application.

You can find an example for the use of the coupon RSS feed further down below, including the source code of it for free download.

In contradiction to the product data feed, but like the delimited coupon feed, it is possible to pull the coupons RSS feed without the need to be logged into the PepperJam Network. This is good, because my example for using the feed would not work otherwise.

The URL to pull the coupon RSS feed is virtually identical to the URL for the delimited version of the feed, only the "/download/" part is replaced by "/rss20/" and looks like this.


http://feeds.pepperjamnetwork.com/coupon/rss20/?affiliate_id=AFFILIATEID&program_ids=PROGRAMIDS

The URL contains "place holders" that must be replaced with the appropriate value, depending on your specific account and settings.

PlaceholderDescription
AFFILIATEIDyour affiliate ID in the PepperJam Network
PROGRAMIDSPPJN Merchant IDs separted by a dash "-" or "all" for all merchants where you have an active relationship with, e.g. ...&program_ids=65-67-177-370-558-620-2088 or ...&program_ids=all

The structure of the RSS feed:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0">
<channel>
   <title></title>
   <link></link>
   <description></description>
   <language></language>
   <image>
        <title></title>
        <url></url>
        <link/>
        <width></width>
        <height></height>
   </image>

   <item>
     <title></title>
     <coupon_code></coupon_code>
     <link></link>
     <description>
		 #cdata-section (description in HTML and contains also 
		 the Start/End Date of the promotion , if applicable)
		 </description>
  </item>

  <item>
...
  </item>
</content>
</rss>

XSD Schema for the Feed Validation looks like this

<ppjn_couponfeed.xsd>
<xs:schema xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns="" 
   id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="rss">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="channel">
          <xs:complexType>
            <xs:sequence>
              <xs:element minOccurs="0" name="title" type="xs:string" />
              <xs:element minOccurs="0" name="link" type="xs:string" />
              <xs:element minOccurs="0" name="description" type="xs:string" />
              <xs:element minOccurs="0" name="language" type="xs:string" />
              <xs:element minOccurs="0" maxOccurs="unbounded" name="image">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element minOccurs="0" name="title" type="xs:string" />
                    <xs:element minOccurs="0" name="url" type="xs:string" />
                    <xs:element minOccurs="0" name="link" type="xs:string" />
                    <xs:element minOccurs="0" name="width" type="xs:string" />
                    <xs:element minOccurs="0" name="height" type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element minOccurs="0" maxOccurs="unbounded" name="item">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element minOccurs="0" name="title" type="xs:string" />
                    <xs:element minOccurs="0" name="coupon_code" type="xs:string" />
                    <xs:element minOccurs="0" name="link" type="xs:string" />
                    <xs:element minOccurs="0" name="description" type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="version" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element msdata:IsDataSet="true" msdata:UseCurrentLocale="true" name="NewDataSet">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="rss" />
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>

The XSD template for the PepperJam Coupon RSS Feed can be downloaded here (right-click and select "save as", change extension of file from ".txt" to ".xsd").

- top -

Coupon RSS Feed Sample


Here is a simple "widget" application to demonstrate a possible use of the coupon RSS feed provided by Pepperjam. Click on the button below to load the current promotions for merchants where I have an active relationship with at the moment. This sample is actually pulling real data, directly from PepperJam in real-time.

Place to load coupons into here dynamically via Javascript

The Source Code for my little Coupons RSS Feed widget can be downloaded here (right-click and select "save as", change extension of file from ".txt" to ".html").

You also require the XSL Template for the transformation and formating. You can download it here (right-click and select "save as", change extension of file from ".txt" to ".xsl").

- top -

Store Builder Tool


Return to Network Specific Implementation Guides and Documentations or to Affiliate Datafeeds Resources.



Store Builder Screen Shot (Big Single Image)

Instead of pulling a data feed and downloading it to your computer or server, you also have the option to show the results based on your selected filter criteria such as advertiser(s), product category(s) and/or keyword(s) in real-time on your website, using simple JavaScript code. The code is being provided by PepperJam Network and all you need to do is to copy and paste it from the network web-interface into your web site code or even a blog post or something like that.

There are a number of customizing options to make the generated product showcase blend into your existing site design and color schema.

With a bit understanding of the provided source code, it is possible to adjust the layout by hand without the need of using the PepperJam Network web-interface.

The generated code looks like this

<script id="searchDataHolder">
//This requires the appropriate affiliate ID
var pjn_sb_affid = "354";
//This will control the amount of search results displayed on each page
var pjn_sb_results_per_page = "2";
//Use this to filter specific categories for your site - 
//Must be dash separated, ie. var pjn_sb_categories = "123-456-789";
var pjn_sb_categories = "";
//Use this to filter results for a specific program ID-
//Must be dash separated, ie. var pjn_sb_program_ids = "123-456-789";
var pjn_sb_program_ids = "";
//This is the default search terms area. Place more specific filters here. 
//These are SPACE separated.
var pjn_sb_default_search = "";
//Customization Options - Each of these values will default
//to the orginal theme, if left blank.
var pjn_sb_border_color_main = "#a19d78";
var pjn_sb_border_color_product = "#a19d78";
var pjn_sb_border_color_search = "#a19d78";
var pjn_sb_main_background_color = "#bdbaa0";
var pjn_sb_search_background_color = "#FFFFFF";
var pjn_sb_results_text_color = "#666666";
var pjn_sb_page_links_color = "#FFFFFF";
var pjn_sb_product_background_color = "#FFFFFF";
var pjn_sb_product_title_color = "#7878a1";
var pjn_sb_product_text_color = "#000000";
var pjn_sb_product_price_color = "#000000";
var pjn_sb_product_buy_color = "#009900";
//This will toggle the visibility of the search box - 
//Defaults to false, if left blank.
var pjn_sb_search_box_toggle = "true";
</script>
<script src="http://widgets.pepperjamnetwork.com/js/pjn_storeloader.js"
 type="text/javascript"></script>

The checkbox "Blog optimized" does nothing else than stripping the code off unnecessary formating and comments to make it smaller and to reduce the possibility of issues with your blogging/content management platform. The same code from above, but with "blog optimized" option enabled looks like this:

<script id="searchDataHolder">var pjn_sb_affid = "354";var pjn_sb_results_per_page = "2";
var pjn_sb_categories = "";var pjn_sb_program_ids = "";var pjn_sb_default_search = "business";
var pjn_sb_border_color_main = "#a19d78";var pjn_sb_border_color_product = "#a19d78";
var pjn_sb_border_color_search = "#a19d78";var pjn_sb_main_background_color = "#bdbaa0";
var pjn_sb_search_background_color = "#FFFFFF";var pjn_sb_results_text_color = "#666666";
var pjn_sb_page_links_color = "#FFFFFF";var pjn_sb_product_background_color = "#FFFFFF";
var pjn_sb_product_title_color = "#7878a1";var pjn_sb_product_text_color = "#000000";
var pjn_sb_product_price_color = "#000000";var pjn_sb_product_buy_color = "#009900";
var pjn_sb_search_box_toggle = "true";</script>
<script src="http://widgets.pepperjamnetwork.com/js/pjn_storeloader.js" type="text/javascript">
</script>

See below how the result looks like for the source code example that I used in this article.

Real Store-Builder Tool Example




- top -

Other Data Feed Guides, Articles and Resources for Affiliates and Advertisers


- top -

Cumbrowski.com Sponsors

See the Advertiser Kit to learn more about sponsorship opportunities at Cumbrowski.com. Press? Download my Media Kit.

Email Alert & Newsletter (privacy) My Blog Posts and Newsletter (read)


Enter your email address:

or ReveNews - Carsten Cumbrowski - Feed