Партнерская программа. Дорабатываем Webasyst Shop-Script

6
Статью прислал Прокопов Николай
http://www.prokopov-nikolai.ru/

Владельцы Интернет магазинов предлагают зарегистрированным пользователям стать участниками партнерской программы с целью получения дополнительного дохода.

Что мы имеем. В Интернет магазинах «shop-script»  мы имеем работающую партнерскую программу и виджеты для привлечения новых покупателей на сторонних интернет ресурсах. Но если Вы внимательно разбирались с админкой магазина, то должны были обнаружить, что разработчики в разделе заказы забыли вывести  информацию о партнере, привлекшем какой-либо заказ.

Задача: Наша основная задача отредактировать функции и шаблоны shop-script так, чтобы информация о клиенте, привлекшего заказ, отображалась в следующих пунктах:

  1. Заказы -> Заказы -> Список заказов (таблица всех заказов)
  2. Заказы -> Заказы -> Список заказов -> Заказ # ID  (детализированная информация о заказе)

Для тех, кто очень торопится и для кого главное не обучение, а результат, есть возможность скачать архив с файлами и выполнить действия по инструкции!

Вступление. Нужно отдать должное компании ООО «Артикус» в том, что маркетинговые инструменты их интернет магазинов продуманы достаточно хорошо. Они реализованы посредством «Партнерской программы» и «виджетов», хотя окончание их реализации стоит под знаком вопроса.

После регистрации в магазине потенциальный или уже реальный покупатель попадает на  вкладку своего счета, где он сможет увидеть предложение о том «Как заработать деньги на партнерской программе». При этом будущему партнеру предлагается два способа привлекать покупателей:

  1. при оформлении заказа через виджет нужно указать «логин» клиента, по рекомендациям которого осуществляется покупка;
  2. покупатель должен перейти по следующей ссылке 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. отображение данных о партнере, привлекшем заказ в таблице заказов;
  2. отображение детальной информации о партнере, привлекшем заказ, на страничке заказа.

Шаг 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>&nbsp;&nbsp;&nbsp;&nbsp;=></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>&nbsp;&nbsp;&nbsp;&nbsp;=></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:'&nbsp;'}</a></td>
  <td><a  href='{$order_url}'  style="{$order_statuses[$order_statusID]._style}">{$orders[i].shipping_type|default:'&nbsp;'}{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:'&nbsp;'}</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 в таблицу заказов.

После успешного выполнения первых трех этапов вы должны получить следующий результат

screen1

Шаг 4. Редактируем файл order_detailed.html (детали заказа)

Откройте файл через DreamWeaver и после 250 строки («</tr>») вставьте следующий блок кода:

<tr>
  <td  style="padding-right: 15px;"  valign="top">&nbsp;</td>
  <td  style="padding-right: 15px;"  valign="top">&nbsp;</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}&nbsp;{$order.affiliatefname_view}</td>
  </tr>
  </table>
  </td>
  <td  style="padding-right: 15px;"  valign="top">&nbsp;</td>
  </tr></table>
  <br />

В данном коде мы дополнили таблицу несколькими строками и вывели более детальные данные о клиенте, привлекшем заказ. Результат Вы можете увидеть на следующем скриншоте.

screen2

Скачать архив

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

6 Комментариев

  1. ВалерийNo Gravatar:

    Хорошо бы, если бы на страничке «Как заработать на партнерской программе» было вместо

    «Добавьте на ваш веб-сайт следующую ссылку:

    http://Ваш _сайт.ru/referral/1/» был код баннера?

    Как это сделать?

  2. АлександрNo Gravatar:

    Очень выгодная партнерская программа скандинавского аукциона http://top.in.ua/static/partner/

  3. linxNo Gravatar:

    Сделал все как написано, не работает только то что на рис.1, а именно affiliateID и Логин столбцы есть но данных в них нету!
    Рефералы работают. все считается. Но именно при вписке не выводятся занчения.
    и еще не могли бы вы выложить файлы на другой хостинг, а то на летитбите их уже нету (

  4. НиколайNo Gravatar:

    Попробуйте вот этот архив:
    http://prokopov-nikolai.ru/portfolio/scripts/shop-script-partnerka/shop-script-partnerka.rar
    если не получится, то напишите, а выдерну файлы из работающего магазина.

  5. linxNo Gravatar:

    Спасибо Николай! Теперь все отображается.

  6. АнатолийNo Gravatar:

    Добрый день! Мне нужно, чтоб в партнерке можно было выбирать по какому методу оплаты она будет работать. Примерно как можно выбирать для какого способа оплаты применим тот или иной метод доставки. Если конкретно – у меня на сайте несколько видов оплаты, в том числе наложенный платеж, вот я бы хотел чтобы партнерка работала по всем видам оплаты кроме наложки. Если кто может предложить свои услуги по доработке модуля партнерки или у кого уже есть такая, пишите на archipoff@mail.ru вместе с ценой вопроса.

Оставить комментарий


WebComplIT banner
© 2008-2010 EasyWeb.org.ua. All rights reserved.