<?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="http://forum.readyscript.ru/feed/atom/topic/794/" />
	<updated>2017-12-15T15:52:27Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.readyscript.ru/topic/794/filtr-razmerov/</id>
		<entry>
			<title type="html"><![CDATA[Re: Фильтр размеров]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/8339/#p8339" />
			<content type="html"><![CDATA[<p>Да, действительно, перечитал тему, последний вопрос по количеству товара в разрезе размеров. </p><p>Ответ был на вопрос:<br /></p><div class="codebox"><pre><code>Данный функционал очень актуален для магазинов, которые продают одежду и обувь. Чтобы человек, зайдя в каталог товаров, мог выбрать, например, все кроссовки 41 размера и посмотреть, что есть в наличии, а не открывать 100 товаров и проверять его там.</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Ярослав]]></name>
				<uri>http://forum.readyscript.ru/user/74/</uri>
			</author>
			<updated>2017-12-15T15:52:27Z</updated>
			<id>http://forum.readyscript.ru/post/8339/#p8339</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Фильтр размеров]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/8338/#p8338" />
			<content type="html"><![CDATA[<p>Ну тут не совсем, то что нужно человеку, он скорее имеет ввиду поиск по комплектациям. А вы предлагаете поиск по наличию самого товара (общий остаток) (В фильтрах он есть всегда).</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2017-12-15T08:30:19Z</updated>
			<id>http://forum.readyscript.ru/post/8338/#p8338</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Фильтр размеров]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/8333/#p8333" />
			<content type="html"><![CDATA[<p>Так простое решение есть. Делаем характеристику&nbsp; &quot;Размеры в наличии&quot;. После обмена с 1С ,по cron-у или просто при изменении товара, заполняем данную характеристику значениями исходя из наличия в комплектациях. <br />И эту характеристику выводите в фильтре, а не настоящий &quot;Размер&quot;.</p><p>Я делал фильтрацию по росту ползунком &quot;от и до&quot;. В каждой комплектации был заполнен &quot;рост от&quot; и &quot;рост до&quot;, а у товара выставлялось минимальное и максимальное значение роста для комплектаций в наличии.<br />Выводил в фильтр просто РОСТ.</p><div class="codebox"><pre><code>   public static function ormAfterwriteCatalogProduct(array $params, \RS\Event\Event $event) {
        if (($params[&#039;flag&#039;] == \RS\Orm\AbstractObject::INSERT_FLAG) ||
                ($params[&#039;flag&#039;] == \RS\Orm\AbstractObject::UPDATE_FLAG)) { //Если это добавление 
            $min = 99999;
            $max = 0;
            $prop_rfrom = 89; //характеристика - ростовка от
            $prop_rto = 90; //характеристика - ростовка до 
            $prop_rostovka = &#039;Ростовка&#039;; //характеристика - ростовка
            $product = $params[&#039;orm&#039;];

            $offer_api = new \Catalog\Model\OfferApi();
            $offer_api-&gt;setFilter(array(
                &#039;sortn:&gt;=&#039; =&gt; 0,
                &#039;product_id&#039; =&gt; $product[&#039;id&#039;]
            ));
            $offers = $offer_api-&gt;getList();

            foreach ($offers as $offer) {
                if ($offer[&#039;num&#039;] &gt; 0) {
                    $data = $offer[&#039;propsdata_arr&#039;][$prop_rostovka];
                    if (isset($data)) {
                        $arr = explode(&#039;-&#039;, $data, 2);

                        if ($arr[0] &lt; $min)
                            $min = preg_replace(&#039;/[^0-9]/&#039;, &#039;&#039;, $arr[0]);
                        if ($arr[1] &gt; $max)
                            $max = preg_replace(&#039;/[^0-9]/&#039;, &#039;&#039;, $arr[1]);
                    }
                   
                }
            }
            if ($max &gt; 0 &amp;&amp; $min &lt; 99999 &amp;&amp; $max &gt;= $min) {

                //выключаем ростовку от и до 
                \RS\Orm\Request::make()
                        -&gt;delete()
                        -&gt;from(new \Catalog\Model\Orm\Property\Link())
                        -&gt;where(&quot;group_id is null&quot;)
                        -&gt;whereIn(&quot;prop_id&quot;, array($prop_rfrom, $prop_rto))
                        -&gt;exec();
                $proplink_table = \RS\Orm\Tools::getTable(new \Catalog\Model\Orm\Property\Link());
                \RS\Db\Adapter::sqlExec(&quot;INSERT IGNORE INTO {$proplink_table} (site_id, prop_id, product_id,  val_int, public, xml_id)
               VALUES (1,{$prop_rfrom},{$product[&#039;id&#039;]},{$min},0,&#039;&#039;)&quot;);
                \RS\Db\Adapter::sqlExec(&quot;INSERT IGNORE INTO {$proplink_table} (site_id, prop_id, product_id,  val_int, public, xml_id)
               VALUES (1,{$prop_rto},{$product[&#039;id&#039;]},{$max},0,&#039;&#039;)&quot;);
            }
        }
    }</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Ярослав]]></name>
				<uri>http://forum.readyscript.ru/user/74/</uri>
			</author>
			<updated>2017-12-14T13:56:52Z</updated>
			<id>http://forum.readyscript.ru/post/8333/#p8333</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Фильтр размеров]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/8331/#p8331" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><p>Это очень напряжный запрос, который очень тяжелый и вызывает подобный гемморой. Не каждый хостинг может обечпечит адекватное время ответа и реакции. даже если кэшировать, то размер кэшей будет неадекватно велик. Это скорее частное решение, а не массовое. Тут нужен хороший сервер для таких вещей. Мы каждый год возвращаемся к этой теме, но порка не готовы представить массовое решение, которое бы нас устроило.</p></blockquote></div><p>На самом деле в одном из известных движков это реализовано, начинается на CS, но размеры там атрибутами реализованы.</p>]]></content>
			<author>
				<name><![CDATA[ustasby]]></name>
				<uri>http://forum.readyscript.ru/user/94/</uri>
			</author>
			<updated>2017-12-14T12:04:08Z</updated>
			<id>http://forum.readyscript.ru/post/8331/#p8331</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Фильтр размеров]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/8325/#p8325" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Юрий пишет:</cite><blockquote><p>Мне тоже интересно. Пересмотрел кучу движков интернет-магазинов, почти нигде нет такой функции как вывод числовых счетчиков доступных характеристик товаров. Например выбираю у футболок размер 52 и мне показывается, что таких футболок есть красного цвета 3 варианта, зеленого 1 вариант, а голубого 0.</p><p>Это, что на самом деле так сложно сделать раз нигде нет? Настолько эксклюзивная фича получается.</p></blockquote></div><p>Это очень напряжный запрос, который очень тяжелый и вызывает подобный гемморой. Не каждый хостинг может обечпечит адекватное время ответа и реакции. даже если кэшировать, то размер кэшей будет неадекватно велик. Это скорее частное решение, а не массовое. Тут нужен хороший сервер для таких вещей. Мы каждый год возвращаемся к этой теме, но порка не готовы представить массовое решение, которое бы нас устроило.</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2017-12-14T08:37:47Z</updated>
			<id>http://forum.readyscript.ru/post/8325/#p8325</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Фильтр размеров]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/8323/#p8323" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Юрий пишет:</cite><blockquote><p>Т.е. чтобы такая штука появилась в RS это нужно вносить глобальные изменения в платформу, одним созданным модулем тут не обойтись? Я с позиции не девелопера, а продвинутого юзера смотрю на всё это.</p><p>А сколько примерно запросов к базе генерируют такие фильтры, ну чтоб хоть примерно представлять нагрузку и всю ситуацию?</p></blockquote></div><p>В интернете полно статей на эту тему, гуглите самостоятельно.</p>]]></content>
			<author>
				<name><![CDATA[ustasby]]></name>
				<uri>http://forum.readyscript.ru/user/94/</uri>
			</author>
			<updated>2017-12-13T18:46:36Z</updated>
			<id>http://forum.readyscript.ru/post/8323/#p8323</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Фильтр размеров]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/8322/#p8322" />
			<content type="html"><![CDATA[<p>Т.е. чтобы такая штука появилась в RS это нужно вносить глобальные изменения в платформу, одним созданным модулем тут не обойтись? Я с позиции не девелопера, а продвинутого юзера смотрю на всё это.</p><p>А сколько примерно запросов к базе генерируют такие фильтры, ну чтоб хоть примерно представлять нагрузку и всю ситуацию?</p>]]></content>
			<author>
				<name><![CDATA[Юрий]]></name>
				<uri>http://forum.readyscript.ru/user/750/</uri>
			</author>
			<updated>2017-12-13T16:59:47Z</updated>
			<id>http://forum.readyscript.ru/post/8322/#p8322</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Фильтр размеров]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/8321/#p8321" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Юрий пишет:</cite><blockquote><p>Это, что на самом деле так сложно сделать раз нигде нет? Настолько эксклюзивная фича получается.</p></blockquote></div><p>Для этого, как я выше писал, прикручиваются специализированные поисковые движки. Как вариант можно нормализовать данные и фильтры по ним делать, в любом случае это недешевое удовольствие, пользуйтесь тем что дают )) и ждите фасеточный поиск (как на том же юлмарте, хотя там это на сфинксе реализовано), уверен что про нее Александр и пишет.</p>]]></content>
			<author>
				<name><![CDATA[ustasby]]></name>
				<uri>http://forum.readyscript.ru/user/94/</uri>
			</author>
			<updated>2017-12-13T16:50:20Z</updated>
			<id>http://forum.readyscript.ru/post/8321/#p8321</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Фильтр размеров]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/8320/#p8320" />
			<content type="html"><![CDATA[<p>Мне тоже интересно. Пересмотрел кучу движков интернет-магазинов, почти нигде нет такой функции как вывод числовых счетчиков доступных характеристик товаров. Например выбираю у футболок размер 52 и мне показывается, что таких футболок есть красного цвета 3 варианта, зеленого 1 вариант, а голубого 0.</p><p>Это, что на самом деле так сложно сделать раз нигде нет? Настолько эксклюзивная фича получается.</p>]]></content>
			<author>
				<name><![CDATA[Юрий]]></name>
				<uri>http://forum.readyscript.ru/user/750/</uri>
			</author>
			<updated>2017-12-13T16:26:32Z</updated>
			<id>http://forum.readyscript.ru/post/8320/#p8320</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Фильтр размеров]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/8319/#p8319" />
			<content type="html"><![CDATA[<p>Представляю количество запросов к базе )) Я делал на сфинксе, любой более менее большой магазин переделывает фильтры на сфинксе либо люцене, на втором фасеточный поиск в апи реализован. Сначала индексация, потом зато одним запросом и очень быстро. Но в реализации дорого, у большинства магазинов выручка меньше, чем зарплата вменяемого программиста.</p>]]></content>
			<author>
				<name><![CDATA[ustasby]]></name>
				<uri>http://forum.readyscript.ru/user/94/</uri>
			</author>
			<updated>2017-12-13T15:48:30Z</updated>
			<id>http://forum.readyscript.ru/post/8319/#p8319</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Фильтр размеров]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/8317/#p8317" />
			<content type="html"><![CDATA[<p>На данный момент фильтры появились по комплектация внутри товара, а в списке товаровпока нет возможности фильтровать по остаткам в разрезе комплектации, только общий остаток</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2017-12-13T12:41:22Z</updated>
			<id>http://forum.readyscript.ru/post/8317/#p8317</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Фильтр размеров]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/8316/#p8316" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><p>Сроки пока неизвестны, что будет в итоге тоже не раскрою, но работа идёт <img src="http://forum.readyscript.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /> Всё инкогнито. Следите за обновлениями. Будет статья.</p></blockquote></div><p>Скажите пожалуйста Александр, есть ли на данный момент решение этой задачи?</p>]]></content>
			<author>
				<name><![CDATA[Дмитрий]]></name>
				<uri>http://forum.readyscript.ru/user/375/</uri>
			</author>
			<updated>2017-12-13T09:15:48Z</updated>
			<id>http://forum.readyscript.ru/post/8316/#p8316</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Фильтр размеров]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/4042/#p4042" />
			<content type="html"><![CDATA[<p>Сроки пока неизвестны, что будет в итоге тоже не раскрою, но работа идёт <img src="http://forum.readyscript.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /> Всё инкогнито. Следите за обновлениями. Будет статья.</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-07-20T15:23:53Z</updated>
			<id>http://forum.readyscript.ru/post/4042/#p4042</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Фильтр размеров]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/4038/#p4038" />
			<content type="html"><![CDATA[<p>А когда планируете завершить? Я к тому предпринимать ли нам какие-то действия или лучше подождать <img src="http://forum.readyscript.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></content>
			<author>
				<name><![CDATA[Максим]]></name>
				<uri>http://forum.readyscript.ru/user/284/</uri>
			</author>
			<updated>2016-07-20T12:15:57Z</updated>
			<id>http://forum.readyscript.ru/post/4038/#p4038</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Фильтр размеров]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/4029/#p4029" />
			<content type="html"><![CDATA[<p>Сейчас у нас ведутся работы в направлении характеристик, мы учтём все Ваши пожелания.</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-07-20T07:25:32Z</updated>
			<id>http://forum.readyscript.ru/post/4029/#p4029</id>
		</entry>
</feed>
