Аня про Геткурс. Верстка, скрипты и решения
2.12K subscribers
107 photos
23 videos
1 file
20 links
Нужна интеграция, скрипты или верстка на Геткурсе? Пишите — @araviw

В этом канале публикую советы по верстке на Геткурсе, обзоры собственных решений и скриптов, решение "логических" задачек на платформе

🔥Разработчик года🔥 GetTechAwards'2022-2023
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🎴ГАДАНИЕ ИЛИ ВЫБОР КАРТОЧКИ С ПОДАРКОМ

решила тут пополнить коллекцию игральных решений (а то Колесо фортуны как-то надоело уже)

Один из вариантов геймификации, когда от судьбы не уйти 😄

Отличный вариант для розыгрыша призов, прогревов и прочих активностей.

⚙️ Как работает:
1. Пользователь выбирает карту
2. Ему показывается подарок
3. Пользователь заполняет форму, делая основной заказ
4. После оплаты ему выдается выпавший бонус
(пункт 3 может отсутствовать или идти после пункта 4)


⚡️ Особенности
1. Работает для всех (авторизованный или неавторизованный пользователь)
2. Значение карты сохраняется, те перевыбрать ее нельзя (можно сделать иначе)
3. В коде сами подарки не видны, те подглядеть нельзя (самым прошаренным)
4. Какие-то подарки могут быть, но выпадать редко (настраивается процент показа)
5. Можно настроить так, чтобы количество карт к переворачиваю было больше 1 и зависело от внешних условий
6. С точки зрения ГК выдачу подарка можно организовать по схеме, удобной админу
7. Выдавать можно что угодно - продукты, скидки, бонусы, бонусные рубли и тд и тп.

📍Сам конечный интерфейс зависит от страницы и стилизуется под нее 🧑‍💻

🔮 может принимать вид "горшочков", цветочков, карточек, игровых карт, лото и прочего чего душа дизайн захочет
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩 ПОМЕРИМСЯ... полями?

На ГК нет варианта, чтобы сравнить допполя, поэтому для геймификации приходится использовать серверный скрипт, который получит значения и вернет в ГК искомый максимум.

Но бывают разные случаи. Например, нам ведь не интересно, какое значение было максимальным - нам важно узнать какое именно поле им являлось (по названию). Или, получить перечисление полей с их значениями.

🌀 Данное решение будет особенно актуально, если вы используете опросники в телеграме или геймификацию, в результате которой появляются значения полей пользователя.

Итак, скрипт поддерживает несколько форматов работы

1️⃣ Обычный
https://free.gcdoka.ru/maxfields.php?A=5&B=6&C=10&D=14&E=25
Вернет значение как
Е=25, D=14, C=10, B=6, A=5

2️⃣ С указанием максимального количества
https://free.gcdoka.ru/maxfields.php?A=5&B=6&C=10&D=14&E=25&max_fields=1
Вернет значение как
Е=25
если &max_fields=3
Е=25, D=14, C=10
(те п1 это по умолчанию max_fields равное количеству переменных в запросе)

3️⃣ Вывод имени поля
https://free.gcdoka.ru/maxfields.php?A=5&B=6&C=10&D=14&%D0%95=25&name_fields
Вернет значение как
E


🥵 Как с этим работать
Сам урл такой
https://free.gcdoka.ru/maxfields.php?A={object.peremennay1}&B={object.peremennay2}&C={object.peremennay3}&D={object.peremennay4}&E={object.peremennay5} (к нему еще можно добавить хвостик name_fields или значение max_fields)

где ABCDE - текстовые значения, а {object.peremennay1} названия ваших переменных, те

если поле называется homework, то в урле оно примет вид {object.homework} и именно это отдаст в запросе значение поля

сам домен менять не нужно

👣 есть еще аналогичная логика с минимальными значениями

https://free.gcdoka.ru/minfields.php
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
продолжение поста

🥸 Проблемы
1. после выполнения запроса, проверьте, пришли ли данные (а то мало ли)
2. если пришли - то можно работать дальше
3. если не пришли, то нужно поставить задержку в пару минут, и снова отправить данные. Зацикливать не нужно, обычно за 2 захода все уходит и приходит обратно.

И самое важное - как работать с этим, если допполя содержат русский и нужно тоже получить русский в ответ? 🤬

Если нужно получить в ответ русское название с пробелом - лучше позвать меня, и я сделаю под вас новый вариант скрипта, тк с пробелом не уйдет запрос

✖️самочувствие вчера={object.peremennay5}
а вот без пробела можно
☑️ самочувствие={object.peremennay5}

Если сами переменные с пробелами (точнее, заголовки полей) - то их нужно переименовать в латиницу, тк не уйдет запрос.

👀Ань, а что делать в итоге-то?

1. Создать процесс по пользователям
2. Создать текстовое поле, в которое придет результат
3. Поправить поля по названиям
4. Создать блок "Вызов url"
5. В url вставить урл с вашими переменными
6. Указать в какое поле записать результат
7. Сделать проверку на то, пришло ли значение

Все! Дальше вы уже работаете, исходя из конечной задачи. Само сравнение вы произвели

💪 В скрипте меняете только переменные, сам домен остается такой, какой он есть

Приятной работы!
Please open Telegram to view this post
VIEW IN TELEGRAM
💵 ВЫБОР ВАРИАНТА РАССРОЧКИ ПРЯМО НА ЛЕНДЕ

⚙️ Как работает

Пользователь может или натыкать (гифка) вариант рассрочки, чтобы увидеть какой у него будет платеж или сразу выбрать из предложенных вариантов (скрипт считает сумму сам в обоих случаях).

Затем юзер выбирает период и заполняет поля. Далее жмет на кнопку "Оформить" и сразу следует проброс на Тинькоф с нужным вариантом рассрочки

⚡️Плюсы
Пользователь сразу видит какие предложения по рассрочке ему доступны и какой первый взнос

Переход к рассрочке идет без лишнего клика на странице оплаты (удобство пользователя превыше всего!)

Сразу после отправки заявки и ее одобрения, статус заказа меняется в ГК

Собрано без лишних интеграций, поэтому работает "из коробки" самого ГК

На скринах два варианта оформления - "лендовский" и лаконичный белый вертикальный

Удобство для админа - нужно только указать стартовое предложение, скрипт сам дальше все считает сам.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👀ПОВЕДЕНИЕ ССЫЛОК В ЛЕНТЕ ОТВЕТОВ

Покажу мини-лайфхак, который упростит жизнь вашим экспертам 😉

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

Казалось бы, мелочь, но неприятно. А вот если бы все ссылки сразу открывались в новой вкладке, то это было невероятно удобно!

Потому что это сильно влияет на работу кураторов и скорость проверки дз.

"Ага, понятно. А теперь, Аня, покажи мне скрипт!" 😂

<script>
$(function() {
    if(window.location.href.indexOf('/teach/control/answers') > -1) {
        $(document).ready(function() {
          $('.answer-content .title a, .answer-content .answer-main-content a').attr('target', '_blank');
        });
    }
})
</script>

Поставить можно в настройки аккаунта

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

Пусть ГК всегда и везде будет удобным! 👌
Please open Telegram to view this post
VIEW IN TELEGRAM
Поговорим про страшную картинку из этого поста?

Сначала - жуть какая. Ааа! (я так вчера подумала, когда увидела)

А потом - а не, все ок (после разговора с Сергеем Михайловым)

Если кратко - лимиты для новых интеграций.
Для старых все нормально будет.

Полная версия ниже
Коллеги, насчет лимитов.

Стоит начать с того, что лимиты всегда были. Часть из вас как минимум сталкивалась с лимитами на загрузку пользователей в своих аккаунтах внутри админки. Этот лимит можно было отключить через техподдержку, и никому не отзывали, те ограничения были, хоть и не очень явные.

Теперь о размерах лимита по API.

1) Добавление пользователей в аккаунт это целевое действие по добавлению конкретно новых юзеров. Как таковые апдейты карточек пользователей через API не входят в значение лимита.

По сути дела мы говорим тут о том, что объем добавления пользователей превышает разрешенный объем самого аккаунта, что ведет к изменению тарифа. Если клиент увеличивает тариф, то для него уже новый лимит вступает в силу. Если не увеличивает, то он должен почистить базу. Тут выбор клиента - менять тариф или почистить базу. Просто принять решение о изменении тарифа нужно будет быстрее, чем обычно :)

Поэтому лимита по пользователям вполне хватит. Он с запасом

2) Добавление заказов
Количество заказов, добавленных через апи равно количеству пользователей. Целиком ли вся база покупает где-то "на стороне", отчего приходится делать импорт 100% количества заказов? Нет. Даже если предположить, что вы используете полностью прием платежей не в ГК, то все пользователи базы одномоментно не покупают.

Здесь может возникнуть вопрос в различного рода интеграциях, которые создают нулевые заказы внутри аккаунта. Но чаще всего такие заказы не создаются на всю базу. Создаются именно заказы по целевым действиям клиента. Даже если вы отслеживаете много целевых действий, то они опять же не идут по всей базе сразу. Поскольку лимит на месяц, то его вполне хватит.
И тут тоже - обновление заказа не учитывается в лимите

3) Платежи. Вероятно самое "тревожное" место в данной таблице.

Здесь есть два момента - текущие/будущие интеграции и то, как вы именно их проводите.

Начнем со второго. При анализе того, каким образом закрываются оплаты по заказам через API, было выявлено - что вы грузите или просто изменение статуса без платежа или полностью платеж единой суммой, те внутри одного заказа не используется частичная оплата, передаваемая через API, те тут один заказ = один платеж, не будет такого, что один заказ дает несколько платежей через API, что пропорционально увеличивает количество запросов.

Рассмотрим случай, что у вас школа на ГК, но все варианты оплат вы принимаете через стороннюю интеграцию платежной системы (или несколько систем), и затем догружаете платежи. Сколько реально у вас таких операций? Продают ли школы на такое количество сделок?

Да, такие проекты есть, но они являются скорее исключением, чем общей тенденцией (где по апи приходят платежи от "резервных" платежек). Цифры в лимитах появились как следствие анализа операций по данным. Сейчас в работе находится задача по тому, чтобы оцифровать данные внутри аккаунта - какие лимиты как использованы. Скоро появится.

И наверное самое важное.

Лимиты на все - календарные. Каждый месяц лимит начинается с начала.

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

Для всех старых интеграций, которые уже работают (те на все созданные и задействованные API ключи), лимиты индивидуально расширены. Сформированы на основании данных по прошлой работе API для аккаунта и еще небольшой плюс. Когда будет выведена информация по использованию лимитов внутри аккаунта, то вы сможете увидеть "свои" цифры. Но и тут ГК готов по запросу увеличить цифру, если она будет меньше, чем ваши текущие потребности, но тоже в индивидуальном порядке.

И еще про деньги.
Коснется новых интеграций.
Если взять средние цифры - 10тр средний чек и 750 платежей (Полководец). Может ли школа, получившая 7,5 млн позволить тебе доплату до следующего тарифа? Вполне может. Доплата составит мизерную часть этого дохода.

____
апд

⚙️ статистика тут
http://ВАШ_ДОМЕН/pl/saas/account/api-limits
Please open Telegram to view this post
VIEW IN TELEGRAM
РАБОТА С ДАННЫМИ РАЗНЫХ ОБЪЕКТОВ

🥳 Создала решение, которое позволяет свободно поддерживать работу с данными, которые принадлежат разным типам объектов.

🏝 Когда вам пригодится это решение:

🟢 нужно переместить данные из системных значений в допполя

🟢 нужно переместить данные из одного допполе в другое допполе внутри одного типа объекта

🟢 нужно переместить данные из допполя одного объекта в допполе другого объекта

🟢 нужно использовать данные, которых у ГК вообще нет в доступе, они появляются только в процессах

Например, вам нужно "перекинуть" для работы данные пользователя из его карточки во все его заказы.  Но сделать это нельзя, тк значение допполя пользователя никак не вписать в допполе заказа. С такой же проблемой вы столкнетесь, если вам нужно перекинуть системные метки в значения допполей самого пользователя.

Или например, вы хотите сделать точный обратный таймер окончания доступа в тренинге и вывести необычный формат даты, для чего нужно вытащить данные из покупки (точнее, из переменной, которая есть только в процессе) и каким-то образом переместить в допполе пользователя.

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

🫥Или даже для решения задач напрямую не связанных с полями, а именно с кастомизацией оформления. Например, вы делаете оформление, где у каждого ученика должна быть выведена фотография его учителя. Можно сделать костыль или поработать руками, а можно - взять значение пути к файлу аватарки преподавателя из переменной по покупкам и через это решение записать данные в карточку пользователя. В случае смены преподавателя - скрипт сам обновит данные.


Цена 10тр. Покупаете один раз, можете использовать в неограниченном количестве проектов. Техподдержка по запросу присутствует :) пишите @araviw

❤️ у участников ДиВ (тариф Профи) будет это в бонусах
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥🔥🔥 Забыла!

Допишу отдельным постом :)

⚡️⚡️⚡️Это решение позволяет не только в рамках одного аккаунта работать, но и передавать данные между аккаунтами.

Например, у вас идет регистрация на вебинар в аккаунте №1, а вот виджет и оплаты вы принимаете уже на аккаунт №2. Как сделать дожим тех, кто не оплатил, но был на вебе? Ручками сопоставить емейлы. Или воспользоваться этим решением, которое обновит данные в аккаунте №1, взяв их из аккаунта №2 ✈️
Please open Telegram to view this post
VIEW IN TELEGRAM
Мультиформатные блоки

У ГК по умолчанию есть колонка (она же обложка) с произвольным контентом, а есть "Блок: Две колонки с произвольным контентом". Так и получается, что все остальное - это уже плитки или сильная переделка макета.

Метод, описанный ниже, позволит вам комбинировать разные блоки на один экран.

⚙️ Делаем экран где у нас должно быть три блока. Каждый блок - это две колонки с произвольным контентом. И все формы, обработчики - будет работать в рамках "родного" блока.

Берём:

1️⃣ css-код (вставляйте отдельным блоком)

/* поведение общего контейнера, в котором соберутся нужные блоки*/
.variable-column-all {
    gap: 20px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}

/* стили одного блока, на две колонки нужно 50%, на четыре - 25% */
.variable-column-all .variable-column {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 32%;
          flex: 1 1 32%;
  border: 2px solid #000;
  border-radius: 25px;
}

/* если хотим изменить фон конкретного блока */

.variable-column-all .variable-column:nth-child(1) {
  background-color: #deb1de;
}

.variable-column-all .variable-column:nth-child(3) {
  background-color: #c5e8d5;
}

2️⃣ js-код

$(function() {
    //Клонируем блоки
    var clonedElements = $('.variable-column').clone(true);
   
    // Скрываем исходные элементы
    $('.variable-column').css('display', 'none');
   
    // Добавляем скопированные элементы в .variable-column-all
    clonedElements.appendTo('.variable-column-all');
});

3️⃣ пустой html-блок

В который вставляем

<div class="text-center variable-column-all"></div>

4️⃣ И сами блоки с классом variable-column
.
У меня это три двухколоночных. У каждого указан нужный класс.

Собираем, ставим, сохраняем! 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Типичная ситуация у спеца ГК

Пятница, хорошее настроение, а тут ГК упал 😅 (не, все в порядке с ним сейчас, это просто к слову пришлось)

Если вы еще не побаловались новыми эмодзи, то Emoji Kitchen ждет вас 😄

К ГК отношения не имеет, но настроение вам поднимет :))

Какие у вас необычные смайлы вышли?
Please open Telegram to view this post
VIEW IN TELEGRAM
"Фиксики" для системной корзины

Если в скрине выше вас ничего не удивляет - вы счастливчик 😉

По умолчанию корзина в ГК умеет только добавлять позиции. Бедные пользователи порой кладут десятки товаров, потому что информационное сообщение не очень заметно, а кнопка не меняет свой статус 🤬

Удалить товар можно было только из просмотра корзины, теперь же удаление доступно сразу же со страницы :)

Обновление функционала для корзины можно взять в Клубе (или у меня в лс).

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

Что лечим дальше? 🆘
Please open Telegram to view this post
VIEW IN TELEGRAM
Немного субботнего юмора в стиле Терминатора 😂

зы есть конечно проекты, которые с первого раза сдаются без дополнительных хотелок или правок, но их так мало :))

зыы буду душнилой, но на картинку нужно смотреть с точки зрения концепта фильма. А то мало ли чего 🙈
Классификация на ГК
(сортировка, фильтрация)

Очень частая задача, под которую не было решения на платформе.

Что объединяет три мини-обзора? Общая логика работы с контентом. Когда есть общий список и его нужно разделить на несколько списков или пересекающихся сущностей по условию (чекбоксу).

Глоссарий более показателен в этом плане, тк он позволяет не только фильтровать, но и добавлять в фильтр новые условия (смотрите принадлежность темам - она может работать как добавление, так удаление пересечений).

Забрать решение можно в клубе или запросить реализацию под проект в ЛС.

Где может пригодиться?
В любом проекте, где есть потребность сделать из одного списка сразу несколько отдельных, не дублируя сам контент.


Показать как выглядит это решение в списке уроков? 😏