Для того чтобы старая цена учитывала опции товара, требуется изменить логику, которая определяет старую цену в вашем шаблоне. В текущем коде, старую цену ($old_price) вы, скорее всего, получаете без учета опций.
Если в вашем магазине используются опции (например, разные размеры или цвета), выясните, как у вас формируется старая цена. Возможно, она определяется как цена базового продукта, без применения дополнительных наценок или скидок от опций.
Вот возможные шаги для решения проблемы:
1. **Проверьте логику формирования цен**:
Убедитесь, что старая цена ($old_price) формируется аналогично новой цене ($price) и учитывает опции. Возможно, в вашем коде потребуется добавить проверку на наличие выбранных опций и пересчитывать старую цену с их учетом.
2. **Корректировка в шаблоне**:
Если вы можете получить старую цену с учетом опций, измените ваш шаблон следующим образом:
```smarty
{if $price}
<div class="product__block-price mb-4">
<div class="product__price ">{($_modx->resource.parent == 12) ? 'От' : '' } <span class="msoptionsprice-cost msoptionsprice-{$_modx->resource.id}"> {$price}</span> {'ms2_frontend_currency' | lexicon}</div>
{if $old_price}
<div class="product__price old-price "><span class="msoptionsprice-old-cost msoptionsprice-{$_modx->resource.id}">{$old_price}</span> {'ms2_frontend_currency' | lexicon}</div>
{/if}
</div>
{/if}
```
3. **Убедитесь, что старую цену можно получить с учетом опций**:
Если у вас есть функция или метод для получения старой цены с учетом опций (например, `getOldPriceWithOptions($productId)`), используйте её, чтобы получить корректную старую цену:
```smarty
{assign var="old_price" value=getOldPriceWithOptions($product.id)}
```
4. **Измените модель данных**:
Если ваша система хранения данных не позволяет получать старую цену с учетом опций, вам нужно модифицировать логику, которая отвечает за обработку цен, чтобы эта информация появилась.
5. **Тестирование**:
После внесения изменений протестируйте отображение цен на разных товарах с различными опциями, чтобы убедиться, что старая цена теперь корректно отображается.
Если у вас возникают трудности с любым из этих шагов, предоставьте дополнительную информацию о том, как рассчитывается старая цена в контексте вашего проекта, и я постараюсь помочь более конкретно.