Feeds instelingen

26 mei 2015
1
0
0
#1
Hoi allemaal

Ik heb een dag aanbiedingen site gemaakt wat al een tijdje goed liep qua feed.

Op 1 of andere dag werkte me cronjob niet meer en bleek dat daisycon de instellingen heeft veranderd..


Het was een Soap Api verhaal maar is nu iets nieuws geworden waar ik dus niet uit kom.

- ik weet niet wat ik moet aanpassen en hoe heeft iemand een idee ?


(hieronder zien jullie hoe het was )


<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); include "config.php";

error_reporting(E_ALL ^ E_NOTICE);

include dirname(__FILE__) . "/../third_party/zanox/ApiClient.php";

class cronjob extends Config{

public function daisycon(){

set_time_limit(0);

echo '<pre>';

Cronjob START','Cronjob START');

$path = $_SERVER["DOCUMENT_ROOT"] . '/upload/aanbiedingen/';
if (!file_exists($path)){
@mkdir($path,0755,true);
}else{
@chmod($path,0755);
}

$options = array(
'login' => $this->api_user,
'password' => md5($this->api_pass),
'features' => SOAP_SINGLE_ELEMENT_ARRAYS,
'encoding' => 'utf-8',
'trace' => 1,
);

print_r($options);

$soap = new SoapClient("http://api.daisycon.com/publisher/soap/feed/wsdl/",$options);
$filter = array(
'media_id' => $this->api_media,
'type' => 'xml',
'encoding' => 'UTF-8'
);

print_r($filter);

$result = $soap->getFeeds($filter);
echo $result;
die();

$ids = '0';
if (is_array($result["return"])){

foreach ($result["return"] as $nr => $feed){

if ('http://xml.ds1.nl/update/?wi=' . $this->api_media . '&update=normal&type=xml&encoding=UTF-8&si=3758&xid=3760&ws=' != $feed->feed_link){
$xml = simplexml_load_file($feed->feed_link);

$done = 1;
$feed_id = 0;
$last_feedid = 0;
$brand_name = '';
$limit = 5;
foreach($xml->children() as $product){

if ($last_feedid != $feed_id){
$zanox = $this->db->get_where('zanox',array('feed_id' => $feed_id));
if (set_num($zanox->row()->amount) != 0){
$limit = $zanox->row()->amount;
}
$last_feedid = $feed_id;
}

if ($done <= $limit){
 
6 sep 2010
146
0
0
www.daisycon.com
#3
Dag allen,

Het lijkt er op dat er een stukje code gemixt is. Wij zullen er in ieder geval ook naar kijken met Remco en hem zover het kan helpen. Informatie over onze vernieuwde API is overigens te vinden op: https://developers.daisycon.com/. Voor publishers kijk je bij het onderdeel publisher resources. Nog 1 belangrijk gegeven. Als je niet kan inloggen in de API ligt dit er meestal aan dat je eerst jezelf toegang moet geven. Dit kan je doen in je account bij het menu: account privil├ęges. Kom je er niet uit? Stuur ons een ticket en we helpen je!

Met vriendelijke groet,
Daisycon Support
 
6 sep 2010
146
0
0
www.daisycon.com
#4
Goedemorgen,

We hebben een oplossing voor Remco en evenentuele andere publishers.
De code in rood kan worden vervangen met de onderstaande dikgedrukte code.

class cronjob extends Config{

public function daisycon(){

set_time_limit(0);

echo '';

Cronjob START','Cronjob START');

$path = $_SERVER["DOCUMENT_ROOT"] . '/upload/aanbiedingen/';
if (!file_exists($path)){
@mkdir($path,0755,true);
}else{
@chmod($path,0755);
}

Code:
[color=red][color=red]      $options = array(
         'login' => $this->api_user,
         'password' => md5($this->api_pass),
          'features' => SOAP_SINGLE_ELEMENT_ARRAYS,
          'encoding' => 'utf-8',
          'trace' => 1,
       );
 
      print_r($options);
 
       $soap = new SoapClient("http://api.daisycon.com/publisher/soap/feed/wsdl/ [nofollow]",$options);  
      $filter = array(
         'media_id' => $this->api_media,
         'type' => 'xml',
         'encoding' => 'UTF-8'
      );
 
      print_r($filter);
 
      $result = $soap->getFeeds($filter);[/color][/color]
echo $result;
die();

Vervangen met volgende code.

$publisher_id = 1234;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://services.daisycon.com/publishers/' . $publisher_id . '/productfeeds');
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Authorization: Basic ' . base64_encode( $this->api_user . ':' . $this->api_user ) ) );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$result = json_decode($response);



Het is belangrijk het juiste publisher id in te vullen in het begin van de vetgedrukte code.
Overige informatie is te vinden op https://developers.daisycon.com . Veel succes!

Met vriendelijke groet,
Daisycon Support