GoogleSheets. Компонент для работы с Google таблицами.
Возможности
Сниппеты
1. Создаем проект
2. Создаем API ключ
4. Переходим в верхнее меню: Приложения -> GoogleSheets
5. Жмакаем на кнопку справа «Авторизация»
6. Открывается новая вкладка для получения кода авторизации(если не открылась, значит всплывающие окна заблокированы, разблокируйте их)
7. Копируем код авторизации и записываем его в системную настройку googlesheets_auth_code
8. Жмакаем еще раз на кнопку «Авторизация» (см. п. 4,5)
9. Если не увидели сообщения, что Вы успешно авторизованы, значит что-то пошло не так или Вы где-то ошиблись.
Примеры:
### Сохранение данных с формы
Переходим в системные настройки компонента.
— googlesheets_order_save = Да/Нет(сохранять заказы или нет)
— googlesheets_order_table = ссылка таблицы, в которую будем сохранять заказы
— googlesheets_order_range = лист таблицы
— googlesheets_order_fields = список полей для сохранения. Сохраняется по порядку.
Вывод заказов.
1. В виде таблицы. Используется модификатор table.
P.S. Сниппет GoogleSheets возвращает результат в виде массива.
2. Вывод заказов через шаблон(то есть, чанк)
P.S. Первая строка таблицы = название переменных.
Импорт ресурсов / товаров
1. Переходим в верхнее меню Приложения -> GoogleSheets
2. Жмакаем на создать импорт.
3. Заполняем все поля:
— URl таблицы
— Лист (название листа таблицы)
— Тип ресурса (modResource || msProduct)
— Уникальное поле, по которому будет проверяется ресурс/товар.
— Настройка импорта ( Default || Create || Update)
P.S. Первая строчка в гугл таблице = название полей ресурса.
Если уникальное поле не было создано в таблице, значит будет создан новый ресурс. Но если ресурс с таким названием уже есть, то ресурс не будет создан.
Ссылка на компонент
- Cохранение форм
- Cохранение заказов (minishop2)
- Импорт ресурсов / товаров (minishop2)
- Выгрузка данных из таблицы
Сниппеты
- GoogleSheets (выгружает данные из таблицы)
- GoogleSheetsSaveForm (хук для формы, для сохранение результатов)
- GoogleSheetsSaveOrder (плагин для сохранения заказов minishop2)
- modifierTable (модификатор table)
1. Создаем проект
2. Создаем API ключ
- Выбираем API и сервисы
- Жмакаем Учетные данные.
- Переходим во вкладку «Окно запроса доступа OAuth»
- Придумываем и затем записываем название приложения
- Создаем учетные данные -> выбираем «Идентификатор клиента OAuth»
- Тип приложения = Другие типы
- Жмакаем кнопку создать
- Получаем client_id (Идентификатор клиента) и client_secret (Секрет клиента)
- Переходим в библиотеку API и включаем Google Sheets API
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'
]}Чтобы сохранить данные из формы, нужно:- Добавить хук GoogleSheetsSaveForm
- Добавить параметр googleSheetsUri = url таблицы
- Добавить параметр googleSheetsRange = название листа таблицы. Не название таблицы, а листа(находится внизу).
- Добавить параметр formFields = список полей для сохранения, через запятую
- Заполнить системную настройку 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 (только обновляет ресурсы)
P.S. Первая строчка в гугл таблице = название полей ресурса.
Если уникальное поле не было создано в таблице, значит будет создан новый ресурс. Но если ресурс с таким названием уже есть, то ресурс не будет создан.
Ссылка на компонент
Комментарии: 27
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
сложно кажется с ключом доступа, можно сделать все намного проще.
у меня это это тоже все есть по кусочкам и импорт и чтение таблицы по токену скрипта js (он как пароль) и все бесплатно ;)
Делай документ, туда сниппет. таймаут побольше, из пхп вызов этого документа по урл и все. Можно вызывать сниппет прямо из пхп если умеешь, это посложнее но возможно. И этот компонент тут совсем ни причем, это универсальная задача для всего.
Если они будут находится в таблице ms2_products тогда можно.
Стандартным импортом через csv все работает.
Для json указываете значение через запятую.
Хорошая идея. Посмотрю что можно сделать.
Столкнулся с такой проблемой при работе компонента.
Если при экспорте в «поля экспорта» вводятся 2 поля с опциями (id, guid, option.dopchars, option.socle), то экспорт не проходит
выскакивает ошибка:
ext-base.js:21 POST assets/components/googlesheets/connector.php 500 (Internal Server Error)
Если одно поле с опциями, то все нормально экспортируется.
Напишите в ТП, проверю.
В магазине очень много товаров, нужно выводить с этим товаром покупают… Нужно через таблицу все заполнить и импортировать. Но не пойму как поле называется. link, master. Предполагаю, что как производитель vendor.name, А как для связи прописать поле не понимаю.
Спасибо!