GoogleSheets. Компонент для работы с Google таблицами.

Возможности
  • Cохранение форм
  • Cохранение заказов (minishop2)
  • Импорт ресурсов / товаров (minishop2)
  • Выгрузка данных из таблицы

Сниппеты
  • GoogleSheets (выгружает данные из таблицы)
  • GoogleSheetsSaveForm (хук для формы, для сохранение результатов)
Плагины
  • GoogleSheetsSaveOrder (плагин для сохранения заказов minishop2)
  • modifierTable (модификатор table)
Инструкция авторизации
1. Создаем проект
2. Создаем API ключ
  1. Выбираем API и сервисы
  2. Жмакаем Учетные данные.
  3. Переходим во вкладку «Окно запроса доступа OAuth»
  4. Придумываем и затем записываем название приложения
  5. Создаем учетные данные -> выбираем «Идентификатор клиента OAuth»
  6. Тип приложения = Другие типы
  7. Жмакаем кнопку создать
  8. Получаем client_id (Идентификатор клиента) и client_secret (Секрет клиента)
  9. Переходим в библиотеку API и включаем Google Sheets API
3. Записываем в системные настройки googlesheets_client_id = client_id и googlesheets_client_secret = client_secret
4. Переходим в верхнее меню: Приложения -> GoogleSheets
5. Жмакаем на кнопку справа «Авторизация»
6. Открывается новая вкладка для получения кода авторизации(если не открылась, значит всплывающие окна заблокированы, разблокируйте их)
7. Копируем код авторизации и записываем его в системную настройку googlesheets_auth_code
8. Жмакаем еще раз на кнопку «Авторизация» (см. п. 4,5)
9. Если не увидели сообщения, что Вы успешно авторизованы, значит что-то пошло не так или Вы где-то ошиблись.

Примеры:
### Сохранение данных с формы
{'!AjaxForm' | snippet: [
    'hooks' => 'spam,GoogleSheetsSaveForm,FormItSaveForm',
    'googleSheetsUri' => 'https://docs.google.com/spreadsheets/d/16eyRFL94Dtqm8hh0lBXVIpKGbw/edit#gid=0',
    'googleSheetsRange' => 'Data',
    'formFields' => 'name,email,message',
    'form' => 'tpl.AjaxForm.example'
]}
Чтобы сохранить данные из формы, нужно:
  1. Добавить хук GoogleSheetsSaveForm
  2. Добавить параметр googleSheetsUri = url таблицы
  3. Добавить параметр googleSheetsRange = название листа таблицы. Не название таблицы, а листа(находится внизу).
  4. Добавить параметр formFields = список полей для сохранения, через запятую
  5. Заполнить системную настройку googlesheets_form_fields = список полей, которые находятся в гугл таблице, через запятую.
Сохранение заказов
Переходим в системные настройки компонента.
— googlesheets_order_save = Да/Нет(сохранять заказы или нет)
— googlesheets_order_table = ссылка таблицы, в которую будем сохранять заказы
— googlesheets_order_range = лист таблицы
— googlesheets_order_fields = список полей для сохранения. Сохраняется по порядку.

Вывод заказов.
1. В виде таблицы. Используется модификатор table.
P.S. Сниппет GoogleSheets возвращает результат в виде массива.
<div class="table-responsive">
{'!GoogleSheets' | snippet: [
    'table' => 'https://docs.google.com/spreadsheets/d/16eyRFL94Dtqm8QQjYzwGbw/edit#gid=2059149967',
    'range' => 'Order'
] | table: 'table table-hover'}
</div>

2. Вывод заказов через шаблон(то есть, чанк)
P.S. Первая строка таблицы = название переменных.
<ul>
{'!GoogleSheets' | snippet: [
    'table' => 'https://docs.google.com/spreadsheets/d/16eyRFL94Dtqm8QpKGbw/edit#gid=2059149967',
    'range' => 'Order'
    'tpl' => '@INLINE <li>{$receiver} - {$email}</li>'
]}
<ul>

Импорт ресурсов / товаров
1. Переходим в верхнее меню Приложения -> GoogleSheets
2. Жмакаем на создать импорт.
3. Заполняем все поля:
— URl таблицы
— Лист (название листа таблицы)
— Тип ресурса (modResource || msProduct)
— Уникальное поле, по которому будет проверяется ресурс/товар.
— Настройка импорта ( Default || Create || Update)
  • Default (создает новые ресурсы и обновляет существующие)
  • Create (только создает новые ресурсы)
  • Update (только обновляет ресурсы)
4. Жмакаем правой кнопкой на необходимой строке (импорте) и импортируем данные.

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

Ссылка на компонент
Aleksandr Huz
30 октября 2018, 23:04
3
307
+11

Комментарии: 0