Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Mysha

Пользователи
  
  • Posts

    162
  • Joined

  • Last visited

Recent Profile Visitors

1,131 profile views

Mysha's Achievements

Collaborator

Collaborator (7/14)

  • First Post
  • Collaborator
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

6

Reputation

  1. Работал с человеком @php , и могу сказать, что парсинг - это его тема. Он знает что и куда, как взять и как положить в ОК без сторонних платных плагинов. За 1,5 дня мне запарсили и всунули в магизин все, что я хотел.
  2. Исполнитель найден, тему можно считать закрытой.
  3. Спасибо, но, увы, нужно решение out of box. Разбираться самому и потом искать пути импорта, у меня нет времени. В другой раз бы попытался, но сейчас все горело по срокам.
  4. После половины дня танцев с бубном. Для начала, у вас все должно быть настроено верно, а именно, как показано на картинке ниже: Вы отправляете почту из формы обратной связи, и получаете PHP Fatal error: Uncaught Exception: Error: Password not accepted from server! Помимо того, что это может быть банальный неверный пароль, куда более вероятно, что вы ни разу не заходили в бизнесовый почтовый ящик Яндекс и не приняли соглашение пользователя. Недостаточно быть админом и зайти в него, нужно еще и зайти под пользователем, которого вы создали как админ. Это очень важно, но неочевидно! Убил в этой точке 2 часа Далее, не путайте пароли. Вам нужно указывать не пароль админа 360, а пароль пользователя сервиса 360. Либо, если вы не хотите его светить в магазине, зайдите в эккаунт Коннект/360 и разрешение использование паролей приложений (App Password). Далее, создайте такой первый пароль для сервиса Почта. Система Яндекс сгенерит его вам автоматически. И использовать этот пароль во вкладке Mail этот пароль для SMTP как обычный пароль для SMTP, но при этом, ваш основной пароль от SMTP никто не узнает. Дальше вы получите другую ошибку: PHP Fatal error: Uncaught Exception: Error: MAIL FROM not accepted from server! Это значит, что тему с паролем и авторизацией вы проехали, сервер вас узнал, но ему не нравится несовпадение ящика отправителя с ящиком, который был сообщен SMTP-серверу при обмене командами. Для решения этой проблемы правите файл /catalog/controller/information/contact.php: /* $mail->setFrom($this->request->post['email']); */ $mail->setFrom($this->config->get('config_email')); Все, радуетесь жизни. Да, подобных постов тут было много, но инфо по п.п. 2 было найти очень тяжело. И по OC3 информации мало, а contact.php немного изменился (не в одной конкретно этой строке, а вообще). Эта инструкция для тех, кто хочет все и за 1 минуту FAQ: Почему Яндекс.Коннект? Потому, что свой домен. А G-Suite стал стоить 6 долларов в месяц. Деньги невеликие, но для некоммерческого проекта хотел сделать принципиально бесплатно. Почему не PHP Mail и не свой почтовый сервер, такой как EXIM? Потому, что в DigitalOcean закрыт outbound TCP port 25, и открыть его по запросам в ТП невозможно. Почтовые релеи не могут обмениваться почтой, а точнее, ваш почтовый сервер ничего не может отправить наружу.
  5. Нужна такая услуга или модуль под последний OC3. А именно, засосать товары из 6-8 категорий eBay по ~120-150 штук из каждой и положить в мой ОС. Можно делать как угодно. Ваш модуль, ваши скрипты, обмен через CSV/XLS, ваш парсер и потом SQL и так далее. Как угодно, вы ничем не ограничены. Важен только конечный результат. Важно! Вариации по товарам (size, color) не нужны. То есть, засасываем только основной (один) товар per item. Хотел сделать сам, но не судьба: Купил модуль Import product from eBay, но не работает и автор не отвечает. Проект parsemx закрыт. На решение вопроса есть только 2-3 дня. Кому-то интересно?
  6. Нужен такой модуль или услуга под последний OC3. А именно, засосать товары из 6-8 категорий eBay по 150 штук из каждой и положить в мой ОС. Купил модуль Import product from eBay, но не работает и автор не отвечает. Проект parsemx закрыт. На решение вопроса есть только 2-3 дня. Кому-то интересно?
  7. Вопрос решил установкой владельца на файлы OC3 как admin:admin. chown -R admin:admin /path/to/your/oc3/wwwroot/ Логично, что скрипты apache:apache не могли двигать файлы и директории admin:admin.
  8. Имею свежую установку OC 3. Магазин в целом жив на 99%, фронт и адмика работают. Но некоторые функции в админке падают с ошибками. Например, падает с ошибками ошибка кэша SASS, установке расширения (совместимого и разработанного коммьюнити OC). Искал по форуму, гуглил. Перешерстил Stackoverflow, Habr и пр. ресурсы. Но именно такой ситуации как у себя не нашел. В логах полным-полна коробочка: Я примерно нашел проблему по косвернным признакам. Например, папка tmp-B4TmfPjEza и файлы в ней имеют владельца admin:admin. То есть, проблема где-то с настройками на уровне администрирования. Данные о системе: VPS (CentOS 7x64 + VestaCP, если что). SELinux и тяжелое наследие с context выключено. PHP 7.4 Включен open_basedir. Но по нему сделаны настройки и они эффективны: /home/admin/web/dom.tld/public_html:/home/admin/tmp:/home/admin/web/dom.tld/:/storage/ Apache работает из под юзера Apache: ps -ef | egrep '(httpd|apache2|apache)' | grep -v `whoami` | grep -v root | head -n1 | awk '{print $1}' Папкой storage владеет apache:apache, и находится в /. Права на нее пока были выданы максимальные: sudo chmod -R 777 /storage/ Владелец на веб-папку OC3 (/home/admin/tmp:/home/admin/web/dom.tld/) выставлен apache:apache рекурсивно. Права на файлы OC3 выствавлены -R как 0644, а на папки - R 0755. Файлы config.php (оба) вучную выставлены на 0755. В обох конфигах сторадж определен как: define('DIR_STORAGE', '/storage/'); Прощу помощи в направлении движения. И в частности, почему файлы extension влетают с владельцем admin:admin.
  9. Ребята, У меня теперь все как бы работает, но валюту RUB надо пинать вручную, иначе не обновляется даже в течение 2 дней. Хотя в настройках OC стоит галка "автоматическое обновление". Внимание, этот код вам as is не подойдет, так так у меня специфически настройки валют: public function refresh($force = false) { $currency_data = array(); if ($force) { // $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "currency WHERE code != '" . $this->db->escape($this->config->get('config_currency')) . "'"); $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "currency WHERE 1 "); } else { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "currency WHERE code != '" . $this->db->escape($this->config->get('config_currency')) . "' AND date_modified < '" . $this->db->escape(date('Y-m-d H:i:s', strtotime('-1 day'))) . "'"); } foreach ($query->rows as $result) { if ($result['code'] == 'RUB') { $response = file_get_contents('https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency=USD&to_currency=RUB&apikey=YOURKEYHERE'); $json = json_decode($response); if (@is_null($json->{"Error Message"})) { $value = (float) $json->{"Realtime Currency Exchange Rate"}->{"5. Exchange Rate"}; $this->db->query("UPDATE " . DB_PREFIX . "currency SET value = '" . $value . "', date_modified = '" . $this->db->escape(date('Y-m-d H:i:s')) . "' WHERE code = '" . $this->db->escape($result['code']) . "'"); } } } $this->db->query("UPDATE " . DB_PREFIX . "currency SET value = '1.00000', date_modified = NOW() WHERE code = 'USD'"); $this->cache->delete('currency'); } API работает верно и все отдает как лапочка (с верным кодом клиента). Дело не в нем, а в механизме (логике) запуска автооапдейта курса. Не подскажете в чем может быть дело?
  10. Вопрос решен, человек chhukcha помог разобраться (уже не в первый раз). Рекомендую его в качестве саппортера сайтов на OC.
  11. Пытаюсь скрестить свой старый код, когда учет цен ведется в USD, а отображение идет в RUR. Поменял функцию, выставил старые значения, модифицировал URL по образу и подобию старого Yahoo. URL работает отлично, но где-то у меня не хватает ума, и есть ошибка. Не поможете? public function refresh($force = false) { $currency_data = array(); if ($force) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "currency WHERE code != '" . $this->db->escape($this->config->get('config_currency')) . "'"); } else { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "currency WHERE code != '" . $this->db->escape($this->config->get('config_currency')) . "' AND date_modified < '" . $this->db->escape(date('Y-m-d H:i:s', strtotime('-1 day'))) . "'"); } foreach ($query->rows as $result) { $response = file_get_contents('https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency=USD&to_currency=RUB&apikey=P6WGY9G9LB22GMBJ'); $json = json_decode($response); if (@is_null($json->{"Error Message"})) { $value = (float) $json->{"Realtime Currency Exchange Rate"}->{"5. Exchange Rate"}; $this->db->query("UPDATE " . DB_PREFIX . "currency SET value = '1.00000'" . $this->db->escape(date('Y-m-d H:i:s')) . "' WHERE code = 'USD'"); } } $this->db->query("UPDATE " . DB_PREFIX . "currency SET value = '" . $value . "', date_modified = '" . $this->db->escape(date('Y-m-d H:i:s')) . "' WHERE code = 'RUB'"); $this->cache->delete('currency'); } public function getTotalCurrencies() { $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "currency"); return $query->row['total']; } } PHP дает вот такой выход: Notice: Undefined variable: value in /home/public_html/admin/model/localisation/currency.php on line 128 Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/admin/controller/startup/error.php:34) in /home/public_html/system/library/response.php on line 12 Прошу помощи!
  12. Спасибо. Как вручную пинать загрузчик курсов валют? Он меня был модифицировать под двухвалютный учет. О некорретной работе узнаю только завтра. Как пнуть его?
  13. Yahoo отключили этот сервис. Уроды. It has come to our attention that this service is being used in violation of the Yahoo Terms of Service. As such, the service is being discontinued. For all future markets and equities data research, please refer to finance.yahoo.com.
  14. Он уже ответил, что это так маркетплейс переделали. Офигеть вообще.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.