<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум ReadyScript &mdash; Запрос наличия товара в другую базу]]></title>
	<link rel="self" href="https://forum.readyscript.ru/feed/atom/topic/1787/" />
	<updated>2019-04-27T17:27:01Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.readyscript.ru/topic/1787/zapros-nalichiya-tovara-v-druguyu-bazu/</id>
		<entry>
			<title type="html"><![CDATA[Re: Запрос наличия товара в другую базу]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9895/#p9895" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Ярослав пишет:</cite><blockquote><p>Потому что взломав сайт можно получить доступ к базе, что не есть хорошо для безопасности.<br />Я до создания сайтов на RS (спасибо Набиуллина) занимался Oracle, АБС Банк XXI век и интеграцией с процессингом пластиковых карт.&nbsp; Если бы я дал доступ к базе извне, меня бы уволили, может бы и дело завели. Как минимум можно за DDOS-ить&nbsp; запросами к базе.</p></blockquote></div><p>А если база прямо тут лежит, че, типа сильно лучше?<br />ТС что предлагает? Как RSом подключаться к mssql.</p><p>Удаленно хотя бы можно ограничить четко нужным контентом, что сайту нужен, и всё.</p><p>Если &quot;взломав сайт&quot;, то получаешь доступ ко всему, куда имеет доступ пользователь, который крутит сайт. Логично, что ппц. И какая тут база будет - внешняя, внутренняя или под кучей проверок - пофиг, поимеешь доступ ко всему.</p>]]></content>
			<author>
				<name><![CDATA[Polo Art]]></name>
				<uri>https://forum.readyscript.ru/user/535/</uri>
			</author>
			<updated>2019-04-27T17:27:01Z</updated>
			<id>https://forum.readyscript.ru/post/9895/#p9895</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запрос наличия товара в другую базу]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9894/#p9894" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>Похожим образом на вордпрессе цены обновляют smile и товары загружают. Там толком механизмов встроенных нет.</code></pre></div><p>Я не знаю как там реализовано, но для моментальной загрузки большого массива данных во временную таблицу - это самый быстрый вариант.<br />Загрузка массива происходит мгновенно, в отличии от парсинга csv файла штатными средствами PHP. А потом переносите данные в рабочие таблице как хотите, но ничего быстрее, чем сделать это парой SQL запросов - нет.</p><div class="codebox"><pre><code>Реального времени - это при загрузке страницы идёт куда-то запрос, где данные актуальные.</code></pre></div><p>Топикстартер вверху пишет, что надо обновлять цены и остатки и при просмотре каталога товаров, а не только 1 товара. <br />А как быть при использовании фильтрации и т.д.? Делать постоянно запросы для каждого товара к внешней системе? А если там что то с серваком будет или еще какие то задержки, то тайм аута запроса будем ждать?&nbsp; <br />Ну пусть интервал 5 минут, а 1 минута. Роли не играет, остатки товаров не успевают так быстро поменяться в учетной системе.&nbsp; И 15 минут хватает. Я сужу по статистике сайта для оптовиков, где в день несколько сотен заказов и 10 000 товаров. Проблем не было.</p><div class="codebox"><pre><code>Явно у них внутри какой-то динозавр типа оракла всё крутит и ничего умнее придумать не смогли.</code></pre></div><p>Oracle скорее железный человек, который все может) Система спокойно переваривает сотни гигабайт данных. MySQL и PostgreSQL такого не снилось. </p><div class="codebox"><pre><code>Это ещё почему? Ограничение по айпи на уровне mysql и чем-то типа iptables закрыт порт для всех, кому не положено.</code></pre></div><p>Потому что взломав сайт можно получить доступ к базе, что не есть хорошо для безопасности.<br />Я до создания сайтов на RS (спасибо Набиуллина) занимался Oracle, АБС Банк XXI век и интеграцией с процессингом пластиковых карт.&nbsp; Если бы я дал доступ к базе извне, меня бы уволили, может бы и дело завели. Как минимум можно за DDOS-ить&nbsp; запросами к базе.</p><div class="codebox"><pre><code>Хотите пример подобного велосипеда, где данные через джонсик прилетают на страницу? И там не только цены, там весь каталог прилетает.
https://rs24.ru/catalog.htm</code></pre></div><p>Это совсем не то, о чем пишет ТС.&nbsp; Весь фронтэнд построен на Vanilla JS, они просто список товаров получают со своего&nbsp; же сайта, а не со сторонних серверов. Примерно так же, как RS при фильтрации каталога товаров, только интерфейс на стороне клиента строится, а не прилетает в готовом виде.</p><p>Самый яркий пример использования сторонних сервисов - сайты с бронированием.В особенности агрегаторы.&nbsp; Там видно, с какими задержками обновляются данные при использовании запросов в различные сервисы</p>]]></content>
			<author>
				<name><![CDATA[Ярослав]]></name>
				<uri>https://forum.readyscript.ru/user/74/</uri>
			</author>
			<updated>2019-04-27T08:09:58Z</updated>
			<id>https://forum.readyscript.ru/post/9894/#p9894</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запрос наличия товара в другую базу]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9893/#p9893" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Ярослав пишет:</cite><blockquote><p>Ну или по крону связываться с внешней БД и порциями затягивать остатки. Тоже как вариант.<br />Но я бы на месте администратора системы запретил прямой доступ к базе</p></blockquote></div><p>Это ещё почему? Ограничение по айпи на уровне mysql и чем-то типа iptables закрыт порт для всех, кому не положено.</p>]]></content>
			<author>
				<name><![CDATA[Polo Art]]></name>
				<uri>https://forum.readyscript.ru/user/535/</uri>
			</author>
			<updated>2019-04-26T20:38:08Z</updated>
			<id>https://forum.readyscript.ru/post/9893/#p9893</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запрос наличия товара в другую базу]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9892/#p9892" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Ярослав пишет:</cite><blockquote><p>Для каталога товаров в 10 000 позиций я делал выгрузку в csv файл каждый 5 минут, затягивал его в таблицу средствами Mysql LOAD DATA INFILE (это встроенный механизм MySQL для загрузки больших объемов данных.). Затем скриптом обновлял остатки и цены. Этот метод работает молниеносно.&nbsp; Временная таблица создается в доли секунды.<br />В моем случае скрипт загрузки вызывался внешней системой, но можно и cron у RS использовать.<br />Можно хоть раз в минуту выгружать. Фактически остатки и цены будут синхронизированы в режиме реального времени.</p></blockquote></div><p>Похожим образом на вордпрессе цены обновляют <img src="https://forum.readyscript.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /> и товары загружают. Там толком механизмов встроенных нет.<br />Однако, 5 минут - это не есть режим реального времени.<br />Реального времени - это при загрузке страницы идёт куда-то запрос, где данные актуальные.</p><p>Хотите пример подобного велосипеда, где данные через джонсик прилетают на страницу? И там не только цены, там весь каталог прилетает.<br /></p><div class="codebox"><pre><code>https://rs24.ru/catalog.htm</code></pre></div><p>Явно у них внутри какой-то динозавр типа оракла всё крутит и ничего умнее придумать не смогли.<br />И ещё монстрик<br /></p><div class="codebox"><pre><code>https://b2b.el-com.ru/catalog</code></pre></div><p>(требуется регистрация, бесплатно)<br />256 тыщ товаров</p><p>Так что, если хотите реального времени - пишем велосипед подобного рода. И выбор движка тут никакой роли не играет, чем легче движок (а rs тут сильно вне конкуренции), тем лучше.</p><p>Кстати говоря, по элкому - в б2б всё барахло навалено, что даже с производства снято, а вот что они снаружи сваяли на битре<br /></p><div class="codebox"><pre><code>https://www.el-com.ru/catalog/</code></pre></div><p>и пропихнули туда всего 13256 товаров (на 7 марта)<br />может, им и хотелось больше (судя по выгрузкам актуальным, что для дилеров предоставляют), но усё, видимо, битра больше не шмагла.</p>]]></content>
			<author>
				<name><![CDATA[Polo Art]]></name>
				<uri>https://forum.readyscript.ru/user/535/</uri>
			</author>
			<updated>2019-04-26T20:30:45Z</updated>
			<id>https://forum.readyscript.ru/post/9892/#p9892</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запрос наличия товара в другую базу]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9891/#p9891" />
			<content type="html"><![CDATA[<p>Ну или по крону связываться с внешней БД и порциями затягивать остатки. Тоже как вариант.<br />Но я бы на месте администратора системы запретил прямой доступ к базе</p>]]></content>
			<author>
				<name><![CDATA[Ярослав]]></name>
				<uri>https://forum.readyscript.ru/user/74/</uri>
			</author>
			<updated>2019-04-26T14:54:12Z</updated>
			<id>https://forum.readyscript.ru/post/9891/#p9891</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запрос наличия товара в другую базу]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9890/#p9890" />
			<content type="html"><![CDATA[<p>Независимо от выбора движка онлайн синхронизацию в разумные сроки выполнить не получится. Время открытия страницы - один из основных факторов, влияющих на юзабили сайта. </p><p>Для каталога товаров в 10 000 позиций я делал выгрузку в csv файл каждый 5 минут, затягивал его в таблицу средствами Mysql LOAD DATA INFILE (это встроенный механизм MySQL для загрузки больших объемов данных.). Затем скриптом обновлял остатки и цены. Этот метод работает молниеносно.&nbsp; Временная таблица создается в доли секунды.<br />В моем случае скрипт загрузки вызывался внешней системой, но можно и cron у RS использовать.<br />Можно хоть раз в минуту выгружать. Фактически остатки и цены будут синхронизированы в режиме реального времени.</p>]]></content>
			<author>
				<name><![CDATA[Ярослав]]></name>
				<uri>https://forum.readyscript.ru/user/74/</uri>
			</author>
			<updated>2019-04-26T14:52:44Z</updated>
			<id>https://forum.readyscript.ru/post/9890/#p9890</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запрос наличия товара в другую базу]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9889/#p9889" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>Еще хотелось бы узнать посредством чего можно из Readyscript обратиться к базе MS SQL (ну типа через PDO)?</code></pre></div><p>Вы можете использовать все, что предлагает PHP, в том числе PDO. <br />(Стандартно в RS есть только собственный адаптер для Mysql).</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://forum.readyscript.ru/user/2/</uri>
			</author>
			<updated>2019-04-26T14:50:59Z</updated>
			<id>https://forum.readyscript.ru/post/9889/#p9889</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запрос наличия товара в другую базу]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9888/#p9888" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Polo Art пишет:</cite><blockquote><p>Но режим реального времени... мне кажется, тут нужен костыль вида: js на странице товара долбится в php, а тот долбится в вашу mssql и получает цифры остатков - такие решения я встречаю регулярно, только с фронтэнда это выглядит как &quot;js долбится в непубличный api&quot;, а на чём этот апи реализован дело десятое, хоть на фокспро.</p></blockquote></div><p>Мне кажется, что лучше использовать событийную модель реализованную в ReadySkript, ну или хотя бы в начале формирования страницы со списком товара, когда все данные по товарам выводимым на страницу известны, произвести обращение в MS SQL, получить остатки в магазинах и записать наличие на склады. Не уверен правильно ли думаю, но на выяснение придется потратить время, а меня торопят с принятием решения - какой интернет магазин выбрать выбрать!</p>]]></content>
			<author>
				<name><![CDATA[Александр]]></name>
				<uri>https://forum.readyscript.ru/user/1214/</uri>
			</author>
			<updated>2019-04-26T12:54:24Z</updated>
			<id>https://forum.readyscript.ru/post/9888/#p9888</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запрос наличия товара в другую базу]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9887/#p9887" />
			<content type="html"><![CDATA[<p>Я думаю, что тут необходимо идти по привычному пути &quot;rs+mysql&quot;, а вот из mssql обновлять в mysql остатки через выгрузки не проблема.</p><p>Но режим реального времени... мне кажется, тут нужен костыль вида: js на странице товара долбится в php, а тот долбится в вашу mssql и получает цифры остатков - такие решения я встречаю регулярно, только с фронтэнда это выглядит как &quot;js долбится в непубличный api&quot;, а на чём этот апи реализован дело десятое, хоть на фокспро.</p><p>Если пойти с другой стороны - ваш mssql должен выплёвывать из себя что-то типа json, который кушает js на странице товара. Остатки вполне себе можно реализовать на публичной части, не обязательно всё внутри формировать.</p><p>п.с. и эта, имхану - лезть с mssql в мир линуксов какой-то неверный путь.</p>]]></content>
			<author>
				<name><![CDATA[Polo Art]]></name>
				<uri>https://forum.readyscript.ru/user/535/</uri>
			</author>
			<updated>2019-04-26T12:17:29Z</updated>
			<id>https://forum.readyscript.ru/post/9887/#p9887</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запрос наличия товара в другую базу]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9886/#p9886" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>admin пишет:</cite><blockquote><p>Мне кажется вопрос более, чем обширный. Скорее всего такого заветного одного места нет.</p><p>Возможно вам лучше проработать какой-то периодический скрипт синхронизации ваших <br />остатков и остатков внутри RS.</p></blockquote></div><p>Я понимаю, что можно использовать событие cron, не ежеминутно, а раз в час - это вариант, но база у нас большая, в наличие до 25 тыс. позиций номенклатуры и это в 8 магазинах. Обновление будет происходить достаточно долго, а хочется режима реального времени. <br />Readyscript откровенно говоря я знаю плохо т.к. в процессе поиска подходящего движка интернет-магазина. Ваша разработка мне понравилась еще и наличием хорошей документации по программированию. Мне бы определиться в каких местах необходимо вставить код обращения к MS SQL, чтобы корректно отработать согласование остатков в магазинах и обновить из них остатки на складах интернет-магазина. А дальше программа будет использовать уже остатки на складах интернет-магазина. Естественно, что при входе в корзину, процедура определения наличия товара должна повториться, но для этого есть обработчик события связанный с корзиной. <br />Еще хотелось бы узнать посредством чего можно из Readyscript обратиться к базе MS SQL (ну типа через PDO)?</p>]]></content>
			<author>
				<name><![CDATA[Александр]]></name>
				<uri>https://forum.readyscript.ru/user/1214/</uri>
			</author>
			<updated>2019-04-26T10:37:42Z</updated>
			<id>https://forum.readyscript.ru/post/9886/#p9886</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Запрос наличия товара в другую базу]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9885/#p9885" />
			<content type="html"><![CDATA[<p>Мне кажется вопрос более, чем обширный. Скорее всего такого заветного одного места нет.</p><p>Возможно вам лучше проработать какой-то периодический скрипт синхронизации ваших <br />остатков и остатков внутри RS.</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://forum.readyscript.ru/user/2/</uri>
			</author>
			<updated>2019-04-26T09:08:53Z</updated>
			<id>https://forum.readyscript.ru/post/9885/#p9885</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Запрос наличия товара в другую базу]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9883/#p9883" />
			<content type="html"><![CDATA[<p>У нас сеть магазинов. Базы данных созданы на MS SQL сервер для каждого магазина отдельная база. Хотелось бы, когда покупатель&nbsp; ищет и просматривает товар в интернет-магазине, наличие товара выбиралось из наличия в магазинах и копировалось в остатки на складах интернет-магазина.&nbsp; Вопрос - Где можно вставить код запроса к внешней базе и как его можно представить?</p>]]></content>
			<author>
				<name><![CDATA[Александр]]></name>
				<uri>https://forum.readyscript.ru/user/1214/</uri>
			</author>
			<updated>2019-04-26T08:37:25Z</updated>
			<id>https://forum.readyscript.ru/post/9883/#p9883</id>
		</entry>
</feed>
