dinox

Добавление вкладки продажи в клиентском центре форума

Рекомендуемые сообщения

dinox    565

Доброго времени суток!

Для разработчиков сделал вкладку Продажи. Говорить нечего больше :)

Просто заходите пользуйтесь https://opencartforum.com/index.php?app=nexus&module=clients&section=orders 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
tim21701    497

Самая сУпирская и крутАнская вкладка, +)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Prorab337    107

Удобно, спасибо! 8-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Prorab337    107

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Sha    40

Супер! А я бы ещё сортировку по колонкам добавил ) или группировку по пользователям...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dinox    565

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

Готово :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dinox    565

Супер! А я бы ещё сортировку по колонкам добавил ) или группировку по пользователям...

Чуть позже

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Sha    40

Чуть позже

Ща, мы тут идей как накидаем)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
addist    6

Ооо. Респект!

А ещё, было бы ещё круче, если бы могли добавить и экспорт в CSV или JSON эти заказы. Страница должна быть доступна и не залогиненным продавцам с указанием логина и пароля в GET запросе.

Спасибо ещё раз!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Sha    40

...ну да, эдакое API для автоматизации!)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexDW    764

отлично!

 

только как обычно, всегда хочется больше чем есть  :-D   -

импорт бы не помешал + прикрутить сортировку и фильтры по столбцам

плюс пагинация бы тоже пригодилась ;)

 

PS: во вкладке внутренний счет пара косячков всплыла (возможно в процессе тестирования не убрали)

post-688391-0-32934400-1443259157_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
tabook    123

А я тогда скромненько предложу callback вызов POST при продаже на URL разработчика, заданный в настройках аккаунта.

Что то типа vendor-site.com/purchase_callback.php

 

И будет приходить что то order_num=113434&bill=360040&module=4545&quantity=1&customer=nickname

 

ЗЫ: Сделаю это сам безвозмездно, дайте отмашку и исходные данные.

Изменено пользователем tabook

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
shoputils    225

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dinox    565

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

я подумаю над этим очень актуальная штука

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
RGB    975

Спасибо, полезное нововведение, потому что решает сразу несколько проблем:

1) видно всех покупателей без разбивки на страницы (раньше приходилось туда-сюда щелкать в поисках ника)

2) видно кто за сколько покупал

3) даты наконец то идут по порядку

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
snastik    736

а что значит в столбике цена 0 ? это скачали не оплатив или не завершили покупку ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dinox    565

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
tabook    123

Из мелочей: пагинация живет своей жизнью вне фильтров. Т.е. фильтром можно отобрать одну запись по номеру счета, но пагинация так и будет предлагать 6 страниц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Sha    40

Я так понимаю, мы стремимся к чему-то типа:

$.ajax({
  url: 'хттпс: // опенкартфорум / индекс .php?app=nexus&module=clients&section=orders&invoice=123123&domen=domen.com.ua&user_name=user&pas=1111111'
  type: 'GET',
  data: '',
  dataType: 'JSON',
  success: function(json) {
    json['invoice'] ? alert('Выдать ключ') : alert('Счёт не оплачен');
    json['domen'] ? alert('Домен указан') : alert('Домен не указан');
  },
    error: function(jqXHR, textStatus, errorThrown){   
    console.log(errorThrown + "\r\n" + jqXHR.statusText + "\r\n" + jqXHR.responseText);
  }
});

 

Если нет, то помоему, это был бы "маленький шаг, для человека, и .............." 

Изменено пользователем Sha

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dinox    565

Я так понимаю, мы стремимся к чему-то типа:

$.ajax({
  url: 'хттпс: // опенкартфорум / индекс .php?app=nexus&module=clients&section=orders&invoice=123123&domen=domen.com.ua&user_name=user&pas=1111111'
  type: 'GET',
  data: '',
  dataType: 'JSON',
  success: function(json) {
    json['invoice'] ? alert('Выдать ключ') : alert('Счёт не оплачен');
    json['domen'] ? alert('Домен указан') : alert('Домен не указан');
  },
    error: function(jqXHR, textStatus, errorThrown){   
    console.log(errorThrown + "\r\n" + jqXHR.statusText + "\r\n" + jqXHR.responseText);
  }
});

 

Если нет, то помоему, это был бы "маленький шаг, для человека, и .............." 

И тут пришел закрытый код системы продаж и все испортил

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
yarik    124

И тут пришел закрытый код системы продаж и все испортил

 

 

Код в БД тоже "закрытый"? :-)

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
yarik    124

ibf_acp_help - Справочная информация для Админцентра

ibf_admin_login_logs - Лог авторизаций в Админцентр

ibf_admin_logs - Все действия администраторов

ibf_admin_permission_keys - Список ограничений для администраторов в Админцентре

ibf_admin_permission_rows - Назначенные ограничения для администраторов в Админцентре

ibf_admin_sessions - Сессии администраторов в Админцентре

ibf_announcements - Объявления на форуме

ibf_attachments - Все прикрепленные файлы

ibf_attachments_type - Допустимые типы прикрепляемых файлов

ibf_badwords - Фильтр нецензурных слов (заменяются на #)

ibf_banfilters - Маски запрещенных IP адресов, ников и e-mail адресов

ibf_bulk_mail - Массовые рассылки писем на электронную почту (дабы сервер не подумал что мы спамим)

ibf_cache_store - Системный кэш форума (форумы, группы, настройки, стили)

ibf_cal_calendars - Список календарей

ibf_cal_events - Список событий в календаре

ibf_components - Компоненты IPB (типа блогов и галерей)

ibf_conf_settings - Настройки форума

ibf_conf_settings_titles - Поясняющие описания настроек форума

ibf_contacts - Списки контактов

ibf_converge_local - Таблица для IP.Converge

ibf_custom_bbcode - Свои BB-коды

ibf_dnames_change - История изменения отображаемого имени

ibf_email_logs - Отправленные с форума письма

ibf_emoticons - Таблица смайликов

ibf_faq - Помощь по форуму

ibf_forum_perms - Наборы прав на доступ к форуму

ibf_forum_tracker - Подписки на форум

ibf_forums - Дерево подфорумов и разделов

ibf_groups - Группы пользователей

ibf_languages - Языки форума

ibf_login_methods - Все возможные методы авторизации

ibf_mail_error_logs - Ошибки отправления писем

ibf_mail_queue - Очередь отправленных почтовых уведомлений

ibf_member_extra - Дополнительная информация о пользователях форума

ibf_members - Список всех пользователей форума

ibf_members_converge - Система хранения паролей пользователей

ibf_members_partial - Наворот от методов логина (на случай если пользователь хранится во внешней БД)

ibf_message_text - Тексты личных сообщений

ibf_message_topics - Заголовки личных сообщений

ibf_moderator_logs - Все действия модераторов форума

ibf_moderators - Назначение модераторов на подфорумы

ibf_pfields_content - Значение дополнительных полей в профилях пользователей

ibf_pfields_data - Список дополнительных полей в профиле

ibf_polls - Голосования и опросы

ibf_posts - Все сообщения пользователей на форуме

ibf_profile_comments - Профиль. Комментарии

ibf_profile_friends - Профиль. Друзья

ibf_profile_portal - Профиль. Все настройки

ibf_profile_portal_views - Профиль. Количество просмотров

ibf_profile_ratings - Профиль. Рейтинг

ibf_reg_antispam - Таблица предовтращений повторных регистраций с одного IP в течение короткого времени (предотвращение регфлуда)

ibf_rss_export - RSS. Потоки экспорта

ibf_rss_import - RSS. Потоки импорта

ibf_rss_imported - RSS. Записи уже ипортированные (при удаление ленты из таблицы ibf_rss_import все импортированные записи этой ленты будут удалены)

ibf_search_results - Сохраненные "сессии" поисков

ibf_sessions - Сохраненные сессии пользователей

ibf_skin_macro - Skins. Макросы стилей

ibf_skin_sets - Skins. Сами стили, настройки скинов

ibf_skin_template_links - Skins. Связи между шаблонами стилей

ibf_skin_templates - Skins. Шаблоны стилей

ibf_skin_templates_cache - Skins. Кэш шаблонов стилей

ibf_skin_url_mapping - Skins. Завязка стилей на определенные адреса

ibf_spider_logs - Визиты поисковых ботов (все что просмотрели, куда и когда заходили)

ibf_subscription_currency - Способы оплаты для платной подписки

ibf_subscription_extra - Платные подписки

ibf_subscription_logs - Логи подписок

ibf_subscription_methods - Платежные гейты (PayPal, 2CheckOut и другие) для платной подписки

ibf_subscription_trans - Платные подписки

ibf_subscriptions - Платные подписки

ibf_task_logs - Лог работы задач

ibf_task_manager - Менеджер задач

ibf_template_diff_changes - Сохраненные результаты сравнения стилей

ibf_template_diff_session - Cессии сравнеия стилей

ibf_templates_diff_import - Измения в шаблоне между новым и оригиналом

ibf_titles - Статусы пользователей

ibf_topic_markers - Таблица посещений тем (работает вместе с ibf_topics_read)

ibf_topic_mmod - Настройки мультимодерации

ibf_topic_ratings - Рейтинг топиков

ibf_topic_views - Таблица просмотров тем (по этой таблице обновляются просмотры тем, если в админке не выставлено их немедленное обновление)

ibf_topics - Все темы форума

ibf_topics_read - Прочтенность тем

ibf_tracker - Подписки на темы

ibf_upgrade_history - История обновлений

ibf_validating - Cессии валидаций (смена пароля, e-mail, валидация пользователей)

ibf_voters - Списки проголосовавших (без сохранения их голосов)

ibf_warn_logs - Логи предупреждений

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
yarik    124

Накатал небольшой "набросочек", может кто подскажет еще что-то или подправит :ugeek:

// Проверяем логин
if (isset ($_POST['login'])) {
	$login = $_POST['login'];
} else {
	// Если нет, завершаем работу скрипта
	return;
}

// Проверяем пароль
if (isset ($_POST['password'])) {
	$password = $_POST['password']; 
} else {
	// Если нет, завершаем работу скрипта
	return;
}

// Создаем подключение к БД
try {
	$db = new PDO("mysql:host=localhost;dbname={DB};charset=utf8", "{USER}", "{PASSWORD}", array (PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC));
} catch (PDOException $e) {}

// Проверяем есть ли такой пользователь
$query = $db->prepare("SELECT {USER_ID} AS user_id FROM {TABLE_USER} WHERE {LOGIN} = :login AND {PASSWORD} = :password");

$query->execute(array ('login' => $login, 'password' => $password));

// Если есть, сохраняем в переменную
if ($query->rowCount()) {
	foreach ($query as $row) {
		$user_id = (int) $row['user_id'];
	}
} else {
	// Если нет, завершаем работу скрипта
	return;
}

// Проверяем есть ли ID модуля
if (isset ($_POST['module_id'])) {
	$module_id = (int) $_POST['module_id']; 
} else {
	$module_id = 0;
}

// Проверяем есть ли ID заказа
if (isset ($_POST['order_id'])) {
	$order_id = (int) $_POST['order_id']; 
} else {
	$order_id = 0;
}

// Составляем запрос
$sql = "SELECT * FROM {TABLE_ORDER} WHERE {USER_ID} = '" . $user_id . "'";

// Если есть ID модуля добавляем в условие
if ($module_id) {
	$sql .= " AND {MODULE_ID} = '" . $module_id . "'";
}

// Если есть ID заказа добавляем в условие
if ($order_id) {
	$sql .= " AND {ORDER_ID} = '" . $order_id . "'";
}

// Если нет ID заказа, то выводим последние 20 покупок
if (($module_id && !$order_id) || (!$module_id && !$order_id)) {
	$sql .= " ORDER BY {DATE PURCHASE} DESC LIMIT 20";
}

$query = $db->query($sql);

// Выдаем json массив с данными
echo json_encode ($query->fetchAll());

к примеру POST запросы

 

login=test&password=test вернет 20 последних покупок

 

login=test&password=test&module_id=1 вернет 20 последних покупок для указанного модуля

 

login=test&password=test&order_id=1 вернет данные для конкретной покупки

 

Еще бы разобраться с таблицами и полями в них.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
afwollis    1 091

Код в БД тоже "закрытый"? :-)

группу, права доступа, наличие путевки на банановые острова итпд предлагаешь игнорировать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
yarik    124

группу, права доступа, наличие путевки на банановые острова итпд предлагаешь игнорировать?

 

Конкретней.

 

Права доступа - понятие растяжимое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу