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. Первая строчка в гугл таблице = название полей ресурса.
Если уникальное поле не было создано в таблице, значит будет создан новый ресурс. Но если ресурс с таким названием уже есть, то ресурс не будет создан.
Ссылка на компонент
Поблагодарить автора
Отправить деньги
Комментарии: 25
Через компонент можно импортировать товары со своими полями?
И можно ли запускать все это дело по крону?
есть там в гугл сервисах свой крон. будет дергать апи на сайте. но его писать надо.
сложно кажется с ключом доступа, можно сделать все намного проще.
у меня это это тоже все есть по кусочкам и импорт и чтение таблицы по токену скрипта js (он как пароль) и все бесплатно ;)
сложно кажется с ключом доступа, можно сделать все намного проще.
у меня это это тоже все есть по кусочкам и импорт и чтение таблицы по токену скрипта js (он как пароль) и все бесплатно ;)
знаю, но меня интересует крон на сайте.
ну если есть доступ к консоли или из панели можно, то запросто. Но вот у меня на беспл. хосте нет такого. Какая разница откуда этот файл дергать если там ненадолго по времени,
Делай документ, туда сниппет. таймаут побольше, из пхп вызов этого документа по урл и все. Можно вызывать сниппет прямо из пхп если умеешь, это посложнее но возможно. И этот компонент тут совсем ни причем, это универсальная задача для всего.
Делай документ, туда сниппет. таймаут побольше, из пхп вызов этого документа по урл и все. Можно вызывать сниппет прямо из пхп если умеешь, это посложнее но возможно. И этот компонент тут совсем ни причем, это универсальная задача для всего.
Крон, еще не реализован.
А как эти поля будут реализованы?
Если они будут находится в таблице ms2_products тогда можно.
Если они будут находится в таблице ms2_products тогда можно.
Ну расширение свойств товара через docs.modx.pro/komponentyi/msearch2/rasshirenie/primer-filtraczii-tovarov#%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0:-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B5-%D0%BF%D0%BE%D0%BB%D0%B5-availability
Стандартным импортом через csv все работает.
Стандартным импортом через csv все работает.
да, должно работать.
Приветствую! Хочу уточнить один момент перед покупкой GoogleSheets. У меня 10 интернет магазинов на MODX с бесплатным minishop2. Мне нужно сделать лёгкую загрузку товаров на сайт и дальнейшую правку при необходимости. К примеру я не на сайте, а в едином екселе вношу правку в цену к примеру и загружаю его на все сайты (по очереди). Такое возможно с GoogleSheets?
Добрый день, Андрей! Да, если для каждого сайта вы подключите одну и туже таблицу.
Так все таки при стандартном импорте ресурсов, как импортировать дополнительные поля, особенно с json или путем к картинке (да еще, чтобы она отобразилась в гугле как картинка, а не как ссылка)? Есть такая возможность?
Указываете в настройках импорта дополнительное поле:tv10, где 10 — id дополнительного поля.
Для json указываете значение через запятую.
Для json указываете значение через запятую.
да еще, чтобы она отобразилась в гугле как картинка, а не как ссылкаХорошая идея. Посмотрю что можно сделать.
да еще, чтобы она отобразилась в гугле как картинка, а не как ссылкаОтобразить картинку можно только если она загружена в google drive
Добрый день!
Столкнулся с такой проблемой при работе компонента.
Если при экспорте в «поля экспорта» вводятся 2 поля с опциями (id, guid, option.dopchars, option.socle), то экспорт не проходит
выскакивает ошибка:
ext-base.js:21 POST assets/components/googlesheets/connector.php 500 (Internal Server Error)
Если одно поле с опциями, то все нормально экспортируется.
Столкнулся с такой проблемой при работе компонента.
Если при экспорте в «поля экспорта» вводятся 2 поля с опциями (id, guid, option.dopchars, option.socle), то экспорт не проходит
выскакивает ошибка:
ext-base.js:21 POST assets/components/googlesheets/connector.php 500 (Internal Server Error)
Если одно поле с опциями, то все нормально экспортируется.
Добрый день!
Напишите в ТП, проверю.
Напишите в ТП, проверю.
Написал
Добрый день, проблема решена? у меня такая же 1 в 1
Всем здравствуйте! Подскажите, пожалуйста, как в настройках экспорта и импорта следует указать название поля СВЯЗЬ.
В магазине очень много товаров, нужно выводить с этим товаром покупают… Нужно через таблицу все заполнить и импортировать. Но не пойму как поле называется. link, master. Предполагаю, что как производитель vendor.name, А как для связи прописать поле не понимаю.
Спасибо!
В магазине очень много товаров, нужно выводить с этим товаром покупают… Нужно через таблицу все заполнить и импортировать. Но не пойму как поле называется. link, master. Предполагаю, что как производитель vendor.name, А как для связи прописать поле не понимаю.
Спасибо!
Приветствую. Куда делся компонент? Нет ни в репозитории modstore, нет в репозитории modx, нет у автора в github. У кого-нибудь данный компонент остался? Где его найти?
На этой неделе новая версия
Очень интересно на него посмотреть, я в ожидании
Подскажите, компонент выпущен (не нашла)? С его помощью можно из любых форм на сайте всё записывать в гугл таблицу?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.