http://www.prokopov-nikolai.ru/
Владельцы Интернет магазинов предлагают зарегистрированным пользователям стать участниками партнерской программы с целью получения дополнительного дохода.
Что мы имеем. В Интернет магазинах «shop-script» мы имеем работающую партнерскую программу и виджеты для привлечения новых покупателей на сторонних интернет ресурсах. Но если Вы внимательно разбирались с админкой магазина, то должны были обнаружить, что разработчики в разделе заказы забыли вывести информацию о партнере, привлекшем какой-либо заказ.
Задача: Наша основная задача отредактировать функции и шаблоны shop-script так, чтобы информация о клиенте, привлекшего заказ, отображалась в следующих пунктах:
- Заказы -> Заказы -> Список заказов (таблица всех заказов)
- Заказы -> Заказы -> Список заказов -> Заказ # ID (детализированная информация о заказе)
Для тех, кто очень торопится и для кого главное не обучение, а результат, есть возможность скачать архив с файлами и выполнить действия по инструкции!
Вступление. Нужно отдать должное компании ООО «Артикус» в том, что маркетинговые инструменты их интернет магазинов продуманы достаточно хорошо. Они реализованы посредством «Партнерской программы» и «виджетов», хотя окончание их реализации стоит под знаком вопроса.
После регистрации в магазине потенциальный или уже реальный покупатель попадает на вкладку своего счета, где он сможет увидеть предложение о том «Как заработать деньги на партнерской программе». При этом будущему партнеру предлагается два способа привлекать покупателей:
- при оформлении заказа через виджет нужно указать «логин» клиента, по рекомендациям которого осуществляется покупка;
- покупатель должен перейти по следующей ссылке http://fisher-store.ru/referral/1/ и осуществить покупку (где «1» – это уникальный ID клиента в базе магазина).
Первый способ не совсем удобен, поскольку человек может просто забыть ввести логин или ввести его неправильно. Этого можно избежать, указав в ссылке виджета «referral/1/». Тогда ссылка примет следующий вид «<a href=’http://www.fisher-store.ru/referral/1/cart/?action=add_product&productID=717&widgets=1′ …». Все остальное в html-коде виджета необходимо оставить без изменения. После изменения ссылки при оформлении заказа у покупателя не будут спрашивать логин.
Редактируем шаблоны и функции shop-script. После внесения всех необходимых редакций Вы должны получить следующий результат:
- отображение данных о партнере, привлекшем заказ в таблице заказов;
- отображение детальной информации о партнере, привлекшем заказ, на страничке заказа.
Шаг 1. Редактируем файл gridheader.tpl.html (Шапка таблицы)
Откройте файл через любой удобный Вам редактор и в конце добавить следующий код:
{assign var=url value=$smarty.server.QUERY_STRING}
{if $url == 'did=21' or $url == 'ukey=admin'}
<td width="30"><a class="gridheader" href="http://fisher-store.ru/published/SC/html/scripts/index.php?ukey=admin_orders_list&order_search_type=SearchByStatusID&search=Show&sort=affiliateID&direction=ASC">affiliateID</a> =></td>
<td>Логин</td>
{/if}
{if $url == 'did=10'}
<td width="30">
<a class="gridheader" href="http://fisher-store.ru/published/SC/html/scripts/index.php?ukey=admin_orders_list&order_search_type=SearchByStatusID&search=Show&sort=affiliateID&direction=ASC">affiliateID</a> =></td>
<td>Логин</td>
{/if}
Здесь мы добавили две дополнительные ячейки с содержанием «affiliateID =>» и «Логин». Данные ячейки обрамлены блоком {if} … {/if}. Если этого не сделать, то наши дополнительные ячейки будут появляться также в разделе Покупатели -> Покупатели.
Шаг 2. Редактируем файл order_functions.php (фукции заказов).
Для удобства откройте файл order_functions.php в редакторе, который нумерует строки. Для этого хорошо подойдет Dreamweawer. Начиная со строки 732 идет функция function ordPrepareOrderInfo(&$order). Замените имеющийся код этой функции, заключенный между фигурными скобками, на следующий:
function ordPrepareOrderInfo(&$order){
if(is_array($order))
$order['orderID_view'] = CONF_ORDERID_PREFIX.$order['orderID'];
/*Ask login of customer by his ID*/
$sql='SELECT Login, first_name, last_name FROM SC_customers WHERE customerID='.$order['affiliateID'];
if($r=mysql_query($sql))
$res=mysql_fetch_assoc($r);
$order['affiliateLogin_view']=$res['Login'];
$order['affiliatefname_view']=$res['first_name'];
$order['affiliatelname_view']=$res['last_name'];
/*End asking*/
}
Здесь мы создали Sql запрос к нашей базе данных, запросив из таблицы клиентов магазина «SC_customers», из столбцов «Login, first_name, last_name» данные клиента «customerID», которого соответствует «affiliateID». И поместили все это в массив $order.
Если рассмотреть таблицу «SC_orders», то у нее есть поле под названием «affiliatedID». При регистрации нового заказа в этом столбце указывается «customerID» (уникальный номер клиента) из таблицы клиентов «SC_customers», тем самым, говоря о человеке, привлекшем данный заказ. Также следует отметить, что «customerID» указывается в сочетании с «referral» в ссылках партнерской программы.
Шаг 3. Редактируем файл orders_list.html (список заказов)
Откройте файл через DreamWeaver и отредактируйте блок тэга «<tr>» (строка 72) следующий образом:
<tr class="{cycle values="gridline1,gridline"}">
<td><a href='{$order_url}' style="{$order_statuses[$order_statusID]._style}">{$orders[i].orderID_view}</a></td>
<td><a href='{$order_url}' style="{$order_statuses[$order_statusID]._style}">{$orders[i].order_time}</a></td>
<td><a href='{$order_url}' style="{$order_statuses[$order_statusID]._style}">{$orders[i].customer_firstname} {$orders[i].customer_lastname}</a></td>
<td><a href='{$order_url}' style="{$order_statuses[$order_statusID]._style}">{$orders[i].payment_type|default:' '}</a></td>
<td><a href='{$order_url}' style="{$order_statuses[$order_statusID]._style}">{$orders[i].shipping_type|default:' '}{if $orders[i].shippingServiceInfo} ({$orders[i].shippingServiceInfo}){/if}</a></td>
<td><a href='{$order_url}' style="{$order_statuses[$order_statusID]._style}">{$orders[i].order_amount}</a></td>
<td><a href='{$order_url}' style="{$order_statuses[$order_statusID]._style}">{$orders[i].OrderStatus|default:' '}</a></td>
<td><a href='{$order_url}' style="{$order_statuses[$order_statusID]._style}">{$orders[i].affiliateID}</a></td>
<td class="endgrid"><a href='{$order_url}' style="{$order_statuses[$order_statusID]._style}">{$orders[i].affiliateLogin_view}</a></td>
</tr>
В приведенном блоке кода мы дополнили вывод данных из массива $orders в таблицу заказов.
После успешного выполнения первых трех этапов вы должны получить следующий результат

Шаг 4. Редактируем файл order_detailed.html (детали заказа)
Откройте файл через DreamWeaver и после 250 строки («</tr>») вставьте следующий блок кода:
<tr>
<td style="padding-right: 15px;" valign="top"> </td>
<td style="padding-right: 15px;" valign="top"> </td>
</tr>
<tr>
<td style="padding-right: 15px;" valign="top"><h3>Партнерская программа</h3>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2">Клиент прелекший заказ:</td>
</tr>
<tr>
<td width="100">ID:</td>
<td>{$order.affiliateID}</td>
</tr>
<tr>
<td>Логин:</td>
<td>{$order.affiliateLogin_view}</td>
</tr>
<tr>
<td>Фамилия Имя</td>
<td>{$order.affiliatelname_view} {$order.affiliatefname_view}</td>
</tr>
</table>
</td>
<td style="padding-right: 15px;" valign="top"> </td>
</tr></table>
<br />
В данном коде мы дополнили таблицу несколькими строками и вывели более детальные данные о клиенте, привлекшем заказ. Результат Вы можете увидеть на следующем скриншоте.

По вопросам размещения своих статей, пишите мне.





Хорошо бы, если бы на страничке «Как заработать на партнерской программе» было вместо
«Добавьте на ваш веб-сайт следующую ссылку:
http://Ваш _сайт.ru/referral/1/» был код баннера?
Как это сделать?
Очень выгодная партнерская программа скандинавского аукциона http://top.in.ua/static/partner/
Сделал все как написано, не работает только то что на рис.1, а именно affiliateID и Логин столбцы есть но данных в них нету!
Рефералы работают. все считается. Но именно при вписке не выводятся занчения.
и еще не могли бы вы выложить файлы на другой хостинг, а то на летитбите их уже нету (
Попробуйте вот этот архив:
http://prokopov-nikolai.ru/portfolio/scripts/shop-script-partnerka/shop-script-partnerka.rar
если не получится, то напишите, а выдерну файлы из работающего магазина.
Спасибо Николай! Теперь все отображается.
Добрый день! Мне нужно, чтоб в партнерке можно было выбирать по какому методу оплаты она будет работать. Примерно как можно выбирать для какого способа оплаты применим тот или иной метод доставки. Если конкретно – у меня на сайте несколько видов оплаты, в том числе наложенный платеж, вот я бы хотел чтобы партнерка работала по всем видам оплаты кроме наложки. Если кто может предложить свои услуги по доработке модуля партнерки или у кого уже есть такая, пишите на archipoff@mail.ru вместе с ценой вопроса.