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

Модуль Opencart: Уведомление о поступлении товара [Поддержка]


Recommended Posts

  • 2 weeks later...

В последнее время, примерно раз в неделю, какой-то спамерский бот забивает уведомления, по 50-100 за несколько минут. Валится куча писем. Причем пытается внедрить какой-то код через форму периодически. Защиту от спамеров не планируете прикрутить, хотя бы капчу?

 

2021-02-09_22-27-29.png

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


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

В последнее время, примерно раз в неделю, какой-то спамерский бот забивает уведомления, по 50-100 за несколько минут. Валится куча писем. Причем пытается внедрить какой-то код через форму периодически. Защиту от спамеров не планируете прикрутить, хотя бы капчу?

 

2021-02-09_22-27-29.png

Каптча в модуле стоит с самой первой версии.

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

В 15.12.2020 в 14:47, seregin сказал:

Добрый день.
Это надо дополнительно добавлять функцию в модуль импорта.

 

Небольшое отступление, ставил на сайт шаблон Unishop (наверное в нем есть такой функционал), импорт CSV без правок, при обновлении срабатывало уведомление на почту покупателя.

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


15 часов назад, almir сказал:

 

Небольшое отступление, ставил на сайт шаблон Unishop (наверное в нем есть такой функционал), импорт CSV без правок, при обновлении срабатывало уведомление на почту покупателя.

Сейчас получается не срабатывает?

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

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

Сейчас получается не срабатывает?

Это я к тому что не нужно было править импорт, сейчас нужна такая функция на шаблоне по дефолту.

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


48 минут назад, almir сказал:

Это я к тому что не нужно было править импорт, сейчас нужна такая функция на шаблоне по дефолту.

Ну как я до этого и писал, нужно дорабатывать модуль экспорта csv

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

  • 2 weeks later...
В 28.01.2021 в 20:49, globaltrading сказал:

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

Что было в последнем обновлении от 27.01.2021 ?

@seregin Подскажите по истории обновления, что было добавлено в какую версию. Не нашли у вас этой информации. 

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


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

@seregin Подскажите по истории обновления, что было добавлено в какую версию. Не нашли у вас этой информации. 

Смотрите в файле CHANGELOG.txt

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

  • 1 month later...

Спасибо, версия opencart.pro 2.3.0.2.5 - все работает отлично из коробки 

Добавил страницы в модификаторе (Популярні товари mostviewed.php, Хіти продажів bestseller.php, Новинки latest.php - выводятся в подвале на главной странице, не уверен есть ли такое на чистом oc) строчка 388 :

<file path="catalog/controller/product/{category.php,search.php,special.php,mostviewed.php,latest.php,bestseller.php}">

полтора часа настраивал шаблоны писем, а так установка и настройка 5 мин

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


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

подскажите не планируется ли адаптация под oc1.5.6.4 ?

Под 1.5 не будет.

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

  • 2 months later...

Добрый день. Переменные для оповещений об изменении статуса товаров (например {product_url} ) могут быть в виде ссылок, чтобы получатель уведомления из письма мог сразу на ссылку нажать и перейти к товару на сайте? Или у меня что-то не правильно установилось? Ссылки просто в виде текста в письме. 

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


3 часа назад, Yureka сказал:

Добрый день. Переменные для оповещений об изменении статуса товаров (например {product_url} ) могут быть в виде ссылок, чтобы получатель уведомления из письма мог сразу на ссылку нажать и перейти к товару на сайте? Или у меня что-то не правильно установилось? Ссылки просто в виде текста в письме. 

Письмо в html, если нужны ссылки, то надо добавляйте <a href="{product_url}">{product_name}</a>

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

  • 2 months later...
В 08.04.2021 в 15:20, roman21 сказал:

подскажите не планируется ли адаптация под oc1.5.6.4 ?

я когда-то давно на форума находил для 1.5. И там все просто, только внешний вид подправить нужно было и немного по vqmod пройтись. И cron делал для него даже. Чтобы по крону проверял и отправлял письма. Только вот найти бы, Так как делал это 4 года назад.

 

Вот этот вроде 

 

А крон уже делал самостоятельно

 

Делал папочку крон в корне сайта.

Туда клал файлик cron.php 

C вот таким содержимым

Он в этой же папочке делает логгирование выполнения в файлик avails.txt

 

<?php
$fs = fopen('avails.txt', 'ab+');
fwrite($fs, date('Y-m-d H:i:s').' Запуск крона' ."\n");
fclose($fs);
if (is_file('../admin/config.php')) {
	require_once('../admin/config.php');		
}

// Startup
require_once DIR_SYSTEM.'startup.php';

// Registry
$registry = new Registry();

// Config
$config = new Config();
$registry->set('config', $config);

// Database
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$registry->set('db', $db);

// Settings
$query = $db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = '0'");

foreach ($query->rows as $setting) {
	if (!$setting['serialized']) {
		$config->set($setting['key'], $setting['value']);
	} else {
		$config->set($setting['key'], unserialize($setting['value']));
	}
}

// Loader
$loader = new Loader($registry);
$registry->set('load', $loader);

// Front Controller
$controller = new Front($registry);

// Url
$url = new Url(HTTP_SERVER, $config->get('config_secure') ? HTTPS_SERVER : HTTP_SERVER);
$registry->set('url', $url);
		
// SEO URL's
if (!$seo_type = $config->get('config_seo_url_type')) {
	$seo_type = 'seo_url';
}
$controller->addPreAction(new Action('common/' . $seo_type));

// Language
$languages = array();

$query = $db->query("SELECT * FROM `" . DB_PREFIX . "language`");

foreach ($query->rows as $result) {
	$languages[$result['code']] = $result;
}

$config->set('config_language_id', $languages[$config->get('config_admin_language')]['language_id']);

// Language
$language = new Language($languages[$config->get('config_admin_language')]['directory']);
$language->load($languages[$config->get('config_admin_language')]['directory']);
$registry->set('language', $language);

//availability
		function changeMailStatus($db, $id, $status) {
			if ($db->query("UPDATE " . DB_PREFIX . "avail SET status = '" . (int) $status . "' WHERE id = '" . (int) $id . "'")) {
				return true;
			} else {
				return false;
			}
		}
		$notify = $db->query("select * from " . DB_PREFIX . "product p, " . DB_PREFIX. "avail a where p.quantity >= 2 AND p.product_id = a.product_id AND a.status = 0");
	
		$notify = $notify->rows;
		$lang = $loader->language('module/avail');
		$i = 0;
		if (!empty($notify)) {
			foreach ( $notify as $info ) {				
				$product_link = $url->link("product/product", "product_id=" . $info['product_id']);
				
				$mail = new Mail();				
				$mail->protocol = $config->get('config_mail_protocol');
				$mail->parameter = $config->get('config_mail_parameter');
				$mail->hostname = $config->get('config_smtp_host');
				$mail->username = $config->get('config_smtp_username');
				$mail->password = $config->get('config_smtp_password');
				$mail->port = $config->get('config_smtp_port');
				$mail->timeout = $config->get('config_smtp_timeout');
				
				$mail->setTo($info['email']);
				$mail->setFrom($config->get('config_email'));
				$mail->setSender('\''.$lang['email_subject'].'\'');
				$mail->setSubject(html_entity_decode(sprintf($lang['email_subject'], $info['name'], ENT_QUOTES, 'UTF-8')));

				$mail_text = "<!DOCTYPE html><html><head><meta http-equiv=«Content-Type» content=«text/html; charset=utf-8»></head><body>";
				$mail_text .="<p>" . html_entity_decode($info['name'].', '.$lang['text_mail_send']. "</p>");
				$mail_text .= "<p>" . $lang['text_product'] .': ' . $info['product'] . "</p>";
				$mail_text .= "<p>" . $lang['text_link_page'] . ": " . " <a href=" . $product_link . ">" . $info['product'] . "</a></p>";				
				$mail_text .= "<p>" . $lang['text_price'] . ': ' . $info['price'] . "</p></body></html>";

				$mail->setHtml($mail_text);
				$mail->send();
				$change_mail_status = changeMailStatus($db,$info['id'],1);
				if ($change_mail_status === true){
                    $i++;
                }else{
                    $avail_error = fopen('avails.txt', 'ab+');
                    fwrite($avail_error , date('Y-m-d H:i:s').' --- Не удалось обновить статус после отправки письма'."\n");
                    fclose($avail_error);
                }
			}
			echo 'OK!';
            $avail_logs = fopen('avails.txt', 'ab+');
            fwrite($avail_logs , date('Y-m-d H:i:s').' --- Отправлено:'.' '.$i.' писем'."\n");
            fclose($avail_logs);
		}
		
 ?>

 

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

Я ставил крон раз в час, после синхронизации остатков с 1С. И видно сработал ли крон, и сколько писем было отправлено. Правда понятно файлик нужно периодически удалять, чтобы не разрастался

2019-08-20 09:30:03 Запуск крона
2019-08-20 10:30:02 Запуск крона
2019-08-20 10:30:02 --- Отправлено: 2 писем
2019-08-20 11:30:07 Запуск крона
2019-08-20 11:30:08 --- Отправлено: 12 писем
2019-08-20 12:30:06 Запуск крона
2019-08-20 12:30:07 --- Отправлено: 3 писем

 

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


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

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