2  /  27

Примеры

Просмотров: 1106 (Статистика ведётся с 06.02.2017)
Дата последнего изменения: 28.03.2018

Витрина готовых решений

Используется метод marketplace.product.list который позволяет получить отфильтрованный список решений. Выберем готовые интернет-магазины с адаптивной версткой продающиеся с партнерской скидкой:

$result = executePartnerREST('marketplace.product.list',
    array(
     'filter' => array('partnerDiscount' => '1', 'isAdaptive' => 1, 'categoryId' => 14
    )));
$items = $result['result']['list'];

Метод marketplace.product.list является списочным и отдает не весь набор подходящих решений, а пакет из одной "страницы" по 20 элементов с сортировкой по умолчанию. Следовательно, нам понадобится обращаться к этому же методу дальше, чтобы получить все данные, подставляя в каждый вызов дополнительный параметр navigation:

$pages = 1;

$current_page = 1;


while ($current_page < $pages) {
    $current_page++;
    $current_result = executePartnerREST('marketplace.product.list',
     array(
      'filter' => array('partnerDiscount' => '1', 'isAdaptive' => 1, 'categoryId' => 14,
          'isComposite' => 1),
      'navigation' => array('page' => $current_page)
         ));

    $items = array_merge($items, $current_result['result']['list']

} 

Сведём все результаты в один массив. Если выборка очень большая, то принимайте во внимание факторы доступной памяти и таймаута выполнения скрипта на хите.

Далее в цикле формируется вывод витрины в той верстке, которая нужна (полный текст примера можно загрузить отсюда):

function displayApplication ($item) {
    ?> <div class= "col-sm-4 col-md-2 col-lg-2">
     <div class= "thumbnail" st yle= " min-height: 310px; max-height: 310px">
         <img src= " <?=$item['screenshots'][0]?> " alt= " <?=$item['name']?> " st yle= " max-width: 150px; max-height: 150px">
      <div class= "caption">
          <strong><?=substr($item['name'], 0, 25);?></strong>< />
          <?if($item['priceRub'] != 0) echo $item['priceRub']." руб .";
           else echo ' халява , сэр ' ?> </div>
      <?if($item['priceRub'] != 0):?> <div class= "alert alert-info"><a href= "#" class= "btn btn-primary" role= "button">Срочно купить!</a></div>
      <?endif;?> </div>
    </div>
  <?
}

На практике рекомендуется заливать данные в торговый каталог и дальше использовать стандартные возможности "1С-Битрикс: Управление сайтом" по управлению каталогом, оформлению заказа и т.д. И не забывать про кэширование и композит в публичной части сайта.

Работа с клиентами

Пример получения информации о текущих зарегистрированных обработчиках событий. В случае необходимости можно зарегистрировать обработчик события add.callback.add.coupon, который будет вызываться в случае добавления купона для решения Маркетплейс:

$result = executePartnerREST('get.callback.list', array());

echo "
";
print_r($result);
print_r($result['result']['list']);
echo "
"; if (count($result['result']['list']) == 0) { $result = executePartnerREST('add.callback.add.coupon', array('code' => 'petrov.test', 'url' => 'https://restapi.bx24.net/partner-api/add-coupon-handler.php')); echo "
";
 print_r($result);
 echo "
"; }

Допустимо использование обработчиков на получение купонов или добавление клиентов только своих решений Маркетплейс.

Если в партнерском кабинете в разделе Маркетплейс 1С-Битрикс выписан купон на модуль (в примере это модуль с кодом 'petrov.test'), то автоматически будет вызван обработчик по адресу 'https://restapi.bx24.net/partner-api/add-coupon-handler.php'.

Примечание: в настоящее время вызов происходит не в реальном времени, а с периодичностью до 30 минут. Поэтому данные о новых купонах в логах появятся с задержкой.

add-coupon-handler
Array
(
    [coupon] => MPX-AQTS7H5DSO-ХХХ
    [code] => petrov.test
    [isProlongation] => 0
    [name] => Василий Пупкин
    [email] => хх@ххх.ru
    [partnerId] => 0
    [orderId] => 0
    [prolongationPeriod] => 0
    [prolongationPeriodType] => 
    [seller] => BITRIX
    [auth] => ххх
)

В обработчике события можно среагировать на выписку купона (или на активацию, в зависимости от события). В частности, зарегистрировать купон и клиента в виде лида или сделки CRM. Если использовать для этой цели Битрикс24, то это лучше сделать при помощи вебхуков.


Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии