<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум ReadyScript &mdash; Оформление заказа - use_addr(==0||>0) добавить третий вариант]]></title>
	<link rel="self" href="http://forum.readyscript.ru/feed/atom/topic/550/" />
	<updated>2015-12-13T19:23:37Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.readyscript.ru/topic/550/oformlenie-zakaza-useaddr00-dobavit-tretii-variant/</id>
		<entry>
			<title type="html"><![CDATA[Re: Оформление заказа - use_addr(==0||>0) добавить третий вариант]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/2335/#p2335" />
			<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>2015-12-13T19:23:37Z</updated>
			<id>http://forum.readyscript.ru/post/2335/#p2335</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Оформление заказа - use_addr(==0||>0) добавить третий вариант]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/2328/#p2328" />
			<content type="html"><![CDATA[<p>С созданием фиктивного адреса куча проблем вылазит, например если покупатель вернется на шаг назад, то увидит этот адрес, т.е. его еще и шаблоне надо фильтровать.<br />А чем так страшно значение -1? Я его использую и пока проблем не обнаружил. Данные пишу в [order_extra]. AJAX я весь переписал, правда .js файл решил не использовать, т.к. у меня весь javascript лежит в .tpl шаблоне в теге &lt;script&gt;, зато smarty данные напрямую в js-объект передает. Вот так:<br /></p><div class="codebox"><pre><code>{addjs file=&quot;http://api-maps.yandex.ru/2.1/?lang=ru_RU&quot; basepath=&quot;root&quot;}

&lt;div class=&quot;imlContainer_{$delivery.id}&quot;&gt;
    &lt;button id=&quot;showMap_{$delivery.id}&quot; class=&quot;btn btn-primary btn-md&quot;&gt;Показать карту&lt;/button&gt;
&lt;/div&gt;
&lt;!-- Modal --&gt;
&lt;div class=&quot;modal fade&quot; id=&quot;mapModal&quot; tabindex=&quot;-1&quot; role=&quot;dialog&quot; aria-labelledby=&quot;mapModalLabel&quot;&gt;
    &lt;div class=&quot;modal-dialog modal-lg&quot; role=&quot;document&quot;&gt;
        &lt;div class=&quot;modal-content&quot;&gt;
            &lt;div class=&quot;modal-header&quot;&gt;
                &lt;button type=&quot;button&quot; class=&quot;close&quot; data-dismiss=&quot;modal&quot; aria-label=&quot;Отменить&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&amp;times;&lt;/span&gt;&lt;/button&gt;
                &lt;h3 class=&quot;modal-title text-center&quot; id=&quot;mapModalLabel&quot;&gt;Выбор пункта самовывоза&lt;/h3&gt;
            &lt;/div&gt;
            &lt;div class=&quot;modal-body&quot;&gt;
                
            &lt;/div&gt;
            &lt;div class=&quot;modal-footer&quot;&gt;
                {foreach json_decode($service_ids) as $code =&gt; $name}
                    &lt;div class=&quot;priceItem&quot;&gt;
                        &lt;div class=&quot;name&quot;&gt;{$name}&lt;/div&gt;
                        &lt;div class=&quot;priceText&quot; data-code=&quot;{$code}&quot;&gt;&lt;/div&gt;
                    &lt;/div&gt;
                {/foreach}
                &lt;button type=&quot;button&quot; class=&quot;btn btn-default&quot; data-dismiss=&quot;modal&quot;&gt;Отменить&lt;/button&gt;
                &lt;button type=&quot;button&quot; class=&quot;btn btn-primary submitModal&quot;&gt;Сохранить&lt;/button&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
jQuery(document).ready(bindHandlers);

/**
 * Начальные значения. Подгружаются через Smarty.
 * @type {*Object*}
 */
var defaultData = {
        &quot;url&quot;               :&quot;{$router-&gt;getUrl(&#039;shop-front-checkout&#039;, [&#039;Act&#039; =&gt; &#039;userAct&#039;])}&quot;,
        &quot;delivery_id&quot;        :&quot;{$delivery.id}&quot;, 
        &quot;delivery_cost_json&quot;  :{$delivery_cost_json},
        &quot;service_id&quot;         :{$service_ids},
        &quot;region_id_from&quot;      :&quot;{$region_id_from}&quot;, 
        &quot;region_id_to&quot;        :&quot;{$region_id_to}&quot;, 
        &quot;currency&quot;           :&quot;{$currency}&quot;, 
        &quot;select_id&quot;          :&quot;#selectRegionCombo_{$delivery.id}&quot;, 
        &quot;list_id&quot;            :&quot;#sdlist_{$delivery.id}&quot;, 
        &quot;loading&quot;           :&quot;&lt;div class=&#039;loading&#039;&gt;&lt;/div&gt;&quot;
    },</code></pre></div><p>PS Я хоть и по своему делаю, но вам огромное спасибо, вы мне очень помогли разобраться.</p>]]></content>
			<author>
				<name><![CDATA[Денис]]></name>
				<uri>http://forum.readyscript.ru/user/194/</uri>
			</author>
			<updated>2015-12-11T15:43:31Z</updated>
			<id>http://forum.readyscript.ru/post/2328/#p2328</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Оформление заказа - use_addr(==0||>0) добавить третий вариант]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/2327/#p2327" />
			<content type="html"><![CDATA[<p>Ну и что? Повесьтесь&nbsp; на событие сохранения заказа и просто поправьте этот адрес, на тот что будет выбран в качестве пункта самовывоза. Ну или поправьте его при выборе данного пункта. Или ещё лучше просто после сохранения у таких заказов удалите адрес, который создастся. Вот и всё.</p><p>Событие <strong>orm.afterwrite.shop-order</strong></p><p><a href="http://readyscript.ru/dev-manual/dev_hooks.html">Хуки в ReadyScript</a></p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2015-12-11T07:18:52Z</updated>
			<id>http://forum.readyscript.ru/post/2327/#p2327</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Оформление заказа - use_addr(==0||>0) добавить третий вариант]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/2326/#p2326" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><p>0 и заполнить поля какими-нибудь своими данными</p></blockquote></div><p>В таком случае у пользователя создается новый объект адреса, который потом отображается в списке адресов</p>]]></content>
			<author>
				<name><![CDATA[Денис]]></name>
				<uri>http://forum.readyscript.ru/user/194/</uri>
			</author>
			<updated>2015-12-10T17:57:47Z</updated>
			<id>http://forum.readyscript.ru/post/2326/#p2326</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Оформление заказа - use_addr(==0||>0) добавить третий вариант]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/2325/#p2325" />
			<content type="html"><![CDATA[<p>0 и заполнить поля какими-нибудь своими данными, если выбрал на этапе ввода адреса Вашу галочку с самовывозом. Иначе просто оставлять поля пустыми. Просто если пользователь новый, то у него всегда будет 0 и надо записать адрес. И пусть приходит как какой-нибудь Ваш адрес записанный для данного пользователя. Он всё равно не будет этого видеть. <br />Единственное, я не знаю использует ли Ваша доставка индекс города. Скорее всего да. Но это можно обойти просто отправив запрос на Ваш обработчик внутри класса доставки и там уже заказу, при выборе пункта самовывоза передать значение выбранного индекса. Ну или поставить какой-нибудь свой индекс. Или оставить поле индекса. Вообщем вариантов много.</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2015-12-10T16:56:12Z</updated>
			<id>http://forum.readyscript.ru/post/2325/#p2325</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Оформление заказа - use_addr(==0||>0) добавить третий вариант]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/2324/#p2324" />
			<content type="html"><![CDATA[<p>Спасибо, попробую с куками.<br />А какое значение use_addr использовать у нового варианта? При 0 не пройдет валидация формы, а при положительном он будет искать объект адреса. Отрицательное использовать?</p>]]></content>
			<author>
				<name><![CDATA[Денис]]></name>
				<uri>http://forum.readyscript.ru/user/194/</uri>
			</author>
			<updated>2015-12-10T16:45:41Z</updated>
			<id>http://forum.readyscript.ru/post/2324/#p2324</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Оформление заказа - use_addr(==0||>0) добавить третий вариант]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/2323/#p2323" />
			<content type="html"><![CDATA[<p>Ну запишите в куку выбор через jquery cookie, например.<br /><a href="http://stackoverflow.com/questions/1458724/how-to-set-unset-cookie-with-jquery">http://stackoverflow.com/questions/1458 … ith-jquery</a>.</p><p>А на странице доставки проверьте это значение. И если нужно выбрать радиокнопку на этапе доставки, то просто вызовите событие клика. И всё.<br /></p><div class="codebox"><pre><code>$(&#039;селектор нужной радио кнопки&#039;).click();</code></pre></div><p>У нас есть возможность передавать любые данные через поля <strong>order_extra</strong>. Но они имеют свойство выдавать в конце в карточке редактирования заказа. Ну например такое поле, для страницы с выбором адреса<br /></p><div class="codebox"><pre><code>&lt;input type=&quot;text&quot; name=&quot;order_extra[&#039;Любое имя, можно и по русски&#039;]&quot; value=&quot;{$order.order_extra.address[&#039;Любое имя, можно и по русски&#039;]}&quot;/&gt;

&lt;pre&gt;
{$order.order_extra}
&lt;/pre&gt;</code></pre></div><p>Но я думаю это вам вряд ли понадобится.</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>http://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2015-12-10T16:21:45Z</updated>
			<id>http://forum.readyscript.ru/post/2323/#p2323</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Оформление заказа - use_addr(==0||>0) добавить третий вариант]]></title>
			<link rel="alternate" href="http://forum.readyscript.ru/post/2322/#p2322" />
			<content type="html"><![CDATA[<p>Здравствуйте, при оформлении заказа на шаге &quot;адрес&quot; существует поле &#039;use_addr&#039;. Принцип по которому система взаимодействует с этим значением мне понятен (если 0, то чекаем поля нового адреса, а если больше, то используем как ID объекта адреса у пользователя и не чекаем поля).</p><p>Дело в том, что одно из требований моего заказчика - вывести на этапе ввода адреса еще один вариант выбора &quot;Я буду использовать пункт самовывоза&quot; где пользователь может не вводить все поля адреса, а просто выбрать регион из списка, предоставляемого агрегатором доставки. Следовательно, на следующем шаге оформления (доставка) делать априори отмеченным вариант доставки &quot;до постомата&quot;, и показывать карту выбора постомата на определенном городе.</p><p>Подскажите пожалуйста, как самой малой кровью добиться результата? Желательно инфу между страницами передавать через экстра-данные, без расширения ORM объекта Order.<br />Как надо назвать поле и в каком виде передавать в него данные для корректной записи в массив экстра-данных заказа?</p>]]></content>
			<author>
				<name><![CDATA[Денис]]></name>
				<uri>http://forum.readyscript.ru/user/194/</uri>
			</author>
			<updated>2015-12-10T15:59:30Z</updated>
			<id>http://forum.readyscript.ru/post/2322/#p2322</id>
		</entry>
</feed>
