Партнерская программа для вэб-мастеров
Если Вы хотите создать собственный интернет-магазин для продажи наших товаров (либо уже имеете), на котором хотите разместить также и наши товары, то мы можем работать с Вами по такой схеме: Вы берете наши описания и картинки обложек товаров и размещаете в своем интернет-магазине, после того как их закажет Ваш посетитель, Вы вызовите нашу страницу для передачи заказа нам, а мы его отправим клиенту и рассчитаемся с Вами по партнерским процентам, соответствующим
стандартной партнерке (
хотя такой вариант партнерки нам гораздо менее выгоднее стандартного)!. При этом клиент всегда находится на вашем сайте, без перехода на наш.
Экспорт описаний товаров
Формат:
- Разделитель товаров: символ перевода строки ("\n").
- Разделитель полей: символ табуляции ("\t").
Поля:
- Артикул
- Носитель (1 - DVD, 5 - Blu-ray, 3 - CD)
- Русское название
- Оригинальное название
- Цена (с доставкой)
- Продолжительность (в минутах)
- Страна
- Студия
- Режиссер
- Год выпуска
- Актеры
- Описание
- Дата появления
- Категории (жанры)
- ID в нашей базе
- Есть в наличии (1 - да, 0 - нет)
- Фильм с переводом (Y - да, N - нет)
- Кол-во дисков (1 - одинарные, 2 - двойные и т.д.)
- Путь к видеоролику
- Пути к кадрам (через пробел)
Экспорт обложек товаров
Картинки маленьких обложек:
Передняя: http://www.cekcshop.com/Pics/Small/артикул-1.jpg
Задняя: http://www.cekcshop.com/Pics/Small/артикул-2.jpg
Картинки средних обложек:
Передняя: http://www.cekcshop.com/Pics/Big/артикул-1.jpg
Задняя: http://www.cekcshop.com/Pics/Big/артикул-2.jpg
Картинки больших обложек:
Передняя: http://www.cekcshop.com/Pics/Original/артикул-1.jpg
Задняя: http://www.cekcshop.com/Pics/Original/артикул-2.jpg
здесь "артикул" - артикул товара в csv-файле описаний товаров
Пример скрипта разбора экспорта товаров
При первом запуске данный скрипт создает в базе данных и заполняет таблицу с описаниями товаров, при этом скачиваются (на Ваш локальный сервер) картинки-обложки соответствующих товаров.
При повторых запусках, этот же скрипт, обновляет описания уже скачанных ранее товаров, дополняет базу данных описаниями новых товаров, и, опять же, докачивает недостающие обложки.
Так как в нашем магазине регулярно (раз в неделю) появляются новинки и исчезают из продажи те лицензионные товары, которые закончились на складе, рекомендуем запускать его на Вашем сервере не реже раза в неделю.
Регулярно сверяйтесь с каталогом товаров на нашем сервере!
<?
function loadPic($urlToLoad, $pathToSave){
$content = "";
if ($fp = @fopen($urlToLoad, "rb")){
while ($data = @fread($fp, 10*1024)) $content .= $data;
if (!$handle = fopen($pathToSave, "w")){ print("Не удается открыть файл на запись (возможно у скрипта нет прав на создание файлов на сервере): ".$pathToSave); exit(); }
if (!fwrite($handle, $content)){ print("Не удается выполнить запись в файл: ".$pathToSave); exit(); }
fclose($handle);
@chmod($pathToSave, 0777);
}
}
function db_error(){
die("<br>При выполнении запроса к базе данных произошла ошибка!<br>".mysql_error());
}
//Снимаем ограничения на показ сообщений об ошибках и ограничения на время выполнения данного скрипта
error_reporting(E_ALL);
@ini_set("display_errors", "1");
@set_time_limit(0);
//Подключаемся к серверу базы данных
@mysql_pconnect("localhost", "root") or die("<br>Не удалось подключиться к mysql-серверу!");
@mysql_select_db("mydb") or die("<br>Не удалось выбрать базу данных!");
//Загружаем файла с сервера и помещаем содержимое в массив (один элемент массива - один товар)
$lines = file("http://www.xxxfilm.ru/catalog_csv.php");
mysql_query("CREATE TABLE IF NOT EXISTS films (id INT NOT NULL UNIQUE, PRIMARY KEY (id), articul varchar(255) NOT NULL UNIQUE, rusname varchar(255) NOT NULL, originalname VARCHAR(255), description text, partid TINYINT UNSIGNED, duration VARCHAR(255), director VARCHAR(255), actors text, country VARCHAR(255), company VARCHAR(255), category VARCHAR(255), year SMALLINT UNSIGNED, price SMALLINT UNSIGNED, isactive ENUM ('1', '0') DEFAULT '1') TYPE = MyISAM") or db_error();
//Для каждого описания товара
foreach ($lines as $line){
$mas = explode("\t", $line);
print("Артикул: ".$mas[0]."<br>");
print("Носитель: ".$mas[1]."<br>");
print("Русское название: ".$mas[2]."<br>");
print("Оригинальное название: ".$mas[3]."<br>");
print("Цена (с доставкой): ".$mas[4]."<br>");
print("Продолжительность (в минутах): ".$mas[5]."<br>");
print("Страна: ".$mas[6]."<br>");
print("Студия: ".$mas[7]."<br>");
print("Режиссер: ".$mas[8]."<br>");
print("Год выпуска: ".$mas[9]."<br>");
print("Актеры: ".$mas[10]."<br>");
print("Описание: ".$mas[11]."<br>");
print("Дата появления: ".$mas[12]."<br>");
print("Категории (жанры): ".$mas[13]."<br>");
print("ID в нашей базе: ".$mas[14]."<br>");
print("Продается?: ".$mas[15]."<br>");
print("Фильм с переводом?: ".$mas[16]."<br>");
print("Кол-во дисков: ".$mas[17]."<br>");
print("Видеоролик: ".$mas[18]."<br>");
print("Кадры: ".$mas[19]."<br>");
print("<hr>"); flush();
//Сохраняем описание товара в базе данных
$result = mysql_query("SELECT COUNT(*) FROM films WHERE id='$mas[14]'") or db_error();
if (mysql_result($result, 0, 0)==0) mysql_query("INSERT INTO films SET id='$mas[14]', articul='$mas[0]', rusname='".addslashes($mas[2])."', originalname='".addslashes($mas[3])."', description='".addslashes($mas[11])."', partid='$mas[1]', duration='$mas[5]', director='".addslashes($mas[8])."', actors='".addslashes($mas[10])."', country='$mas[6]', company='".addslashes($mas[7])."', category='$mas[13]', year='$mas[9]', price='$mas[4]', isactive='$mas[15]'") or db_error();
else mysql_query("UPDATE films SET articul='$mas[0]', rusname='".addslashes($mas[2])."', originalname='".addslashes($mas[3])."', description='".addslashes($mas[11])."', partid='$mas[1]', duration='$mas[5]', director='".addslashes($mas[8])."', actors='".addslashes($mas[10])."', country='$mas[6]', company='".addslashes($mas[7])."', category='$mas[13]', year='$mas[9]', price='$mas[4]', isactive='$mas[15]' WHERE id='$mas[14]'") or db_error();
//Скачиваем обложки с сервера и сохранияем их локально
if (!file_exists($mas[0]."-1.jpg")) loadPic("http://www.cekcshop.com/Pics/Big/".$mas[0]."-1.jpg", $mas[0]."-1.jpg");
if (!file_exists($mas[0]."-2.jpg")) loadPic("http://www.cekcshop.com/Pics/Big/".$mas[0]."-2.jpg", $mas[0]."-2.jpg");
}
?>
Импорт заказов
Для начала вам надо зарегистрироваться в нашей
партнерке и получить идентификатор.
Пример скрипта для экспорта заказов (PHP):
Прием заказа от партнера с идентификатором 111 2-х товаров с артикулами PDVD177 и OT104 соотвественно. Индекс: 111111, Страна: Россия, Город: Москва, Фамилия: Иванов, Имя: Иван, Отчество: Иванович, E-mail: info@xxxfilm.ru, Адрес: Ивановская 3-51, Комментарий: без обложек.
<?
//$articuls - артикулы товаров (уникальные) и их количество через запятую
//$adver - ваш идентификатор партнера
//Остальные поля - адрес доставки
//Параметры для передачи удаленной странице
$articuls = "PDVD177=1,OT104=1";
$adver = "111";
$name1 = rawurlencode("Иванов");
$name2 = rawurlencode("Иван");
$name3 = rawurlencode("Иванович");
$email = rawurlencode("info@xxxfilm.ru");
$address = rawurlencode("Ивановская 3-51");
$city = rawurlencode("Москва");
$country = rawurlencode("Россия");
$zip = rawurlencode("111111");
$comment = rawurlencode("без обложек");
//Вызов удаленной страницы
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_URL, "http://www.xxxfilm.ru/order_curl.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "adver=$adver&name1=$name1&name2=$name2&name3=$name3
&email=$email&address=$address&city=$city&country=$country&zip=$zip&comment=$comment
&articuls=$articuls");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec ($ch);
curl_close ($ch);
//Обработка ответа удаленной страницы
print("<pre>".$result."</pre>");
$status=explode("\n",$result);
if (count($status)==3 and $status[0]=="OK") print("<p>Заказ успешно принят.\nНомер накладной: $status[1]\nПароль: $status[2]</p>");
else print("<p>Произошла ошибка. Заказ не принят.</p>");
?>
Если Вы используете другой язык программирования (например ASP), то Вам необходимо самостоятельно написать скрипт, выполняющий обращение к странице http://www.xxxfilm.ru/order_curl.php и, методом POST (желательно), передающий параметры: adver, name1, name2, name3, email, address, city, country, zip, comment, articuls. В ответ указанная страница вернет: "OK" (если заказ успешно принят), а также номер накладной и пароль для управления ей, либо сообщение об ошибке, например "Заказанные товары отсутствуют на складе!".
После того как Вы сделаете первый тестовый заказ, последующие идентичные заказы будут проигнорированы (чтобы не было повторяющихся накладных). По-этому, если Вы хотите сделать несколько (а не один) тестовых заказов, то изменяйте каждый раз какую-нибудь информацию, например, ставьте в каждом тестовом заказе новую фамилию.
Определение состояния заказа
Для определения состояния заказа вызывайте http://www.xxxfilm.ru/status_curl.php?orderid=X&password=Y, где X - номер накладной в нашей системе, Y - пароль накладной в нашей системе. Возможные ответы скрипта:
- не обработан
- подтвержден
- обрабатывается
- отправлен
- оплачен
- возвращен
- отменен
- ERROR
Ответ ERROR означает что накладная не найдена или пароль неверен или база данных временно не работает.
Контакты
Для связи с программистом нашего сайта используйте форму на странице
Контакты.