Модификация Ajax Блока

В общем суть такая

имеем

{foreach from=$product_groups key="group_key" item=group name="spg"} {* Group name *} {if !"ULTIMATE"|fn_allowed_for || $product_groups|count > 1} {$group.name} {/if}
                    {* Products list *}
                    {if !"ULTIMATE"|fn_allowed_for || $product_groups|count > 1}
                        <ul class="ty-shipping-options__products">
                            {foreach from=$group.products item="product"}
                                {if !(($product.is_edp == 'Y' && $product.edp_shipping != 'Y') || $product.free_shipping == 'Y')}
                                    <li class="ty-shipping-options__products-item">
                                        {if $product.product}
                                            {$product.product nofilter}
                                        {else}
                                            {$product.product_id|fn_get_product_name}
                                        {/if}
                                    </li>
                                {/if}
                            {/foreach}
                        </ul>
                    {/if}

                    {* Shippings list *}
                    {if $group.shippings && !$group.all_edp_free_shipping && !$group.all_free_shipping && !$group.free_shipping && !$group.shipping_no_required}

                        {if $display == "select"}
                            <p>
                            <select id="ssr_{$company_id}" name="shipping_ids[{$company_id}]" {if $onchange}onchange="{$onchange}"{/if}>
                        {/if}

                        {foreach from=$group.shippings item="shipping"}

                            {if $cart.chosen_shipping.$group_key == $shipping.shipping_id}
                                {assign var="checked" value="checked=\"checked\""}
                                {assign var="selected" value="selected=\"selected\""}
                                {assign var="strong_begin" value="<strong>"}
                                {assign var="strong_end" value="</strong>"}
                            {else}
                                {assign var="checked" value=""}
                                {assign var="selected" value=""}
                                {assign var="strong_begin" value=""}
                                {assign var="strong_end" value=""}
                            {/if}

                            {if $shipping.delivery_time}
                                {assign var="delivery_time" value="(`$shipping.delivery_time`)"}
                            {else}
                                {assign var="delivery_time" value=""}
                            {/if}

                            {if $shipping.rate}
                                {capture assign="rate"}
                                    {include file="common/price.tpl" value=$shipping.rate}
                            {/capture}
                                {if $shipping.inc_tax}
                                    {assign var="rate" value="`$rate` ("}
                                    {if $shipping.taxed_price && $shipping.taxed_price != $shipping.rate}
                                        {capture assign="tax"}{include file="common/price.tpl" value=$shipping.taxed_price class="ty-nowrap"}{/capture}
                                        {assign var="rate" value="`$rate` (`$tax` "}
                                    {/if}
                                    {assign var="inc_tax_lang" value=__('inc_tax')}
                                    {assign var="rate" value="`$rate``$inc_tax_lang`)"}
                                {/if}
                            {else}
                                {assign var="rate" value=__("free_shipping")}
                            {/if}

                            {hook name="checkout:shipping_method"}
                                {if $display == "radio"}
                                    <div class="tsp-control-group">
                                        <input type="radio" class="tsp-checkbox" id="sh_{$group_key}_{$shipping.shipping_id}" name="shipping_ids[{$group_key}]" value="{$shipping.shipping_id}" onclick="fn_calculate_total_shipping_cost();" {$checked} />
                                        <label for="sh_{$group_key}_{$shipping.shipping_id}" >
                                            <span class="tsp-radio-title">{$shipping.shipping} {$delivery_time} - {$rate nofilter}</span>
                                        </label>
                                    </div>

                                {elseif $display == "select"}
                                    <option value="{$shipping.shipping_id}" {$selected}>{$shipping.shipping} {$delivery_time} - {$rate nofilter}</option>

                                {elseif $display == "show"}
                                    <p>
                                        {$strong_begin}{$rate.name} {$delivery_time} - {$rate nofilter}{$strong_begin}
                                    </p>
                                {/if}
                            {/hook}

                        {/foreach}

                        {if $display == "select"}
                            </select>
                            <p>
                        {/if}

                    {else}
                        {if $group.all_free_shipping}
                            <p>{__("free_shipping")}</p>
                        {elseif $group.all_edp_free_shipping || $group.shipping_no_required }
                            <p>{__("no_shipping_required")}</p>
                        {else}
                            <p class="ty-error-text">
                                {if $display == "show"}
                                    <strong>{__("text_no_shipping_methods")}</strong>
                                {else}
                                    {__("text_no_shipping_methods")}
                                {/if}
                            </p>
                        {/if}
                    {/if}

                    {foreachelse}
                    <p>
                        {if !$cart.shipping_required}
                            {__("no_shipping_required")}
                        {elseif $cart.free_shipping}
                            {__("free_shipping")}
                        {/if}
                    </p>
                {/foreach}
                
                {if $smarty.foreach.spg.last && !$group.all_edp_free_shipping && !($group.all_free_shipping || $group.free_shipping)}
                    <div class="container-fluid">
                        <div class="row">
                            <div class="tsp-order-step__content-foot">
                                <div class="col-md-2 col-sm-2 col-xs-2">
                                    <div class="tsp-recycle__foot-total-label">{__("total")}:</div>
                                </div>
                                <div class="col-md-8 col-sm-8 col-xs-8">
                                    <div class="tsp-recycle__foot-total-price">{include file="common/price.tpl" value=$cart.display_shipping_cost class="ty-price"}</div>
                                </div>
                            </div>
                        </div>
                    </div>
                {/if}
                <!--shipping_rates_list-->
            </div>

нужно вынести блок

 {if $smarty.foreach.spg.last && !$group.all_edp_free_shipping && !($group.all_free_shipping || $group.free_shipping)}
                        
{__("total")}:
{include file="common/price.tpl" value=$cart.display_shipping_cost class="ty-price"}
{/if}

за пределы сохранив ajax

То есть имеем а нужно сделать так единственный вариант переписывать JS? или же есть возможность схитрить с помощью smarty?

Непонятно, зачем. Этот кусок кода обновляет стоимость доставки в зависимости от выбранного способа. Если его вынести за пределы обновляемого блока, "застрянет" изначально выбранная стоимость доставки, и обновится только если обновлять всю страницу целиком.

Вторая картинка уж очень мелкая, непонятно, что требуется.

Непонятно, зачем. Этот кусок кода обновляет стоимость доставки в зависимости от выбранного способа. Если его вынести за пределы обновляемого блока, "застрянет" изначально выбранная стоимость доставки, и обновится только если обновлять всю страницу целиком.

Вторая картинка уж очень мелкая, непонятно, что требуется.

Затем что верста подразумевает совершенно другое, можно конечно поиграться со стилями, но зачем тогда дизайнер это рисовал?

Вот нормальный размер

Спасибо за картинку.

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

Или я не совсем понимаю задачу

Спасибо за картинку.

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

Или я не совсем понимаю задачу

Тут как бы штука в чем, есть 2 колонки, внутри 1 лежит текст, так что справа, внутри другой лежат все способы доставки, но результат ( цену ), нужно вывести ниже обоих блоков то то есть её нужно вырезать из левого блока и вставить в нижний блок, что бы она была по все ширине,а не только слева.

Собственно если так сделать то цена ajax не будет обновляться, пробовал расширить блок с id shipping_rates_list

на все 3 блока но получаю ошибочку js.

Собственно ошибочка если расширять зону действия блока с id shipping_rates_list

Uncaught TypeError: data.html[k].indexOf is not a function

А только версткой (изменением классов container-fluid, row и т. д., ну или добавлением в эти дивы новых, своих классов) вопрос не решается?

А только версткой (изменением классов container-fluid, row и т. д., ну или добавлением в эти дивы новых, своих классов) вопрос не решается?

Ну это и есть решение, только вот вчера потратил 2 часа, на переустановку, перенастройку, перезагрузку, чистку кеша и тому подобное, наверное всего что можно, получал ошибку.

Uncaught TypeError: data.html[k].indexOf is not a function

ничего сделать не удалось. Сегодня утром включил комп с локальной версией все работает на ура и не единой ошибки.

Ветер переменился :)

Решение было найдено, а все почему, из-за незнания нюансов продукта.

Решение вот в это теме если кому то интересно.