Как проверить опцию товара на наличие лексикона?

Для проверки опции товара на наличие лексикона в MODX вы можете использовать такой код:

$productId = 1; // ID товара
$optionKey = 'your_option_key'; // Ключ опции

// Получаем объект товара по его ID
$product = $modx->getObject('msProduct', $productId);

// Проверяем, существует ли опция с указанным ключом
if ($product->getOption($optionKey)) {
    // Опция существует

    // Получаем объект опции
    $option = $product->getOption($optionKey);

    // Проверяем, есть ли лексикон для этой опции
    if ($option->get('lexicon')) {
        // Лексикон для опции существует

        // Делаем необходимые действия, связанные с лексиконом
        // например, получаем переводы из лексикона
        $translations = $modx->lexicon->load($option->get('lexicon'));

        // Выводим переводы из лексикона
        echo $translations['your_translation_key'];
    } else {
        // Лексикон для опции не существует
        echo 'Лексикон для опции не найден';
    }
} else {
    // Опция не существует
    echo 'Опция товара не найдена';
}

В этом коде мы сначала получаем объект товара по его ID. Затем, используя метод $product->getOption($optionKey), проверяем существование опции с указанным ключом. Если опция существует, мы получаем объект опции Option и проверяем существование лексикона для этой опции с помощью $option->get('lexicon'). Если лексикон существует, мы выполняем необходимые действия, связанные с лексиконом, например, загружаем переводы из лексикона с помощью $modx->lexicon->load($option->get('lexicon')) и выводим их. Если лексикон не существует, мы выводим сообщение об ошибке.

Обратите внимание, что в приведенном коде предполагается, что MODX уже инициализирован и установлены необходимые параметры среды. Если этого не произошло, вам следует добавить код инициализации перед использованием приведенного кода.