Обзор технических изменений ReadyScript 5.1. Данный материал предназначен для разработчиков, создающих собственные темы оформления и модули.
В ReadyScript 5.1 произошли изменения изменеия в работе комплектаций товара. В cписке комплектаций товара $product['offers']['items'] ключами теперь являются id комплектаций. Для получения основной комплектации товара теперь следует использовать метод getMainOffer. 
$product = new \Catalog\Model\Offer\Product(826);
$main_offer = $product->getMainOffer();
echo $main_offer['id'];
Вариант получения основной комплектации по индексу 0 теперь является некорректным и будет удален в последующих обновлениях.
Как быстро обновить тему оформления для соответствия нововведениям? 
Если вы используете кастомную тему оформления или ваша тема оформления отвязана от обновлений - то вам потребуется вручную внести следующие изменения:
Список шаблонов, в которых нужно внести изменения:
- /templates/{ТЕМА}/moduleview/catalog/product.tpl
- /templates/{ТЕМА}/moduleview/catalog/product_offers.tpl
- /templates/{ТЕМА}/moduleview/catalog/product_images.tpl
- /templates/{ТЕМА}/moduleview/shop/show_complekts.tpl
- /templates/{ТЕМА}/moduleview/shop/cartpage_page.tpl
Список изменений:
- конструкцию {$first_offer_params=$product.offers.items.0.propsdata_arr} 
{$first_offer = $product->getMainOffer()} {$first_offer_params = $first_offer.propsdata_arr} 
- конструкции {$product.offers.items.0->getUnit()->stitle} 
{$product.offers.items[0]->getUnit()->stitle} 
{$product->getMainOffer()->getUnit()->stitle} 
- конструкцию {foreach from=$stick_info.stick_ranges item=stick_range}      {$sticks=$product.offers.items.0.sticks[$warehouse.id]}      <span class="stick {if $sticks>=$stick_range}filled{/if}"></span> {/foreach} 
{$first_offer = $product->getMainOffer()} {$sticks = $first_offer.sticks[$warehouse.id]} {foreach $stick_info.stick_ranges as $stick_range}      <span class="stick {if $sticks >= $stick_range}filled{/if}"></span> {/foreach} 
- конструкцию {$offer_images=$product.offers.items[0].photos_arr} 
{$first_offer = $product->getMainOffer()} {$offer_images = $first_offer.photos_arr} 
- конструкцию {$number=$product.offers.items[0].sticks[$warehouse.id]} 
{$first_offer = $product->getMainOffer()} {$number = $first_offer.sticks[$warehouse.id]} 
- конструкцию <input type="hidden" name="offer" value="0"/> 
{$first_offer = $product->getMainOffer()} <input type="hidden" name="offer" value="{$first_offer.id}"/> 
- конструкцию <input value="{count($product.offers.items)}" type="hidden" name="hidden_offers" 
<input value="0" type="hidden" name="hidden_offers" 
В связи с изменениями в работе комплектаций товара, необходимо обновить файл "resource/js/rs.changeoffer.js" или "resource/js/jquery.changeoffer.js". Актуальную версию файла можно взять из темы оформления, на основе которой сделана ваша тема оформления.