Quad.Wiki
Sync.X - Получение файлов из Web (по ссылкам)
Обычные файлы по ссылке
Перейдите во вкладку Автоматизация / Sync.X
Для добавления скачивания какого-то файла по ссылке зайдите в настройки существующего задания или, если такого нет, создайте новое. В одном задании можно скачивать несколько разных прайсов по разным ссылкам, т.е. не нужно под каждый прайс делать отдельное задание.
Добавьте новую строку и заполните ее настройки, введите ссылку, по которой скачивается файл, а так же путь к файлу, в который будет сохранен файл.
Расширения файла указывайте такое, как и в скачиваемом файле.
Если по ссылке не видно какое расширение файла, а это, например, просто скрипт PHP, то скачайте файл по ссылке и сохраните его на диск - посмотрите расширение в полученном файле.
Колонка Арх. - если прайс по ссылке находится в архиве, то укажите тип этого архива. Если в архиве несколько файлов или кроме файла есть еще какие-то подпапки, то можно указать просто путь к папке, в которую сохранятся все файлы из архива (обязательно укажите слеш на конце пути к папке)
Если в названиях файлов в архиве есть цифры, то они будут заменены на знаки подчеркивания.
ZIP2
Если архив по ссылке ZIP при этом он не распаковывается по каким-то причинам настройкой zip, то попробуйте использовать zip2. Этой настройкой можно пользоваться и в случае, когда в архиве много файлов и вам нужны они все.
Для сохранения файлов при помощи настройки ZIP2 нужно создать отдельную папку под вашего поставщика, например, Quad Solutions/files/2_ price/post1 , а в настройке “Сохранить в файл” указать любое имя файла в этой папке, например, Quad Solutions/files/2_ price/post1/post.xlsx - это имя файла использоваться не будет, все файлы распакаются и сохранятся с теми именами, как в архиве, без изменений. Пример настройки:
Результат:
Если в архиве в файле указываются даты, то каждый раз будет создаваться новый файл и периодически нужно будет удалять из папки старые файлы прайса.
Колонка Дополнительно
В этой колонке можно ввести “заголовки” для HTTP-запросов. Например, если для скачиваемой ссылки нужно пройти какую-то простую авторизацию по логину и паролю, то в Дополнительно можно ввести заголовок авторизации
Authorization: Basic Ym9zY236Ym9zY28=
Колонка XML->Excel - здесь должна быть пустая птичка, если по ссылке вы скачиваете не XML-файл, который нужно конвертировать в Excel.
URL - здесь должна быть ссылка на файл или скрипт, который генерирует файл.
Если в ссылке есть дата, то можно ее подставить при помощи кодов
[yyyy] - год 4 символа (например 2021)
[yy] - год 2 символа (например 21)
[mm] - месяц 2 символа (например 05)
[dd] - день 2 символа (например 01)
т.е. например, для ссылки test.ru/img/prices/Остатки_на_20210512_АТ.xlsx итоговая ссылка будет выглядеть как test.ru/img/prices/Остатки_на_[yyyy][mm][dd]_АТ.xlsx
Если в момент выполнения задания еще нет файла с сегодняшней датой, то будет ошибка в задании.
Файл по ссылке должен скачиваться без ввода паролей, иначе его нельзя скачать этим заданием. Проверить можно в браузере в режиме инкогнито, скачается ли по ссылке прайс. Если нужно вводить пароль - нужна настройка обработчика под этот сайт. Настройку делает наша техподдержка, цена 20$ если требуется просто ввод логина и пароля для скачивания.
Сохранить в файл - здесь указывается путь к файлу, в который будет сохранен скачиваемый прайс. Сохраняйте прайсы в папку Quad Solutions\files\2_ price\ чтобы они все были в одном месте. Называйте файл по названию поставщика, например merlion.xlsx, чтобы потом проще было его найти.
XML -> CSV / CSV -> XLSX - в этой колонке можно указать настройки конвертации файла сразу при скачивании. Если вы, например, скачиваете файл CSV, при этом он в таком формате, который не открывается сразу правильно в Excel, то его можно конвертировать такими настройками:
Настройки вводятся в окне редактирования, которое открывается при нажатии кнопки в правой части ячейки, если в нее установить курсор.
В первой строке нужно указать тег csvxlsx - это значит что файл будет конвертирован из CSV в Excel.
В этой же строке нужно указать теги utf8, если файл в кодировке utf-8 или ansi, если файл CSV в кодировке Windows и русские тексты в нем читаемые.
Если вы скачали файл CSV и видите в нем “кракозябры” вместо русских букв, то значит нужно указать в настройках параметр utf8
Во второй строке указывается разделитель значений в CSV файле, может быть запятая или точка с запятой.
Пример настроек:
csvxlsx utf8
,
Варианты скачивания файлов
Если ссылка, по которой вы скачиваете файл, требует, чтобы скачивание было только через браузер, или чтобы работал JavaScript, или какие-то проблемы с SSL-соединением или другие ошибки, при этом через браузер на компьютере вы можете скачать файл, то можно попробовать 2 других варианта скачивания. Вариант вводится в колонку Дополнительно (при этом никаких http-заголовков указать нельзя будет).
BRWS - скачивание происходит средствами Windows (Power Shell)
CURL - скачивание происходит через утилиту curl. Для этого варианта необходимо, чтобы у вас была папка Quad Solutions\curl в которую нужно скопировать файлы из папки curl по ссылке Yandex
Вариант CURL нужно использовать, например, для скачивания прайса netlab по ссылке
https://www.netlab.ru/products/dealerD.zip
GoogleSheets / GoogleDrive
Для загрузки файлов из GoogleSheets и GoogleDrive используется загрузка как через обычную ссылку.
Вам нужно скопировать ссылку из браузера, когда просматриваете документ, например получилась такая ссылка
https://docs.google.com/spreadsheets/d/1pS5XpAzkxyoUzv7khJN_fkEL0/edit#gid=0
из нее нужно убрать все что идет после выделенного идентификатора, остается
https://docs.google.com/spreadsheets/d/1pS5XpAzkxyoUzv7khJN_fkEL0/
и к тому что получилось добавить export?format=xlsx , чтобы в итоге получилось так:
https://docs.google.com/spreadsheets/d/1pS5XpAzkxyoUzv7khJN_fkEL0/export?format=xlsx
эта ссылка вставляется в задание
Таким способом можно скачать только прайсы, к которым есть общий доступ (т.е. файл открывается в браузере в режиме инкогнито, без необходимости логина в аккаунт гугла) и разрешено его скачивание в меню
Начиная с версии Quad.X 1482 ссылку на файл GoogleDocs можно добавлять специальной кнопкой. В открывшемся окне нужно ввести ID из ссылки на документ, в примере ниже ИД выделен жирным
https://docs.google.com/spreadsheets/d/ 1pS5XpAzkxyoUzv7khJN_fkEL0/edit#gid=0
Если вы скачиваете прайс с GoogleDrive и после продолжительного ожидания скачивания прайса по ссылке, формирование которой описано выше, в браузере вы видите ошибку, то попробуйте использовать такую ссылку:
еще вариант, который можно попробовать:
где вместо выделенного жирным подставить ваш ID.
Интервал устанавливается в миллисекундах. Можете поставить 2 или 3 секунды, для этого нужно ввести 2000 или 3000.
Если нужно скачать только 1 лист из файла GoogleDocs, то в ссылку нужно добавить eще ИД листа.
Пример ссылки: https://docs.google.com/spreadsheets/d/1zq5PatzbNhxiRUmo0hM681T2dVQ2vpI_w6UQa_XPWqI/export?format=xlsx&gid=1134618091
где 1134618091 это ИД из ссылки (откройте в браузере именно тот лист в GoogleDocs, который нужно скачать)
Yandex Disk
Пример ссылки https://disk.yandex.by/d/8MCgWMMjgPX3Mw
Для скачивания по этой ссылке нажмите кнопку +Я
в окне ввода удалите первую строку и отредактируйте ссылку так, чтобы в ней нужная вам ссылка была после текста https://getfile.dokpub.com/yandex/get/
т.е. должно получиться так:
https://getfile.dokpub.com/yandex/get/https://disk.yandex.by/d/8MCgWMMjgPX3Mw
Если у вас ссылка не на прайс, а на какую-то папку, в которой несколько файлов, то название файла нужно указать после вашей ссылки. Если файлов несколько, то на каждый файл нужно делать отдельное задание. Пример того, что вы видите по ссылке:
Ссылка на прайс будет такой:
https://getfile.dokpub.com/yandex/get/https://disk.yandex.by/d/eRZh-4Ac4YhRdA/wc-product-export-30-06-2021.csv
Если по ссылке вы видите какие-то папки, а не просто файл, и вам нужен файл из этой папки, то нужно указать и папку:
https://getfile.dokpub.com/yandex/get/https://disk.yandex.by/d/eRZh-4Ac4YhRdA/Папка/wc-product-export-30-06-2021.csv
DropBox
Пример ссылки
https://www.dropbox.com/scl/fi/9vk60k53yx111hr9ovk2gt/price.xls?rlkey=g5jcg4mfo0ias3jp1jee114z1mz
Чтобы скачать такой прайс нужно к ссылке добавить &dl=1
https://www.dropbox.com/scl/fi/9vk60k53yx111hr9ovk2gt/price.xls?rlkey=g5jcg4mfo0ias3jp1jee114z1mz&dl=1
Если в ссылке уже есть &dl=0, то поменять 0 на 1.
GoogleSheets через CSV
Если по каким-то причинам вы не можете скачать файл из GoogleSheets в формате XLSX, то можно скачать прайс или один из его листов в формате CSV.
Вам нужно скопировать ссылку из браузера, когда просматриваете документ, например получилась такая ссылка
https://docs.google.com/spreadsheets/d/1pS5XpAzkxyoUzv7khJN_fkEL0/edit#gid=0
из нее нужно убрать все что идет после выделенного идентификатора, остается
https://docs.google.com/spreadsheets/d/1pS5XpAzkxyoUzv7khJN_fkEL0/
и к тому что получилось добавить export?format=csv , чтобы в итоге получилось так:
https://docs.google.com/spreadsheets/d/1pS5XpAzkxyoUzv7khJN_fkEL0/export?format=csv
Если в прайсе несколько листов, то скачать одной ссылкой вы можете только 1 лист. В этом случае в ссылку нужно добавить еще ИД листа
https://docs.google.com/spreadsheets/d/1pS5XpAzkxyoUzv7khJN_fkEL0/export?format=csv&gid=1615075392
ИД листа можно посмотреть в браузере в строке ссылки, выбрав соответствующий лист в самом прайсе
Скачиваемый CSV вы можете сразу сконвертировать в XLSX, как написано в этой инструкции для настройки “XML -> CSV / CSV -> XLSX”
Пример настройки для прайса Русклимат:
Обратите внимание, что если вы конвертируете в XLSX, то и расширение сохраняемого файла нужно указывать как XLSX, а не CSV.
При перенастройке прайса, чтобы сохранились все связи, важно сохранить соответствие текста, загружаемого в п.5 настройки прайса, чтобы товары не задублировались. Подробнее здесь: Настройка прайса: сравнение при загрузке
Второй вариант - оставить старую настройку прайса, выключить тот прайс и добавить новый прайс для файла CSV. В этом случае нужно будет скопировать связи из старого прайса, а так же выбрать новый прайс во всех правилах наценки, где он был, и в правилах Автозаполнения/Экспорта, если он там использовался.
Копировать связи из одного прайса в другой