Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Recommended Posts

Здравствуйте!

Запускал по крону добавление товаров и перегрузил в 300 раз базу данных, за что бегет меня немного наказал)))

1. ограничен доступ клиентам, не поддерживающим js и cookies

2. включено агрессивное кеширование страниц

3. post запросы заблокированы

на бегете подобных им я поднял штук 15, парсил еще бОльшее количество товаров, но никогда никаких ограничений не накладывалось.

Сейчас они просят оптимизировать медленные запросы и описать, что я сделал для снижения нагрузки.

Лог медленных запросов прикладываю.

Господа, подскажите, что можно сделать в этой ситуации?)

 

image.thumb.png.117a12676b61687446024839b9299e9b.png

2020-09-08_131543 (1)

Змінено користувачем zhumasds
Надіслати
Поділитися на інших сайтах


18 минут назад, IlyaCart сказал:

Вопрос очень актуален.

Спасибо.

Через модуль нельзя, можно через базу данных.

Все доступные действия в модуле я когда то выписал для удобства поиска нужной функции.
Вот тут - https://opencartforum.com/topic/16297-podderzhka-avtomaticheskaya-obrabotka-prays-listov/?do=findComment&comment=1540652

 

Надіслати
Поділитися на інших сайтах

1 час назад, zhumasds сказал:

Сейчас они просят оптимизировать медленные запросы и описать, что я сделал для снижения нагрузки.

Лог медленных запросов прикладываю.

тут вы ничего не можете сделать.
Им просто не нравится что вы кушаете много ресурсов.
Тут либо автор должен придумать мение русурсоемкие запросы к базе данных.
Не факт что такие запросы можно придумать.

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

Надіслати
Поділитися на інших сайтах

5 часов назад, alekslavia сказал:

Товарищи, простой вопрос: прайс из обычного XLS с несколькими листами (вкладками). Модуль проходит только первый лист. Как можно сделать чтобы модуль проходил все листы XLS? (нет возможности сохранять в xml2003)

вырезать данные с литов и вставить все на первую страницу.
В модуле нет возможности ходить по листам. Наверное только так.

Надіслати
Поділитися на інших сайтах

12 часов назад, Rassol2 сказал:

Через модуль нельзя, можно через базу данных.

Все доступные действия в модуле я когда то выписал для удобства поиска нужной функции.
Вот тут - https://opencartforum.com/topic/16297-podderzhka-avtomaticheskaya-obrabotka-prays-listov/?do=findComment&comment=1540652

 

Подскажите, а как для конкретной группы товара удалить значение MPN?

Есть решение через базу данных UPDATE `oc_product` SET `mpn`='';, но это удаляет MPN у всех товаров.

Надіслати
Поділитися на інших сайтах


2 часа назад, IlyaCart сказал:

Подскажите, а как для конкретной группы товара удалить значение MPN?

Есть решение через базу данных UPDATE `oc_product` SET `mpn`='';, но это удаляет MPN у всех товаров.

через ту же базу данных можно сделать выборку той конкретной группы.
Но нужно знать по каким признакам вы отбираете товары.

Надіслати
Поділитися на інших сайтах

Добрый день. Друзья, подскажите, кто как решил проблему авторизации для скачивания фото? Поясню, поставщик закрыл все фото для скачивания. Скачать можно только через авторизацию, но с маленькой сноской, а именно -  Предоставил информационное письмо: 

Спойлер

Как было уже сказано ранее, вначале вы должны передать на страницу http://www.###.ru/autoAuth/ свои логин-пароль доступа к сайту или токен для скачивания Контента (известный также как Ключ прямого доступа к Контенту). И получить в ответ {"status":"success"}

Далее нужно запрашивать требуемые адреса фото ДО ЗАКРЫТИЯ соединения оператором curl_close(). Также запросами с использованием curl.
Должны быть установлены следующие опции. Файл чтения/записи cookie (CURLOPT_COOKIEJAR), признак следования за редиректами (CURLOPT_FOLLOWLOCATION), так как фото отдаются через редирект, 

Вполне возможно, что доступ к фото реализуем и после закрытия соединения curl_close() через идентификатор сессии, сохраненный в cookie.
Вполне возможно, что при получении картинок можно обойтись и без опции CURLOPT_RETURNTRANSFER.
Мы предоставили простейший работающий код. Опираясь на который вы сможете реализовать собственные варианты.

Более продвинутые версии скачивания фото после авторизации находятся за пределами данного кейса.

 

Простейший код для авторизации - 

 


<?
set_time_limit(0);
ini_set('memory_limit', '512M');

$auth_url =  'http://www.**.ru/autoAuth/';

if ($curl = curl_init()) {
curl_setopt($curl, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt'); // без указания файла для cookie не работает
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11;Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/72.0.3626.121 Safari/537.36');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // следуем за редиректами - обязательно. Картинки отдаются по редиректу

curl_setopt($ch, CURLOPT_HEADER, false); //не выводим заголовки
curl_setopt($curl, CURLOPT_URL, $auth_url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, 'login=' .'[email protected]'. '&password=' . 'mypassword');
$response_data = json_decode(curl_exec($curl), true);

if !(isset($response_data['status']) ||
		$response_data['status'] !== 'success') {
		echo $response_data['text'];
		exit(); 
}

curl_setopt($curl, CURLOPT_URL, 'http://www.**.ru/photo/EG_85447.jpg');
$img = curl_exec($curl);
echo $img; // выводим в браузер, если нужно
file_put_contents ('EG_85447.jpg', $img); // сохраняем на сервере, если нужно
curl_close($curl); // все запросы по картинкам ДО закрытия соединения
}
?>

 

Те насколько мне пояснили, для скачивания КАЖДОГО фото я должен передать логин и пароль на сайт поставщика. А во первых - фото более 140 тысяч, во вторых - модуль так не может. 

Подскажите, кто ни будь уже сталкивался с такой проблемой, и если да, то как решили? 

Заранее спасибо. 

Надіслати
Поділитися на інших сайтах


12 минут назад, ProofSpb сказал:

Те насколько мне пояснили, для скачивания КАЖДОГО фото я должен передать логин и пароль на сайт поставщика. А во первых - фото более 140 тысяч, во вторых - модуль так не может. 

Подскажите, кто ни будь уже сталкивался с такой проблемой, и если да, то как решили? 

Заранее спасибо. 

Да вы правы модуль так не умеет но уже пол дела сделано.
Модуль работает на cURL а заначит можно просто прокачать его стандартную фунцию скачивания фото, и добавить в блок запроса курл нужные парамеры.

Я думаю если вы напишите автору где в коде нужно вставить в фунцию cURL данные для авторизации, и приведете пример выше. Он подскажет какие строчки модифицировать.
 

Надіслати
Поділитися на інших сайтах

1 минуту назад, Rassol2 сказал:

Да вы правы модуль так не умеет но уже пол дела сделано.
Модуль работает на cURL а заначит можно просто прокачать его стандартную фунцию скачивания фото, и добавить в блок запроса курл нужные парамеры.

Я думаю если вы напишите автору где в коде нужно вставить в фунцию cURL данные для авторизации, и приведете пример выше. Он подскажет какие строчки модифицировать.
 

 

Так мне и пояснял автор модуля =)) Он сказал что легче попросить все фото у поставщика в одной папке и потом их скормить модулю, чем пытаться сделать автоматизацию. Так что я пытаюсь сам решить данную проблему, тк автоматизация - одна из самых главных причин покупки модуля )

Надіслати
Поділитися на інших сайтах


1 минуту назад, ProofSpb сказал:

 

Так мне и пояснял автор модуля =)) Он сказал что легче попросить все фото у поставщика в одной папке и потом их скормить модулю, чем пытаться сделать автоматизацию. Так что я пытаюсь сам решить данную проблему, тк автоматизация - одна из самых главных причин покупки модуля )

тогда я извиняюсь, возможно так и есть.
Чето я думал проше подмешать в функции курла нужные данные вам.


Но автору виднее, все же логика в АОП колоссальная.
 

Надіслати
Поділитися на інших сайтах

4 минуты назад, Rassol2 сказал:

тогда я извиняюсь, возможно так и есть.
Чето я думал проше подмешать в функции курла нужные данные вам.


Но автору виднее, все же логика в АОП колоссальная.
 

Так может Вы подскажете, куда копать, какие файлы смотреть, или хотя бы какие папки модуля? Буду экспериментировать.

Надіслати
Поділитися на інших сайтах


Здравствуйте не могу спарсить из (xml) фото по такой ссылке
https://farfello.com/upload/iblock/15d/Коляска комб. Ника детям7-2 (2017) рис.со щенком орхидея НД7-2.jpg
...не которые загружаются

 

Копирую ссылку и вставляю в браузер - все работает а модуль ругается

Price not updated: Row ~= 91 SKU = 5873 because the quantity is zero 
 Photo not found: Row ~= 91 SKU = 5873 folder: ../image/catalog/temp/рис.со щенком орхидея НД7-2.jpg 
 curl error head = Couldn't resolve host 'рис.со щенком орхидея НД7-2.jpg' 
 Download photo fails. Row ~= 91 Url = рис.со щенком орхидея НД7-2.jpg 
 Download photo fails. Row ~= 91 Url = https://farfello.com/upload/iblock/15d/Коляска комб. Ника детям7-2 (2017) 
 Photo not found: Row ~= 91 SKU = 5873 folder: ../image/catalog/temp/рис.со щенком орхидея НД7-2.jpg 
 curl error head = Couldn't resolve host 'рис.со щенком орхидея НД7-2.jpg' 
 Download photo fails. Row ~= 91 Url = рис.со щенком орхидея НД7-2.jpg 

 

Змінено користувачем northboy87
Надіслати
Поділитися на інших сайтах


1 минуту назад, ProofSpb сказал:

Так может Вы подскажете, куда копать, какие файлы смотреть, или хотя бы какие папки модуля? Буду экспериментировать.

Я бы не стал лесть.
Править нужно здесь /admin/model/catalog/suppler.php
Нужные функции вы найдете по поиску строки.
$ch = curl_init();

Там две таких фунции, вот в них нужно вставить по вашему примеру данные.

Но вот в чем загвоздка, модуль качает как через функцию file_get_contents и когда что то не выходит начинает работать через кур.
Так вот как правило фото качаются обычным гет контентом, я так подозреваю, и как указать модулю работать только через курл я не знаю.

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

Надіслати
Поділитися на інших сайтах

11 минут назад, Rassol2 сказал:

Я бы не стал лесть.
Править нужно здесь /admin/model/catalog/suppler.php
Нужные функции вы найдете по поиску строки.
$ch = curl_init();

Там две таких фунции, вот в них нужно вставить по вашему примеру данные.

Но вот в чем загвоздка, модуль качает как через функцию file_get_contents и когда что то не выходит начинает работать через кур.
Так вот как правило фото качаются обычным гет контентом, я так подозреваю, и как указать модулю работать только через курл я не знаю.

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

 

Странно. Поставщик ответил "Откуда Вы взяли такую глупую мысль?" говорит что моему сайту нужно передать данные авторизации, откроется сессия, и пока она открыта - я могу скачивать что угодно и как угодно. 

Подскажите, данные для авторизации надо вводить в suppler.php? ввод этих данных через вкладку крон не помогает. 

Надіслати
Поділитися на інших сайтах


7 минут назад, ProofSpb сказал:

 

Странно. Поставщик ответил "Откуда Вы взяли такую глупую мысль?" говорит что моему сайту нужно передать данные авторизации, откроется сессия, и пока она открыта - я могу скачивать что угодно и как угодно. 

Подскажите, данные для авторизации надо вводить в suppler.php? ввод этих данных через вкладку крон не помогает. 

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

 

Пример вашего разговора.

Цитата

Вы скажите своему поставшику что товар нужно положить на их складе, на 17 полочку у мясоперерабатывающего станка.

И когда он скажет что это брет.
Вы ему ответите.
Что за глупость он несет, пусть просто возьмет товар и положит на полочку. :grin:


Вот примерно такой диалог у вас был, вырванный из контекста.

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

Кто знает.
 

Надіслати
Поділитися на інших сайтах

@ProofSpb А еше луче просто отправьте ему файл модуля что я вам показал пусть поправит что нужно.
 

Спойлер

CYLqPby.png

Да так что бы модуль работать не перестал. Тогда он поймет какую глупость написал :grin:

Надіслати
Поділитися на інших сайтах

В 08.09.2020 в 21:28, Rassol2 сказал:

вырезать данные с литов и вставить все на первую страницу.
В модуле нет возможности ходить по листам. Наверное только так.

 

жаль. Вручную невозможно это сделать, так как всё идет через Cron

Надіслати
Поділитися на інших сайтах


В 08.09.2020 в 16:27, alekslavia сказал:

Товарищи, простой вопрос: прайс из обычного XLS с несколькими листами (вкладками). Модуль проходит только первый лист. Как можно сделать чтобы модуль проходил все листы XLS? (нет возможности сохранять в xml2003)

 

В 08.09.2020 в 21:28, Rassol2 сказал:

вырезать данные с литов и вставить все на первую страницу.
В модуле нет возможности ходить по листам. Наверное только так.

 

Создайте несколько форм поставщика, каждая пусть будет настроена на загрузку СВОЕГО листа.

Укажите номер листа прайса тут https://prnt.sc/nsfl5u (1)

Нумерация от нуля для первой вкладки.

Змінено користувачем Rubynoid
  • +1 1
Надіслати
Поділитися на інших сайтах


Доброго,

подскажите пожалуйста,

с сегодняшнего дня, товары добавляются, но их не видно на самом сайте в категориях, но стоит средствами опенкарт открыть товар, внести какие то изменения, сохранить и товар появляется на сайте. 

 

Надіслати
Поділитися на інших сайтах


5 часов назад, Rubynoid сказал:

Создайте несколько форм поставщика, каждая пусть будет настроена на загрузку СВОЕГО листа.

Укажите номер листа прайса тут https://prnt.sc/nsfl5u (1)

Нумерация от нуля для первой вкладки.

спасибо, всю жизнь нужно учится )

Надіслати
Поділитися на інших сайтах

Добрый день! При импорте товара из yml, он попадает только в одну главную категорию и отображается в родительских. Мне нужно, что бы товар отображался в нескольких главных категориях. То есть размещался в тех категориях, которые прописаны в yml. В самом yml к офферу указан список категорий:

<categoryId>465</categoryId>
<categoryId>479</categoryId>
<categoryId>45</categoryId>

В категориях и наценках все категории имеют назначения. Например:

465  -  категория1/подкатегория1

479  -  категория2/подкатегория2

45  -  категория3/подкатегория3

Сейчас товар попадает только в категорию 465 (в первую из списка описания оффера в yml прайсе, остальные игнорируются).

 

Кто знает, посоветуйте... Спасибо!

Надіслати
Поділитися на інших сайтах


41 минуту назад, Rassol2 сказал:

спасибо, всю жизнь нужно учится )

Не за что)

Да, прогресс по модулю у usergio постоянно есть))

Надіслати
Поділитися на інших сайтах


44 минуты назад, Bureg сказал:

Доброго,

подскажите пожалуйста,

с сегодняшнего дня, товары добавляются, но их не видно на самом сайте в категориях, но стоит средствами опенкарт открыть товар, внести какие то изменения, сохранить и товар появляется на сайте. 

 

в админке в разделе категорий нажать на кнопку "исправить"

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.