Да. Вам нужен шаблон
/templates/young/users/profile.tpl, там тоже самое, что и в шаблоне с регистрацией.

<div class="userType">
        <input type="radio" id="ut_user" name="is_company" value="0" {if !$user.is_company}checked{/if}><label for="ut_user">Частное лицо</label>
        <input type="radio" id="ut_company" name="is_company" value="1" {if $user.is_company}checked{/if}><label for="ut_company">Компания</label>
    </div>   

меняем на

<div class="userType">
        <input type="radio" id="ut_user" name="is_company" value="0" {if !$user.is_company}checked{/if}><label for="ut_user">Частное лицо</label>
    </div>   

Извините за долгий ответ.
Вам необходимо из шаблоны вырезать те вещи которые отвечают за функционал юр. лица. Шаблон, который отвечает за вывод страницы с вводом адреса это:
/templates/young/moduleview/shop/checkout/address.tpl

Найдите там:

<ul class="centerBlock">
                <li class="user first"><input type="radio" id="type-user" name="user_type" value="person" {if $order.user_type=='person'}checked{/if}><label for="type-user">Частное лицо</label></li>
                <li class="company"><input type="radio" id="type-company" name="user_type" value="company" {if $order.user_type=='company'}checked{/if}><label for="type-company">Компания</label></li>
                <li class="noregister"><input type="radio" id="type-noregister" name="user_type" value="noregister" {if $order.user_type=='noregister'}checked{/if}><label for="type-noregister">Без регистрации</label></li>
                <li class="account"><input type="radio" id="type-account" name="user_type" value="user" {if $order.user_type=='user'}checked{/if}><label for="type-account">Я регистрировался ранее</label></li>
            </ul>

И замените на:

<ul class="centerBlock">
                <li class="user first"><input type="radio" id="type-user" name="user_type" value="person" {if $order.user_type=='person'}checked{/if}><label for="type-user">Частное лицо</label></li>
                <li class="noregister"><input type="radio" id="type-noregister" name="user_type" value="noregister" {if $order.user_type=='noregister'}checked{/if}><label for="type-noregister">Без регистрации</label></li>
                <li class="account"><input type="radio" id="type-account" name="user_type" value="user" {if $order.user_type=='user'}checked{/if}><label for="type-account">Я регистрировался ранее</label></li>
            </ul>

После чего сохраните и сбросьте кэш.

Шаблон от вечающий за регистрацию общую это :
/templates/young/moduleview/users/register.tpl

Найдите там:

<div class="userType">
            <input type="radio" id="ut_user" name="is_company" value="0" {if !$user.is_company}checked{/if}><label for="ut_user">Частное лицо</label>
            <input type="radio" id="ut_company" name="is_company" value="1" {if $user.is_company}checked{/if}><label for="ut_company">Компания</label>
        </div>

И замените на:

<div class="userType">
            <input type="radio" id="ut_user" name="is_company" value="0" {if !$user.is_company}checked{/if}><label for="ut_user">Частное лицо</label>
        </div>

Единственный момент... Т.к. темы оформления у нас обновляются, Вам надо отклонировать Вашу тему оформления и работать в своей папке. Для этого перейдите в Управление->Шаблоны->Справа вверху - Клонировать тему оформления и отклонируйте со своим именем. Плюс не забудьте отметить галочку - переключиться на тему оформления.

После этого можете править тему оформления в своей папке с темой.

Но с JS вы "здорово" придумали.

А как бы вы реализовали бы данные вещи? Без JS. smile

Нет. Доберёмся. Я Вам отвечу.

Где стрелка - там показывается комплектация цвет, а называется фото.

Всё дело в том, что там должно быть фото. В многомерках на вкладке комплектации есть радиокнопка, показа как фото комплектации. Например, если у Вас есть цвет, то цвет можно выводит маленькой фотографией. Но... Если у Вас для комплектации не отмечено ни одно фото, которое соответствует например цвету, то оно будет выводится как текст(у каждой комплектации можно его отметить). Поэтому всё там правильно, на наш взгляд.


Кстати, а чем вас prev() не устраивает? По-моему, хороший метод. Сам не проверял, но по логике, должен работать в разы быстрее чем closest() так как объекты на prev и next у каждого объекта jquery при инициализации прописываются.

Дело в том, что prev и next это неточные обращения. Особенно если, кто-то захочет поменять вёрстку, то надо будет и javascript Ваш менять, и несколько раз допустим прописывать ещё prev prev prev. А если обращаться по идентификатору, как указано выше или через closest, то можно имея класс или идентификатор сразу обратиться к нужному элементу, не особо следя за вёрсткой.

Скажите, а предусмотрена ли (или может в планах) такая вещь, как скрытие пустых комплектаций (с 0 остатком)? Чтобы при смене, например, цвета, менялся и список остальных свойств, в зависимости от наличия на складе.

Да, в этом году поставлено задачей.

И еще вопрос - у вас в демках и в моей теме тоже остатки отображаются стиками, индикатором, возможно ли как то быстро отказаться от этой системы, и выводить остатки обычным числом?

Можно. Но нужно немного допилить js и вёрстку. Остатки по складам, присутствуют у каждой комплектации. Догрузить из можно с помощью двух методов у объекта товара

$full_stock=$product->getWarehouseFullStock() - остатки общие для комплектациям по складам

и

$offers_stock=$product->getWarehouseStock() - остатки по складам и комплектациям

Плюс у комплектаций есть поле num с общим остатком по складам.

Т.е. можно при смене комплектации например брать num и подставлять в каждый нужный класс отображения.

Товар также обладает полем num - общий остаток по всем складам.

2,006

(3 ответов, оставленных в Вопросы по работе с системой)

Комплектация там выбирается верная. Просто там прописано, что будет выводится. артикул самого товара. Мы внесли исправления в шаблоны, чтобы отображались артикулы комплектаций. Это будет в ближайшем обновлении.
Однако, т.к. fashion(молодежная тема) является единственной не обновлённой, то Вам надо открыть шаблон:

/templates/fashion/moduleview/shop/cartpage.tpl

И заменить ДВЕ записи

{if $product.barcode}<p class="barcode">Артикул: {$product.barcode}</p>{/if}

на

{$offer_barcode=$product->getBarcode($cartitem.offer)}
{if $offer_barcode}{* Артикул комлпектации *}
     <p class="barcode">Артикул: {$product->getBarcode($cartitem.offer)}</p>
{elseif $product.barcode} {* Артикул товара *}
      <p class="barcode">Артикул: {$product.barcode}</p>
{/if}

Получилось?

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

$(data.options.hiddenOffersName,context).each(function(i){

Попробуйте его подебажить, может у Вас что-то не то выбирается.
И на всякий случай Возьмите ещё код jquery.changeoffer.js из дефолтной темы.

Что касается Вашего кода. Ваших ссылках записать во первых в data id(идентификатор) выпадающего списка, который реализует отображение вариантов с выбором, тогда можно считать точный селектор того выпадающего списка. И в другой data записать значение, которое нужно выбрать из этого списка. Т.е. при нажатии на вашу ссылку, вы сразу знаете какой выпадающий список и его значение нужно применить. Применяете это значение к селекту и уже у него вызываете событие change. Тогда код по идее точно отработает. Возможно, что вы просто не тому селекту присваиваете значения.
Попробуйте покосолеложить выбранные селекты.

Вам нужен файл jquery.changeoffer.js

Денис пишет:

$(this).parent().prev()

этого кода вообще там не должно быть, он находится здесь http://22.groupvm.z8.ru/templates/autof … s/theme.js
он там и есть, только не работает

сейчас сделаю как вы советуете.

Странно, т.к. он приведён в Вашем коде выше с модальным окном в самом низу.

$('[name="offer"]').changeOffer({
                multiOffers: true
            });

Вам признак  multiOffers: true здесь не нужен. Скрипт всё должен и так подхватить. Можно просто оставить

$('[name="offer"]').changeOffer();

theme.js у Вас срабатывает. У Вас в шаблоне используются многомерные комплектации. Поэтому Вам надо посмотреть метод changeMultiOffer.
Попробуйте использовать console.log и вывести для себя, заходит ли в этот метод JS и посмотрите, что у Вас в переменных. Возможно у Вас просто не инициализируются по классам переменные. Попробуйте повыводить их значения с помощью console.log() в Firebug

Не используете $(this).parent().prev()
Логичнее использовать $(this).closest('Класс нужного объекта'), или siblings

Денис пишет:

Я все проверил и похоже на то, что не работает JS из плагина changeoffers в модале. Да и вообще никакой JS, кроме того, который написан в теле модала, не отрабатывает. Похоже, что надо или JS'ом, или через Smarty подгружать необходимые в модале скрипты. Но {addjs}, не работает в модале, что, кстати, не удивительно...

Я не понимаю, почему не отрабатывает JS событие заданное через $.on()? Этот метод, по-моему, специально для таких модалов и всяких появляющихся элементов был разработан ($.live() помните?).

Уверен, что вы мне подскажете самый быстрый вариант из возможных))

Не нужно всё и так будет работать. live - метод который является depricated, т.е. устаревшим и его уже нет в jquery

hidden_offers в вашем случае не используется, используется конструкция ниже. А именно:

{elseif $product->isOffersUse()}
                {* Простые комплектации *}
                <div class="packages">
                    <div class="package">
                        <span class="pname">{$product.offer_caption|default:'Комплектация'}</span>
                        <div class="values">
                            {if count($product.offers.items)>5}
                                <select name="offer">
                                    {foreach from=$product.offers.items key=key item=offer name=offers}
                                    <option value="{$key}" {if $smarty.foreach.offers.first}checked{/if} {if $check_quantity}data-num="{$offer.num}"{/if} data-change-cost='{ ".myCost": "{$product->getCost(null, $key)}", ".lastPrice": "{$product->getOldCost($key)}"}' data-images='{$offer->getPhotosJson()}' data-sticks='{$offer->getStickJson()}'>{$offer.title}</option>
                                    {/foreach}
                                </select>
                            {else}
                                {foreach from=$product.offers.items key=key item=offer name=offers}
                                    <div class="packageItem">
                                        <input value="{$key}" type="radio" name="offer" {if $smarty.foreach.offers.first}checked{/if} id="offer_{$key}" {if $check_quantity}data-num="{$offer.num}"{/if} data-change-cost='{ ".myCost": "{$product->getCost(null, $key)}", ".lastPrice": "{$product->getOldCost($key)}"}' data-images='{$offer->getPhotosJson()}' data-sticks='{$offer->getStickJson()}'/>
                                        <label for="offer_{$key}">{$offer.title}</label>
                                    </div>
                                {/foreach}
                            {/if}
                        </div>
                    </div>
                </div><br>
            {/if}

jquery.changeoffer.js у Вас должен подключаться в list_product.tpl - шаблон со списком товаров общий в модуле catalog.

вы не туда смотрите. Смотрите ниже data-change-cost

2,017

(0 ответов, оставленных в Сторонние модули, темы оформления для ReadyScript)

В последнее время стали часто обращаться с проблемами парсинга. Если кому-то нужно написать парсер с другого сайта, то Вы можете обращаться в к нам в поддержу, или в платные заявки на helpdesk.readyscript.ru

Я посмотрел Ваш случай и проверил у нас. Да, действительно такая ошибка выявилась, но цена там меняется. Не меняется только артикул. Дело в том, что отрабатывает js плагин из файла jquery.changeoffer.js
А именно функция с именем changeOffer
Она смотрит на выбранную радиокнопки и ищет там data-change-cost, в неё записывается объект со сведениями о ценах и артикуле выбранной комплектации. Прописывается это всё сразу в шаблоне. Исправление выйдет в ближайщем обновлении. Вам же нужно просто заменить

data-change-cost='{ ".myCost": "{$product->getCost(null, $key)}", ".lastPrice": "{$product->getOldCost($key)}"}'

На

data-change-cost='{ ".offerBarcode": "{$offer.barcode|default:$product.barcode}", ".myCost": "{$product->getCost(null, $key)}", ".lastPrice": "{$product->getOldCost($key)}"}'

offerBarcode - класс селектора с артикулом товара.

Правки выйдут в ближайшем обновлении.

Помогает ли онлайн консультант у Вас в интернет-магазине?
И какие проблемы решает?

А какой товар в демо у нас не менял артикул и в какой теме Вы смотрели?

Скажите на какой сайт зайти, я закажу у вас что-нибудь и вы сразу столкнетесь с этой проблемой big_smile

Просто постепенно по мере подключения новых способов доставки вылазят разные интересности и нюансы. СДЭК по стоимости доставки и удобству использования непосредственно в readyscript очень нравится, вот мы и пристаем к вам с вопросами. Хотим запустить его поскорее.

+ у многих других людей на этапе подключения после наших разговоров отпадет много вопросов

Мы не против. smile Ждём, что от Вас, что скажет поддержка.

Sergey T. пишет:

Если клиент оплачивает весь заказ, то имеется ввиду, что и доставку тоже. Поэтому зачем убирать оттуда сумму доставки? Если у Вас наложенный платёж, то он ведь будет оплачивать тоже на месте всю сумму вместе с доставкой.

Тогда я немного не понял (скриншот ниже). Например в системе существует оплата яндекс.деньгами и в ее настройках выбрана доставка "СДЭК без наложенного платежа" + соответственно в этой доставке убран флажок "наложенный платеж". Если человек оплатил заказ по такой схеме, т.е. 160 + 265 рублей, то в документе на печать строка "ИТОГО к оплате при вручении с учетом доставки 265 рублей", которые по идее клиент уже оплатил, значит с него возьмут эти деньги?

http://s014.radikal.ru/i327/1602/ec/02eb94513bd1.jpg

Я понял Ваш вопрос. Логично. Но дело в том, что мы не сами подготавливаем форму, а отправляем запрос на СДЕК и сам СДЕК уже по номеру заказа печатает Вам квиток. Поэтому я думаю лучше этот вопрос почему именно так задать им. Возможно тут имелось ввиду, что вы им дадите. Но это лучше им прозвонить для уточнения. Я у себя на сайте вчера включил СДЕК, но пока заказов не было через него, поэтому не сталкивался с такой проблемой.

Флажок наложенный платёж поправлен и исправление будет доступно в ближайшем обновлении.

Если страницы в файле robots.txt не занесены в исключение для индекса, то будут проиндексированы все страницы на которые, можно перейти. По умолчанию товары естественно доступны. Всегда лучше писать уникальные описания, т.к. поисковик любит уникальные тексты. Либо заказывать рерайт описаний на сайтах типа - text.ru. Там же можно и проверить уникальность.

Вам нужно поправить шаблон с первым шагом оформления заказа.
У Вас какая тема оформления?