<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
скачал Вашу обработку, но почему-то она не открывается (сделал вроде все по Инструкции) у меня платформа 8.3 конфигурация УТ 11.2.3.66
что я делаю не так )))
Звините. все гуд пошло )))
(1) KreditNIK,
http://www.dotprice.ru/content/main/images/faq1.png
Ok. Наверное, мне имеет смысл выделить:
управляемые приложения (УТ11, БП3…) должны запускаться с ключом /RunModeOrdinaryApplication:
С каких соображений закрыли код обработки?
(3) vasiliy_b,
Их несколько, но основная – безопасность.
Система не требует предварительной регистрации пользователя-владельца интернет-магазина. В первых версиях обработки код был открыт и это привело к попыткам DoS-атак загрузки данных от некоторых «продвинутых» пользователей.
Если Вас интересуют какие-то аспекты кода – я ими с удовольствием поделюсь.
Большой плюс за объем работы и отличную идею — однозначно! Если еще поделитесь скриптом зума на вашем сайте — будет круто, деобфусцировать получилось, но вот рефакторинг переменных не удался. Если не жалко — буду признателен.
(5) shakmaev,
Не жалко 🙂
Отпишу в личную почту…
(4) а разве «продвинутые пользователи» не могут просто засниффить траффик, запросы? зачем им код
Я помню у 1С ещё для 77 подобное решение было… но видимо не пошло. Но всё равно удачи!
Я правильно понимаю, что эта обработка сразу лезет в интернет и делает прям на сайте новый интернет магазин ?
На каком-то определенном домене, который внутри обработки прописан ?
Мне без кода как-то не интересно этим пользоваться. Даже не понимаю, зачем оно нужно без кода. Как отдельный поддерживаемый разработчиком продукт — то это фактически сервис, да многим будет удобно, если будет поддержка и всё такое, но мне такой кот в мешке не нужен. В целом же идея хорошая.
(7) cool.vlad4,
к счастью, не могут — это должны быть «очень продвинутые» 🙂
(9) alex_4x,
Да. Вы правы — это сервис. Существует (в бета версии) уже достаточно давно. Находится на поддержке.
Собственно цель моей публикации — обсудить с сообществом infostart его востребованность, услышать критику, пожелания.
(11) Мне мой клиент дал ссылку на ваш сервис
MAGAZKA — лучшая программ для розничного магазина
и хочет чтобы
в этой связке заработала. Клиентов много (желающих хоть отбовляй из глубинок)
Как организовать адаптацию ?
(если будет предложения лучше в личку или на почту)
(12) Tatitutu,
Спасибо за предложение.
Обязательно посмотрю как можно адаптировать обработку под Вашу конфигурацию…
Можно ли на свой домен выложить ?
(14) mkostya,
Привязка собственных доменных имен к Вашему интернет-магазину
Если я Вас правильно понял, то да. См.
Если есть такая функция как
,
то возможно ли этому пользователю видеть свою историю заказов ?
Можно ли подключить СМС уведомление о поступлении заказа?
Можно ли уведомлять клиента, а готовности выполнить заказ.
Если заказ сделан по звонку, и менеджер сам в 1С оформил за него заказ, будет ли уведомление в почту, номер уникальны?
16) mkostya,
Это можно будет в «Личном кабинете» посетителя. Сейчас этот функционал находится в разработке.
Если это будет востребовано (пока только Вы обратились с этим) — реализуем. Очевидно, что это будет платный сервис.
Могу ошибаться, но, по-моему, данный функционал уже сейчас можно настроить с помощью специальных сервисов обработки/перенаправления входящей почты.
Сейчас такого сервиса нет. Давайте обсудим как это для Вас удобнее: «Обмен статусами заказов» (в работе, но, к сожалению, не поддерживается всеми типовыми конфигурациями) или специальные «активные» ссылки в письме-уведомлении о размещении заказа? Наверное, лучше в личке….
Заказы, отдельно оформляемые в 1С, никак не связаны с интернет-магазином. Никаких уведомлений от интернет-магазина в принципе быть не может. Возможно, я Ваш вопрос не понял…
Отлично жду обновления
и будет ли версия для мобильного телефона или ждать мобильного приложения?
По sms лучше интегрировать SMS.RU и вам будет выгодно и клиенту удобно
Привязка собственных доменных имен к Вашему интернет-магазину:
Как подключить магазин к уже работающему сайту mysite.ru на котором есть описания и история в яндексе?
Можно ли сделать поддомен shop.mysite.ru?
(18) mkostya,
О мобильном приложении пока говорить рано (думаю, сначала надо разработать и опубликовать API для взаимодействия с интернет-магазином), аверсия сайта с адаптивной версткой для мобильных устройств в разработке .
(19) retif,
По умолчанию привязка доменов 3-го уровня не допускается. В Вашем и подобных случаях ничто не мешает сделать исключение — напишите соответствующую заявку в тех. поддержку.
Есть еще вопрос по оплатам он-лайн: их как-то возможно подвязывать?
(22) kosyakov_anton,
В текущий момент — нет. Наверное, надо об этом подумать.
(19) retif,
поскольку потребность в привязке своих доменов 3-го уровня оказалась актуальной для многих, принято решение дать такую возможность по умолчанию.
Добрый день. Не могу припарковать свой домен «mobisale.in.ua», извилин не хватает на все. Поможите?
(25) Pyzuriaka, ответил в почту
Большое спасибо, все работает! Сайт поумолчанию вполне устраивает, вносим свою инфу и вуаля! ))) Так быстро интернет магазин я еще не открывал. Помню два года назад, я делал интернет магазин, потратил 12 месяцев, да и денег потратил.
Всем рекомендую!!! Автору огромное спасибо, надеюсь на продолжение банкета )))
(27) Pyzuriaka, Очевидно, что сервис не устроит в полной мере всех желающих иметь свой интернет-магазин (интернет-ресурс).
Но то, что он многим позволяет решать свои бизнес-задачи — это радует.
Спасибо за благодарности и рекомендации. 🙂
Здравствуйте! Можно ли получить обработку с открытым кодом?
Выслал Вам на email
Приветствую!
Идея прикольная, но есть одно но.
ПО сути это не интернет магазин, а просто витрина.
Интернет магазин требует полной автоматизации покупки, расчет доставки (нужны модули служб доставки), оплата (тоже интеграция). Ну как минимум.
Вот если бы это реализовать на каком то открытом всем известном движке CMC, то думаю была бы востребована сама интеграция.
Здравствуйте.
Не понял Вашу идею.
Если я не ошибаюсь, «известные движки СМС» имеют интеграцию с 1С 🙂
(31)
Извините, промахнулся. См. ниже
как я могу задать вам вопрос по данной обработке?
(36) Как Вам удобно. Здесь или в почте
2714267@mail.ru
Добрый день, как с вами связаться? На электронную почту info@dotprice.ru не кто не отвечает.
Хотел пообщаться по поводу обработки. напишите пожалуйста на почту stil-a@bk.ru Заранее спасибо.
(39) OK. Написал в почту