Обратный звонок
Вам перезвонят
Ваше имя
Телефон для обратной связи
E-mail
Краткое описание Вашего вопроса

Подержка и доработки по сайту Профессионального фитнес-сопровождения в городе Балашиха.

Разработчики
Платформа Shop script 8
Программист Дмитрий Б.
Краткое описание

Компания Quadro Design реализовывает работы по технической поддержки, верстки и доработок программной части сайта...

Адрес сайта: ifitnesspro.ru
В наличии
Спросить о товаре

Описание

Замечания:

  1. Проверяю замену упражнения. При смене Разминки появляются поля веса и повторения. У Разминки весов нет, только повторения. +

Проблемы:

  1. В Админке нельзя увеличить год в дате окончания подписки. Валидатор пишет “Неправильная дата”. Меньше и равно 2022 поставить можно. Более 2022 - нельзя, ошибка. Формат этого поля стоит Birthday. Где его поменять - я не нашел. +
  2. Если в Админке заменить упражнение, то у клиента меняется только название. Описание техники и видео выполнения не изменяется, то есть они остаются от старого упражнения. Должны меняться на новые. Также должна меняться и карта весов от нового упражнения. +

Замена упражнения:

  1. Добавить кнопки выбора упражнения:

  1. При нажатии на кнопки ротируются упражнения на одну группу мышц. Меняются (и сохраняются):
  • название упражнения; +
  • техника выполнения (описание); +
  • техника выполнения (видео); +
  • веса и повторения (из админки); +
  • карта весов.

Количество подходов остается старым (не меняется).

  1. Упражнения берутся из массива in_array($upr_group, ['upr041','upr042','upr043','upr044','upr045'], false), который я буду заполнять вручную в файле на сервере для каждой группы мышц. Каждое упражнение входит в свой массив.
  2. Могут быть массивы, в котором только одно упражнение. Тогда ротации нет (кнопки не показывать).
  3. Выбранное упражнение сохраняется в текущей тренировке и используется далее до тех пор, пока клиент не сменит его снова.
  4. Замена упражнения доступна только при активной подписке и в тренировочный день (также , как замена карты весов).
  5. И в дополнение к ранним задачам: при изменении в админке файла описания техники или файла видео этот файл должен обновляться, то есть заменять предыдущий (имя файла одинаковое) +

Проверил Подписку:

  1. Если клиент не зарегистрирован, то при Оформлении подписки (нажатии на кнопку “Подтвердить заказ”) он переходит в Личный кабинет на страницу “Мои подписки.” Раньше ему предлагалось сначала Зарегистрироваться. Нужно вернуть старую логику: незарегистрированный клиент не должен иметь доступ в Личный кабинет (даже если он оплатил подписку). если он заплатил, то аккаунт автоматически создается А как клиент узнает логин и пароль созданного аккаунта? Забудет ввести эти данные и пропадут уплаченные деньги. В Настройках - Оформление заказа - Подтверждение стоит невозможность оплаты без регистрации. вы можете изменить метод входа в систему с одним временным кодом каждый раз, когда пользователь входит в систему Могу изменить, но это не удобно клиентам. Правильнее, это подтвердить один раз почту. Поправьте, пжл, как было. Я не знаю, о чем вы говорите, мы не трогали эти настройки, поэтому мы не можем вернуть то, что было, я даже не знаю, как это было раньше.

Спасибо, разобрался. Теперь все ОК.

  1. После успешной оплаты клиент возвращается на страницу заказа, а там указана старая информация (статус Новый, кнопка Оплатить). да, потому что время до отправки банком ответа на сайт занимает несколько секунд Нужно после возврата автоматически обновлять страницу (или сделать новую страницу “Заказ успешно оплачен. Вернуться к моим заказам (ссылка на “Мои заказы”). +++ сделан +++ https://ifitnesspro.ru/payment-success/?order_id=89

https://ifitnesspro.ru/webasyst/shop/?action=storefronts#/pages/2

  1. Еще проблема: если клиент-реферал оплачивает новую подписку бонусами и к оплате у него 0 руб., то нужно сразу автоматически переводить заказ в “Выполнен” и менять срок подписки на оплаченный. Сейчас есть возможность попытаться оплатить такой заказ и получить ошибку.
  1. В каком файле меняются формулы калькулятора для перерасчета дней подписки? /wa-apps/shop/plugins/subscription/lib/classes/shopSubscriptionConvertor.class.php В каком файле меняется страница после успешной оплаты? Страница для перехода после ошибки оплаты https://ifitnesspro.ru/failure/ ? /wa-apps/shop/lib/classes/shopPayment.class.php где я изменился на /payment-success

Уведомления

  1. Во вкладке Тренировка на неактивные даты добавить уведомления на определенные события:
  • за 7 дней до окончания срока подписки появляется уведомление “Ваша подписка заканчивается 22.05 (дата окончания). Продлить подписку?” При нажатии на уведомление (блок как кнопка) переход на страницу Подписки /ru/subscription/ После даты окончания подписки не показывается.
  • После окончания даты подписки появляется уведомление “Подписка неактивна. Оформить подписку?” При нажатии на уведомление (блок как кнопка) переход на страницу Подписки /ru/subscription/ При активной подписки не показывается.
  • После окончания тренировочного цикла $cicle_num = $contact->get('cicle_num'); когда $cicle_num > 700, появляется уведомление “Вы завершили подготовительный этап. Начать следующий этап?” При нажатии на уведомление (блок как кнопка) это уведомление не показывается, и появляется новое уведомление “Следующий этап - развивающий. Вы можете оставить текущие тренировки FullBody, но мы рекомендуем перейти на тренировки Split AB.” И две кнопки “Оставить” и “Перейти”. При нажатии на “Оставить” это уведомление не показывается и появляется новое уведомление “Вы перешли на следующий этап. Изменить вид тренировки можно в любой момент в Вашем профиле.” При нажатии на “Перейти” уведомление так же меняется на “Вы перешли...”, но одновременно вид тренировки клиента меняется на Split AB, а $cicle_num = null; сохраняется $contact->save(array('cicle_num' => $cicle_num));

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

Если клиент сегодня выбрал новый этап (не важно, сменил ли он вид тренировки при этом или нет), то последнее уведомление “Вы перешли…” остается активным в течение всего этого дня. После смены даты его показывать не надо. То есть завтра этого сообщения клиент уже не увидит.

++в остальном можете проверить++

Вчера я видел, что в сообщении “Ваша подписка заканчивается 22.05 (дата окончания)” дата показывалась в западном формате - мм.дд Это исправлено на дд.мм? да, только сейчас исправил ок

Проверил. Неточность одна: после выбора смены тренировки сообщение “Вы перешли…” появляется и после обновления экрана сразу исчезает. Оно должно висеть целый день, до смены даты. Можно просто повесить таймер на 10000 сек. Не принципиально, чтобы именно до смены даты. Просто достаточно долго, чтобы клиент его мог несколько раз увидеть и осознать, что поменять обратно можно в любой момент в ЛК.

хорошо, тогда мы установим куки на один день

Ок, по результатам тестирования вполне может случиться, что некоторые клиенты захотят видеть это сообщение длительное время - несколько дней или даже постоянно, чтобы не забыть, что у него тренировки уже другие и при случае вернуться к привычным упражнениям. вы можете изменить время shopIfitnessPluginFrontendChangecicle.controller.php

wa()->getResponse()->setCookie('cicle_changed', 'changed', time() + 24 * 3600);

сейчас 24 часа


Все работает, как надо. Спасибо! Будем тестировать дальше. Хорошо

  1. /wa-apps/shop/plugins/ifitness/lib/classes/shopIfitnessNotifications.class.php – здесь вы можете изменить настройки о том, когда показывать уведомления
  2. /wa-apps/shop/plugins/ifitness/lib/actions/frontend/shopIfitnessPluginFrontendChangecicle.controller.php – это действие запускается при изменении цикла
  3. /wa-apps/shop/plugins/ifitness/templates/actions/frontend/FrontendTraining.html – (после строки 207) где они показывают

Доп.задача 07.04.2022

  1. Я добавил в таблице оценок БД (shop ifitness ocenki) новые оценки (type= 3) для оценки готовности к тренировке. При нажатии на оценку упражнения “Разминка” (upr000, upr100, upr101 и др. - это всегда первая строка в любой тренировке или упражнение, в котором нет карты весов veskart = null) должна открываться новая таблица оценок “Готовность к тренировке” с этими оценками. как это должно работать? что происходит после того, как пользователь выбирает оценка.

после сохранения больше не появится?

При оценке Разминки открывается окно с другим списком оценок. Остальное все также. Нет, если значение оценки сохранится - этого будет достаточно для работы с ним. Нужно только другое описание. Оценки не важно какие. Просто расчитать тоже самое, но со списком type= 3.

происходит на каждой новой тренировке? (form, form-b, form-c) каждую новую дату? Да, как и все оценки. Все упражнения, кроме Разминки, оцениваются по списку type= 1, а разминка - type= 3. Это единственное отличие. Хорошо, сегодня будет сделано

для бонуса на вынос нужны еще изменения или все?

Только те, которые указаны ниже. п. 3 и 4 ok


а можно как-то class обозначить? чтобы можно было поправить именно эту таблицу? что именно менять? таблица (класс) та же, только данные меняются

в новой таблице текст длиннее и его надо бы ближе к левой границе придвинуть, а старую таблицу оценок оставить, как было. Ок добавил класс 'type-3' Ок, теперь все хорошо. ok

  1. В Статистике некорректно работает скрипт горизонтального скроллинга тренировок - последняя тренировка скрывается за границей экрана. исправим
  1. В Статистике при Выводе средств выбор стрелочками не нужен - не удобно при выборе десятков и сотен баллов. type="text" Но при этом не сохраняется введенное значение. хорошо

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

да, сохраняется только в админке и на почту

  1. При введении значения, больше, чем количество бонусов, выдавать сообщение “У вас недостаточно бонусных баллов, чтобы продолжить это действие.”

Не работает. Ввожу большее значение. Все нормально принимается и

сохраняется. Должно выдавать ошибку и не сохраняться и не отправляться.

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

Можно и так. Только сейчас на любое значение выдается ошибка. Даже если число меньше. Сейчас если бонус = 0, открывается окно с текстом “У вас недостаточно бонусных баллов, чтобы продолжить это действие.” Пусть это же окно открывается при попытке сохранить большее значение?

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

хм, вы очистили кеш?

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

Правильно работает только один раз: если перегрузить страницу, и после ввести правильное число - если меньшее - то сохранится, если большее, то ошибка. Но если это сделать не перегружая страницу, начинаются глюки.

Или просто добавить к бонусу по умолчанию пару-тройку чисел.

У меня просто не появляется эта ошибка, если я не найду ее сегодня, то вы можете показать нам завтра, и мы это исправим ОК

Нашел ошибку: max парсится только первая цифра, потом в {$balance} идет пробел. Поэтому максимальное значение баланса 7 520 равно 7. Отсюда и ошибка в сравнении для 4-х и более значных чисел. Теперь все работает, как надо. вы исправили? Да. хорошо

Задача 08.02.2022

Общие положения

Доработка продукта WebAssyst Script-Shop вер. 2.4.1.636

Адрес сайта https://ifitnesspro.ru

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

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

Админка.

Замечания (04.04.22)

Я начал тестировать приложение в реальном тренировочном процессе и обнаружил такой глюк:

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

Подозрения у меня два:

1. запланированная, но незавершенная тренировка меняется при смене даты.

2. если клиент начал тренировку, то есть оценил упражнение, но не завершил её в этот день, то тренировка аннулируется при смене дат.

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

Замечания (02.04.22) Появились следующие проблемы:

  1. Во вкладке Тренировка, когда нажимаешь на упражнение, открывается экран упражнения с весами и подходами. При нажатии на смартфоне кнопки Назад, раньше экран возвращался на страницу Тренировка. Сейчас этого не происходит. В браузерах также кнопка Назад не работает.

Все ОК.

  1. У меня установлен плагин Реферальная программа. Там в клиентской части раньше выводился график поступлений начислений. Теперь этот скрипт не работает ../www/wa-apps/shop/plugins/referrals/templates/report.html

Все ОК.

Замечания (02.04.22)

  1. Если клиент в личном кабинете (или админ в админке) меняет тип тренировки с FullBody на SplitAB, то фиксируется следующая ошибка:

при нажатии на первое упражнение (Разминка (беговая дорожка)) не могут загрузиться повторения. Иконка загрузки непрерывно крутится.

В админке при просмотре этого упражнения есть только его название. Строка повторений отсутствует вообще.

Остальные упражнения в порядке. +++ проблема в том, что у Разминки не было Подходы в админке, я добавил 1 Подход и теперь он отображается все хорошо

  1. Также при смене клиентом (или админом в админке) в личном кабинете типа тренировки с FullBody на SplitAB в Статистике ( в личном кабинете и админке) пропали все предыдущие тренировки за весь период. То есть при смене типа тренировки Статистика обнуляется. Она должна сохраняться все время существования аккаунта.

Возможно, эта проблема является причиной и вышеуказанной ошибки. То есть некорректно заменяется тренировка.

статистика не обнуляется, она просто настроена для отображения для каждого типа тренировки, например, если вы вернетесь к fullbody, снова будет показана статистика старого fullbody. вы хотите, чтобы показывал статистику для всех тренировок ( если выбрано FullBody, показать статистику для FullBody, split ab, split abc? ) ?

  1. При смене типа тренировки в личном кабинете постоянно открывается окно “Сменить пароль”. Раньше такого не было. Проблема появляется при попытке редактирования в ЛК любого поля в профиле клиента.

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

А можно сейчас показать это в Скайпе?

Я программист, Дима сегодня не работает, можете объяснить здесь а я посмотрю

Я зашел со своего аккаунта (Падюков Игорь) - все работает.

Если зайти с тестового аккаунта, то при аккуратной смене даже пола или роста, вылетает смена пароля.

Другие тестовые аккаунты также вызывают открывание смены пароля.

сейчас попробовал, все нормально, можно попробовать очистить кеш

Очистил кэш браузера, даже зашел с другого браузера, проблема осталась.

Буду искать причину у себя на компе. Хорошо

Проблема была в автозаполнении, которое включено было.

Замечания (18.03.22)

  1. При регистрации нового клиента через страницу оплаты пробная подписка на Новичок не происходит.

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

  1. После истечения срока подписки статус подписки не меняется. Она остается активной. +++ исправили+++

Доп. задачи (16.03)

  1. Для расчета следующей тренировки нужно знать, какая она по счету. То есть каждая 10-я тренировка должна рассчитываться с поправкой на периодизацию нагрузки (снижать на 40-50%). Примерно так:

if ($cicle_num >= 10) {

$ves_low = 0.6;

$cicle_num = 1;

} else { $ves_low = 1; }

Откуда можно взять номер текущей тренировки $cicle_num ? вы не можете, это нужно настроить

Настраивать не нужно, сам нашел решение.

Доп. задачи (04.03)

Замечания (13.03.22)

  1. Если оценка упражнения 10, то в статистике клиента показывает
  2. При расчете следующей тренировки оценка любого упражнения всегда 3 , не зависит от реальной оценки, которая показывается в таблице. Ошибка в файле расчета shopIfitnessPluginFrontendSaveocenka.controller.php в стр. 189-195:

$get_ocenka_calc = $history_model->getByField($search_fields_calc); if ($get_ocenka_calc) { $ocenka_upr = $get_ocenka_calc['grade']; } else { $ocenka_upr = '3';

}

  1. В админке “Тренировка” веса в упражнениях только целые числа. Нужно вводить дробные. Пример, 27,2 или 3,75

Замечания (07.03.22)

мы добавили кнопку для очистки пользовательской тренировки, статистики и Оценки в целях тестирования.

  1. Все работает, но стрелки смены карты весов отображаются только в настольном Chrome. В мобильном Chrome, Firefox, Opera, Яндекс Браузере и др. стрелки не видны. Соответственно, сменить карту в этих браузерах нельзя.

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

  1. При открывании окна выбора активный вес (или повтор) выделяется зеленым полем и показывается вверху контейнера. Можно сделать так, чтобы он показывался ровно в середине, а середина контейнера было ровно над той ячейкой, которую меняем?
  2. Где можно изменять расположение контейнера по вертикали и горизонтали Я вижу что вы уже нашли это, как менять дизайн стрелок (тут в будущем будут картинки, не текстовые стрелки как сейчас)? /wa-apps/shop/plugins/ifitness/templates/actions/frontend/FrontendTraining.html
  1.  Выбор клиентом чисел нужно сделать в два клика: клик на число - прокрутка - выбор числа из списка: (доп задачи) нуждается в подробном объяснении

Веса выбираются из значений Карты весов для этого упражнения (на компьютере колесиком мышки прокручиваются все значения, на смартфоне - скрол пальцем);

Пример: для upr017 в шаблоне админки закреплена карта весов №3. Следовательно, при нажатии на значение веса откроется окошко со значениями весов из этой карты и нажатием можно выбрать нужный вес, который сохранится в данной ячейке. Окошко закроется. Если у клиента на тренажере нет таких весов, можно стрелками перебирать карты и остановиться на другой карте, в которой нужный вес есть. При выборе веса из другой карты номер этой карты закрепляется за данным упражнением для этого клиента и показывается при следующем выборе в этом упражнении. Перебор карт нужно закольцевать, то есть для карты 3 при нажатии на стрелку влево (к примеру) меняются карты 2,1,5,4,3,2,1 шаблона и т.д. Если вправо, то 4,5,1,2,3,4,5 и т.д. Пока таких карт 5, но их количество может увеличиваться.

Повторения выбираются только из Карты весов №5 (нормальный ряд чисел от 1 до 50). Для повторений стрелок выбора карты нет.

  1. При расчете весов и повторений следующей тренировки сейчас веса округляются до целого числа, а нужно сделать, чтобы выбиралось ближайшее значение из карты весов данного упражнения.

Пример: В блоке расчета следующей тренировки новый вес рассчитан как 22 (старый вес был 20). Для этого упражнения из шаблона (или была выбрана клиентом - п.1 доп.задач) закреплена карта весов №3 - 5,10,15,20,25,30 и т.д. Веса 22 в карте нет. Значит выбирается ближайший к нему вес - 20 (то есть вес не изменится). Для веса 23 выбран был бы 25 (вес увеличится).

Вопросы ко 1 этапу

  1. Массив весов вводить прямо тут через запятую? Дело в том, что тут в ячейке нужно указать только ID карты (1 или 2 или 3 и т.д. не сами веса). Список весов для каждого тренажера свой и отличается в разных залах. Поэтому в БД где-то надо будет создать базу всех возможных комбинаций. Их не так много, не больше 3-4 на каждое упражнение.

Можно создать на панели плагина после тренировок FullBody, Split AB, Split ABC еще четвертый раздел: Карты весов и там аналогично создавать и сохранять списки весов, из которых потом брать значения:

Вопросы ко 2 этапу (07.03.22)

  1. Обнаружил неисправность: при завершении тренировки после всех оценок раньше тренировка завершалась, кнопка Завершить тренировку становилась неактивной, надпись менялась на Тренировка завершена. Теперь завершить тренировку нельзя. Кнопка активна всегда. я не понимаю что именно вы имеете в виду

Поясню:

  • захожу в админку и меняю клиенту упражнение;
  • клиент выполняет все упражнения и оценивает их;
  • завершает тренировку и оценивает её;
  • дата тренировки становится зеленой, но кнопка “Завершить тренировку” остается активной и тренировка не зевершается. При нажатии на нее снова предлагается оценить, но после оценки завершения не происходит и следующая тренировка не рассчитывается.
  • если упражнение не менять или менять только веса, повторения и подходы, то все происходит штатно. Сбой только после изменения упражнения.
  1. Если тренировка завершена, то спустя какое-то время появляется надпись “Вы завершили сегодняшнее занятие …” При переключении на другой день, она не должна показываться. Сейчас получается вот так:

  1. Замечание к кнопке “Завершить тренировку”
  • при нажатии на кнопку (если не все оценки), открывается надпись “Ошибка! Не все упражнения выполнены”
  • Окно с этой надписью показывается вверху экрана.
  • Нужно, чтобы якорь был еще выше, в начале страницы.

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

  1. При корректировке в админке весов и повторений текущей тренировки веса и повторения в самой тренировке меняются. А в начальной вкладке Тренировка в ячейке с названием упражнения и нагрузкой (4х10х10) цифры не меняются.

+ на каждый подход будет новая строка

Ячейка получается слишком перегруженной. Сделаем пока такой вариант: 4х10х10, где 4 - общее количество подходов, 10х10 - вес и повторения в первом подходе.

Проверил: при изменении весов/повторений в админке у клиента в ЛК все равно отражается несколько строчек, а должна только одна: все подходы х веса в первом подходе х повторения в первом подходе

  1. Вкладка Админка-клиент-тренировка. Можно отредактировать веса и повторения. Нужно иметь возможность добавить дополнительные подходы и сменить упражнения.

Не смог проверить.

  • Как мне добавить клиенту в существующую тренировку еще один подход или удалить лишний подход?
  • Как мне заменить клиенту упражнение upr021 на upr002?
  1. Чтобы сейчас отменить подписку клиенту, нужно выбрать в админке Подписка - пустое поле. Заменить пустое поле на “Не активна”. + (доп задачи)

По-прежнему пустое поле. “Не активна” не появилась. (Кэш в настройках очистил)

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

Согласен. Но как поменять интерфейс в админке? я не нашел.

+++ решили+++

  1. Выбор клиентом чисел нужно сделать в два клика: клик на число - прокрутка - выбор числа из списка:
  • веса выбираются из значений Карты весов для этого упражнения;
  • подходы из Карты весов №0 (нормальный ряд чисел от 1 до 50).

Если нужного веса в карте нет, то возможно сменить карту на другую.

  1. При расчете весов и повторений следующей тренировки сейчас веса округляются до целого числа, а нужно сделать, чтобы выбиралось ближайшее значение из карты весов данного упражнения.
  2. Как можно тестировать перерасчет следующей тренировки, не ожидая три дня? Пока я вижу только один способ - создать нового клиента, оценить и завершить его тренировку и так запустить перерасчет. Существует ли способ обнулить завершение тренировки? Что именно нужно поменять в БД, чтобы отменить завершение тренировки и еще раз ее пересчитать (с новыми данными, сохранять старые данные нет необходимости)?

таблицы базы данных

shop_ifitness_history (удалить строку, где user_id = ваш идентификатор пользователя)

shop_ifitness_user_temp (удалить строку, где user_id = ваш идентификатор пользователя)

shop_ifitness_user_training (удалить строку, где user_id = ваш идентификатор пользователя)

1 этап

_____________________________________________

1.1 Магазин – Настройки

1.1.1 Добавить вкладку Тренировки (между Режим работы и Типы товаров)

1.1.2 Внутри Тренировки три вкладки (аналогично как в Типах товаров):

- FullBody

- Split AB

- Split ABC

Эти вкладки содержат таблицу:

Все таблицы для этих вкладок в Приложениях.

1.1.3 В таблице можно изменять значения любой ячейки. Эти изменения должны сохраняться в БД (кроме даты). Дата здесь всегда показывается как текущая. История изменений не нужна.

1.1.4 Все данные по каждому упражнению сохраняются под своим уникальным IDupr. Если в ячейке IDupr указать номер уже сохраненного упражнения, то в соответствующих ячейках отображаются ранее сохраненные данные. Если сохраненных данных еще нет, то в БД генерируется новый IDupr с указанным значением и под ним сохраняются новые данные.

1.1.5 Каждое упражнение имеет следующие данные:

- уникальный номер IDupr;

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

- вес отягощения;

- количество повторений.

- графа Оценка пустая (пока).

1.1.6 Нумерация упражнений внутри каждой тренировки собственная, по порядку от 1 до последнего упражнения, исключая первую Разминку (см. рисунок). В описание упражнений (п.1.1.5) не входит.

1.2 Управление Данными клиента в Админке:

1.2.1 Добавить Вид тренировки в меню Покупатели - Имя клиента – Редактировать контакт – Контакты:

1.2.2 Виды тренировки зависят от уровня подписки клиента:

- не активная (только FullBody)

- Новичок (FullBody или Split AB)

- Профи (FullBody, Split AB или Split ABС)

- Тренер (FullBody, Split AB или Split ABС)

При отсутствии нужного уровня подписки недоступный вид тренировки не показывается.

2 этап

_____________________________________________

1.2.3 Добавить возможность смотреть и редактировать Тренировку (п 2.1) и Статистика (п.2.2.10) клиента в меню Покупатели - Имя клиента – Редактировать контакт – Тренировка/Статистика

1.3 Подписка:

1.3.1 Пока устанавливается вручную в Админке по каждому клиенту. Позже, возможно, закажу доработку автоматической оплаты подписки через платежные системы.

- неактивна (подписки нет)

- активирован уровень Новичок до даты окончания подписки;

- активирован уровень Профи до даты окончания подписки;

- активирован уровень Тренер до даты окончания подписки.

1.3.2 Добавить Подписка в меню Покупатели - Имя клиента – Редактировать контакт – Контакты: с меню для выбора администратором уровня и даты окончания срока подписки. (Возможно, лучше вариант через Доступ или Группы, надо обсудить их функции)

1.3.3 После окончания срока подписки Подписка становится Неактивна. (должны быть возможность добавления даты вручную для подписки, при окончания даты у клиента блокируется подписка) “Ваша подписка не активна”

Личный кабинет

2.1 В личном кабинете клиента (далее ЛК):

добавить вкладку Тренировка и Статистика (Мои заказы пока просто закомментирован). Во вкладке должна находиться таблица Тренировка (подробнее п. 2.2) и календарь на 7 ближайших дней (подробнее п. 2.2.2)

При нажатии на Упражнение (любое желтое поле) открывается таблица Упражнение:

Сверху таблицы видео с техникой выполнения упражнения.

Синее поле - название упражнения из Таблицы Тренировка (соответствующее выбранному упражнению) и ссылка на файл описания техники выполнения.

Белое поле - данные по весам и повторениям из таблицы Тренировка (в самой таблице не отражены, сохранены при создании таблицы (см. п. 2.1.1-2.1.3) с учетом количества подходов (1,2,...., максимум 9, в примере выше 3 подхода). Все белые поля этой таблицы клиент может отредактировать. Веса вводятся клиентом (не из карты весов. Карта вычисляется по алгоритму, исходя из вводимых клиентом значений, и применяется при расчете следующей тренировки).

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

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

Зеленое поле - Упражнение выполнено. При нажатии открывается таблица Оценка упражнения:

3 балла - Нагрузка не ощущается

4 балла - Очень легкая нагрузка

5 баллов - Могу сделать еще столько же

6 баллов - Могу сделать больше

7 баллов - Могу сделать 3-4 раза

8 баллов - Пару раз еще могу сделать

9 баллов - Могу сделать еще разок

10 баллов - Не могу больше

Синее поле - название оцениваемого упражнения.

Белые поля - при нажатии выбранного поля соответствующая оценка сохраняется в БД клиента, происходит возврат в таблицу Тренировка, выбранная оценка показывается в поле Оценка.

При нажатии на Оценку упражнения (любое белое поле) открывается таблица Оценка упражнения, где клиент может переоценить выбранное упражнение.

При нажатии на Завершить упражнение (зеленое поле) открывается таблица Оценка тренировки:

При нажатии выбранного поля соответствующая оценка сохраняется в БД клиента как оценка Тренировки указанной даты, и происходит возврат в таблицу Тренировка.

Если существует хотя бы одно упражнение, оценку которому не проставлена, то всплывает сообщение “Не все упражнения выполнены”.

2.1.1 Таблица заполняется в зависимости от состояния клиента:

- состояние 1 – из вкладки FullBody в админке;

- состояние 2 – из вкладки Split AB из админке;

- состояние 3 – из вкладки Split ABC из админке.

2.1.2 Состояние клиента определяется:

состояние 1 – первоначальное состояние после регистрации или выбор FullBody;

состояние 2 – выбор клиентом вида тренировки Split AB;

состояние 3 – выбор клиентом вида тренировки Split ABС;

2.1.3 Выбор вида тренировки клиент осуществляет самостоятельно в зависимости от уровня подписки или администратор через админку (п.1.2.1):

- Новичок (FullBody или Split AB)

- Профи (FullBody, Split AB или Split ABС)

- Тренер (FullBody, Split AB или Split ABС)

2.1.4 Меню выбора во вкладке ЛК Мой профиль:

Вид тренировки: FullBody (выпадающее меню FullBody, Split AB, Split ABС)

2.1.5 Добавить пункты Подписка и Вид тренировки:

2.1.6 Вид тренировки может менять:

- клиент в ЛК (Мой профиль – Вид тренировки - Редактировать) в зависимости от уровня подписки;

- администратор в Админке (Покупатели - Имя клиента – Редактировать контакт – Контакты – Вид тренировки (п.1.2.1))

2.1.7 Вид подписки менять может только администратор (п.1.3)

2.1.7 При недостаточном уровне подписки недоступный уровень тренировки не отображать.

Примеры: При уровне подписки Новичок в меню выбора вида тренировок будет только FullBody и Split AB. При неактивной подписке – только FullBody.

2.2 Отображение таблицы в ЛК.

2.2.1 Заполнение и сохранение таблицы в ЛК происходит строго по текущим данным из шаблона в Админке после создания аккаунта (окончания регистрации), либо после изменения Вида тренировки клиентом или администратором.

  • название упражнения
  • подходы х вес х повторения

При изменении данных в Админке в таблице ЛК изменения не происходят. То есть все данные запоминаются на момент генерации таблицы по шаблону в Админке и могут измениться только после повторной генерации при перевыборе вида тренировки (см. п. 2.1.2)

2.2.2 В Админке каждый вид тренировки состоит из двух или трех таблиц Тренировка А, Тренировка В, Тренировка С (для Split ABС) Однако, в ЛК во вкладке Тренировка нужно показывать только тренировку на ближайшую дату.

Пример: При первой генерации таблицы Тренировка А фиксирует текущую дату сервера (Д1), Тренировка В – текущую дату +2 дня (Д2=Д1+2). Так как сегодня дата Д1, то в ЛК отображается только тренировка А. Дата Д1 окрашена в красный цвет. Завтра дата будет Д1+1, значит после смены даты на сервере должна отображаться тренировка с ближайшей датой. Это Тренировка В. В реальной ситуации Даты Д1 и Д2 для тренировок А и В рассчитываются по алгоритму (п. 2.2.6) и они всегда будут отличаться на 2 дня. Показывать нужно тренировку с ближайшей датой.

При нажатии на дату красного цвета показывается соответствующая тренировка (А или В или С (если выбран Split ABC).

Пример: выбран FullBody или Split AB - по умолчанию показывается ближайшая тренировка (например, А) Красным отмечены все тренировки на неделе:

Вт Ср Чт Пт Сб Вс Пн, то есть следующая тренировка запланирована обязательно через день. Если нажать на Вт - покажет надпись На эту дату тренировки нет.

Если на Ср - Тренировку А, на Чт - Тренировки нет, на Пт - Тренировку В, на Сб - Тренировки нет, на Вс - Тренировку А (или Тренировка С, если выбран Split ABC)

2.2.3 Для клиента с активной подпиской любого уровня для редактирования доступны только поля белого цвета (вес, повторения) и выбор оценок. Для клиента с неактивной подпиской таблица в ЛК сохраняется, но редактирование и расчеты по алгоритму недоступны. То есть пока подписка не активна, таблица не изменяется. Не меняется ни одна графа, включая даты. Все данные сохраняются на последнюю дату активной подписки (или дату регистрации аккаунта, если подписка не была активирована ни разу).

+

2.2.4 После заполнения клиентом всех оценок текущей тренировки (в любом порядке) можно нажать на кнопку “Завершить тренировку” и открыть окно «Оцените тренировку» и выбор от 3 до 10. Данная оценка сохраняется в БД клиента за датой этой тренировки.

2.2.5 Также после финальной оценки тренировка считается завершенной и её данные сохраняются в БД клиента в качестве архивных за текущей датой сервера. Текст зеленого поля “Завершить тренировку” меняется на “Тренировка завершена” . Отображение архивных данных клиента описывается в п.2.2.10

Данные, которые сохраняются после тренировки:

- дата тренировки;

- ID упражнений, подходы (веса и повторения в каждом из подходов) и оценки клиента;

2.2.6 После окончания тренировки А происходит перерасчет данных следующей тренировки А, а именно:

- меняется дата тренировки А на Д2=Д1+2, где Д1 – текущая дата сервера, Д2 – дата следующей тренировки;

- вес отягощений в каждом упражнении меняется по формуле В2=В1+Вдоб, где В1 – текущий вес в упражнении, В2 – вес на следующей тренировки, Вдоб=1,1*В1*(0,93+(10-Оупр)/100), где Оупр – оценка данного упражнения клиентом.

- количество повторений по формуле П2=П1+Пдоб, где П1 – повторения в завершенной тренировке, П2 – повторения на следующей тренировке, Пдоб=В1*П1/В2

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

2.2.7 Тренировка В при этом не изменяется и её дата таким образом становится меньше даты новой тренировки А и в ЛК по умолчанию теперь отображается Тренировка В. А дата сегодняшней тренировки окрашивается в зеленый цвет.

2.2.8 После выполнения Тренировки В и ее финальной оценки таким же образом происходит перерасчет Тренировки В и новые данные сохраняются в БД.

2.2.9 Расчет должен происходить, если подписка активна. Если она не активна, то вносить изменения в белые поля таблицы клиент не может, соответственно оценки не ставятся, финальной оценки нет, перерасчета тоже нет.

2.2.10 Во вкладке Статистика ЛК отображается таблица с сохраненными данными выполненных тренировок. (она ранее была в 3 этапе)

При выборе буквы А верхней части таблицы слева отображается список упражнений Тренировки А, при нажатии на букву В – соответственно список упражнений Тренировка В.

ПРИЛОЖЕНИЯ

Таблицы

- FullBody

- Split AB

- Split ABC

Задача 26.01.2022

Общие положения

Доработка ведется продукта WebAssyst Script-Shop вер. 2.4.1.636

Адрес сайта https://ifitnesspro.ru

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

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

  1. Оплата подписки:

1.1 Карточка товара

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

Пример, товар А - функции Ф1, Ф2, Ф3;

товар Б - функции Ф1, Ф2, Ф3, Ф4, Ф5, Ф6;

товар В - функции Ф1, Ф2, Ф3, Ф4, Ф5, Ф6, Ф7;

товар Г - функции Ф5, Ф6, Ф7, Ф8, Ф9;

товар Д - функции Ф1, Ф9, Ф10;

где Ф1….10 - идентификатор скрытого контента, который при активации делает видимым текст или картинки, разрешает запуск скрипта, выполнение команд и арифметических действий; 10-ти таких идентификаторов должно хватить с запасом. Пока планы только на 3 разных типа Ф-идентификатора доступа:

  • Ф0 - всем посетителям сайта;
  • Ф1 - всем зарегистрированным посетителям сайта, без активной подписки (то что уже реализовано в Script-Shop - добавляется доступ в личный кабинет и его содержанию);
  • Ф2 - всем зарегистрированным посетителям сайта и с активной подпиской на товар А (дополнительное содержание А в личном кабинете и функции А);
  • Ф3 - всем зарегистрированным посетителям сайта и с активной подпиской на товар Б (дополнительное содержание А и Б и функции А и Б в личном кабинете)

- срок подписки кратно 1 месяцу (можно выбрать количество оплачиваемых месяцев от 1 до К, где К - установленное в карточке товара число, 12 к примеру);

- максимальный срок подписки - К месяцев, больше выбрать нельзя;

- стоимость указана за 1 месяц и сумма зависит от количества выбранных к оплате месяцев;

- при оплате М месяцев сумма уменьшается на N % (к примеру, 20% или 0,8 от суммы при оплате более 12 месяцев), можно поменять в карточке товара;

1.2 Оплата подписки

  • на странице товара кнопка Оплатить, при нажатии клиент переходит:
  • если он не авторизован, то на страницу авторизации (регистрации) и после на страницу оплаты;
  • если авторизован, то сразу на страницу оплаты;
  • сумма зависит от товара А, Б или В и т.д. и от количества месяцев, которые выбрал клиент;
  • после оплаты и получения подтверждения от банка автоматически активируется оплаченная подписка на выбранный срок;
  • также при регистрации каждый новый клиент получает 1 месяц Активной подписки бесплатно;
  • при оплате другой подписки (например, Товар Б) при активной предыдущей подписки (например, Товар А или Г) сумма пересчитывается с учетом неиспользованной суммы предыдущей подписки пропорционально оставшемуся сроку (нужно учитывать именно оплаченную клиентом сумму за текущую подписку, а не ее текущую стоимость в магазине. Цена может измениться, или покупка была по специальной цене или со скидкой и т.д.);

1.3 Личный кабинет

  • Во вкладке Мой профиль текст: Подписка активна до хх.хх.хххх и дата окончания подписки;
  • Если подписка неактивна, то текст Подписка неактивна. и ссылка на страницу Товаров с текстом Подписаться;

1.4 Админка

  • Во вкладке Покупатели в таблицу добавить столбцы Подписка (отображается тип подписки (Товар А или Б и т.д.) и срок окончания подписки (последняя дата
  1. Контент и функционал, доступный при активной подписке Товар А.

После оплаты клиент получает ранее закрытый доступ к функционалу и контенту в личном кабинете.

3.1 Личный кабинет

Вкладка Тренировки (видна всегда вне зависимости от подписки и ее активности).

Внутри таблица со следующими столбцами (видна всегда):

Тренировка / Даты тренировки (пример, 12.02.22 / 14.02.22 / 16.02.22 и т.д.)

В таблице указаны упражнения, под датами - веса и повторения.

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

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

3 этап

_____________________________________________

ПОДПИСКА

  • вы можете начать проверять, мы также сделали систему, что если пользователь хочет перейти на другой тип подписки, например, с Новичок на Профи, и у него еще осталось несколько дней от старой подписки, то эти дни (мы сделали калькулятор) будут конвертированы с днями, совпадающими к цене подписки, которую он выбирает
  • еще один момент, я пытался добавить информацию о системе, которую мы сделали на странице /ru/subscription, но я увидел, что она была сделана на (site), а не (shop), и мы не можем использовать классы магазина, там также /ru url в магазине конфликтует с системой, потому что языковой модуль, я думаю, добавит /ru
  • я скопировал ту же самую страницу и добавил ее в магазин с необходимой информацией https://ifitnesspro.ru/subscription/ и вы можете изменить его здесь, если решите оставить его вместо этого с (site) https://ifitnesspro.ru/webasyst/shop/?action=storefronts#/pages/1
  • пример того, как работает калькулятор:

значит сейчас у пользователя есть подписка Новичок и у него еще 30 дней осталось

Новичок = 990 rub

Профи = 4990 rub

$current_price_per_day = 990 / 30;

$next_price_per_day = 4990 / 30;

$cur_calc = $days_left (30дней) * $current_price_per_day (33) ;

дни конвертированы из Новичок на Профи = $cur_calc (990) / $next_price_per_day (166) = 5.96 (6 дней для Профи)

  1. При регистрации нового клиента его аккаунт автоматически подписывается на тариф “Новичок” на срок 1 месяц (календарный) от даты регистрации.

https://ifitnesspro.ru/webasyst/shop/?action=plugins#/subscription

Здесь вы можете включить или выключить Бесплатный месяц подписки При регистрации

  1. По истечение этого срока подписка становится “Неактивной” и текст на кнопке в разделе Тренировка “Завершить тренировку” меняется на текст на красном фоне “Подписка неактивна! Продлить подписку?” При нажатии на кнопку клиент переходит на страницу Подписки https://ifitnesspro.ru/ru/subscription/

  1. После “Подтверждения заказа” сейчас создается Заказ с номером, клиент получает на почту два письма: об Оформлении заказа и об изменении статуса заказа на “Новый” и открывается страница https://ifitnesspro.ru/success/ (сейчас в .htaccess настроен редирект 301 на страницу https://ifitnesspro.ru/my/orders/)

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

Далее клиент выбирает свой новый заказ, оплачивает и должен возвращаться обратно на страницу заказа https://ifitnesspro.ru/my/order/37/, а не на страницу https://ifitnesspro.ru/success/ как сейчас.

ОТМЕНЯЕМ ЗАДАЧУ (Решил в админке)Также статус заказа должен стать сразу “Выполнен”, а не “Оплачен” как сейчас. Письмо клиенту об изменении статуса отсылать не нужно (письмо отправляет модуль оплаты банка, дублировать не нужно).

  1. После успешной оплаты меняется статус (номер) подписки на тот, который выбрал клиент.
  2. Срок подписки определяется количеством месяцев, оплаченных клиентом. Пример: клиент 12.03.2022 оплатил 9 месяцев по Тарифу Профи. После оплаты Дата подписки меняется на 12.12.2022. То есть день не меняется, меняется только месяц.
  3. При оплате в период активной подписки срок подписки продлевается на оплаченное количество месяцев. То есть меняется не день окончания, а месяц. Пример: текущая подписка заканчивается через неделю - 20.03.2022. Оплачиваю 4 месяца. Срок меняется на 20.07.2022.

СТАТИСТИКА  - включая работу, которую мы сделали для статистики (который у вас уже есть на сайте) по цене старый третьего этапа

Проверил. При открытии страницы все вкладки должны быть серые (кроме первой даты, она зеленая), в таблице должны быть все тренировки на все даты (см. первый пункт ТЗ ниже) пока не выберешь тип тренировки или дату.

Сейчас показывается либо тренировка А, либо В. Все тренировки посмотреть нельзя.

Проверил:

  1. Теперь при нажатии на выбранную тренировку пропадают вкладки других тренировок (должно быть как в ТЗ ниже на картинке). +

При нажатии на серую Тренировку А должно быть так:

  • она становится зеленой,
  • вкладки рядом В и С остаются видимыми, но серыми,
  • даты тренировок В и С пропадают.
  1. При разных количествах упражнений в тренировке (например, при SplitAB) ломается верстка:

а если он нажмет на вторую тренировку с большим количеством упражнений?

откроются даты с упражнениями этой тренировки, верстка сохранится. хорошо

Вот пример:

Пример:

  • открываем страницу Статистика: вкладки Тренировка А, В - серые, дата 14.02 - зеленая, остальные даты серые. Упражнения из тренировки за 14.02. Отображаются даты ВСЕХ тренировок клиента ( и А, и В, и С )
  • нажимаем на Тренировку В - Тренировка В становится зеленой, справа остаются только даты тренировок В, слева - упражнения на первую дату, которая зеленая.
  • нажимаем на тренировку В повторно. Вкладка Тренировка В - снова серая, показываются все тренировки.
  • нажимаем на Тренировку А - остаются только тренировки А.
  • еще раз нажимаем на зеленую Тренировку А - вкладка Тренировка А становится серой, даты показываются всех тренировок.
  • если Тренировка А - зеленая, тогда остальные вкладки тренировок - серые. При нажатии на зеленую - она становится серой. При нажатии на серую она становится зеленой. То есть все серые вкладки тренировок могут быть (отображаются все даты всех тренировок). Все зеленые - нет (переключатели - только даты выбранной тренировки)
  • если в тренировках разное количество упражнений, то нижняя строчка “Оценка утомления” остается нижней, остальные строки располагаются по-порядку, нижние строки пустые (кроме строки “Оценка утомления”)

  1. Добавить вкладки Тренировка А, В или С. Логика работы такая:
  • При загрузке страницы Статистика все вкладки серые (неактивные) и в таблице показываются все прошедшие тренировки клиента.
  • Список упражнений слева в этом случае берется для самой первой тренировки ( на 14.02 на рисунке) и вкладка 14.02 при этом активна.
  • При нажатии на вкладку с другими датами в таблице список упражнений слева меняется на эту дату (он чаще совпадает с другими датами, если упражнение не менялось)
  • При нажатии на вкладку Тренировка А (или В, или С) справа в таблице показываются даты с этим типом тренировки. Список упражнений берется из тренировки на активную дату. Если до нажатия дата была выбрана (соответственно, и список упражнений) тренировки В, то активной становится дата самой первой тренировки А и список упражнений на эту дату.
  • Если у клиента нет завершенных тренировок типа С (или В), то вкладка Тренировка С (или В) не показывается.

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

ПАРТНЕРСКАЯ ПРОГРАММА

  1. Во вкладке Партнерская программа личного кабинета есть Основная реферальная ссылка. При нажатии на нее нужно, чтобы всплывала кнопка “Копировать”. При нажатии на эту кнопку ссылка должна копироваться в буфер устройства (компьютера или смартфона). Затем эту ссылку можно просто вставить в любой документ или пост клиента. +

  1. Добавить кнопку “Вывести средства”. +

  1. При нажатии на эту кнопку открывается всплывающее окно (аналогично окну регистрации при нажатии Зарегистрироваться со страницы Оформления подписки - https://ifitnesspro.ru/order/) :

  1. В окошке “Сумма к выводу” по умолчанию показывается текущая сумма бонусов клиента. Клиент может ее изменить.

В остальных окошках - ранее сохраненные данные клиента.

  1. Если клиент нажимает “Сохранить”, то введенные данные сохраняются за данным клиентом и показываются при последующих нажатиях кнопки “Вывести средства” (кроме суммы, она всегда равна текущему бонусу, пока сам клиент не изменит её).
  2. Добавить в админке на странице клиента Магазин - Покупатели - Рефералы - Имя клиента кнопку “Реквизиты получателя”:

  1. При нажатии на кнопку “Реквизиты получателя” открывается окно с данными, сохраненными клиентом.

  1. После сохранения клиентом измененных данных по сумме или реквизитах на почту, указанную в Магазин - Настройки - Общие настройки - Основной е-майл адрес, приходит автоматическое письмо “Выплата бонусов” следующего содержания:

“Клиентом оформлена выплата бонусов.

Е-майл клиента:

Сумма выплаты:

Получатель:

Номер телефона:

Номер счета:

БИК банка:

с указанными сохраненными данными клиента.

Характеристики

Платформа Shop script 8
Программист Дмитрий Б.
Адрес сайта ifitnesspro.ru

Отзывы

For validation

Контакты

Телефон для связи+373 68 43 33 35
Закажите БЕСПЛАТНУЮ
консультацию по созданию сайта
Обратный звонок
Вам перезвонят
Ваше имя
Телефон для обратной связи
E-mail
Краткое описание Вашего вопроса