Skip to content

Core: expose shipment summary in ms3_get_order Fenom #608

Description

@Ibochkarev

Описание функции

Подмешать shipments[] (ShipmentPublicDto) в плейсхолдеры сниппета ms3_get_order, как уже сделано в кабинете CustomerOrderService.

Проблема, которую решает

Публичный DTO отгрузки есть в Web API кабинета. Fenom-страница заказа (tpl.msGetOrder) трек не получает. В #605 сниппет не трогали: phpstan baseline для ms3_get_order.php фиксирует Access to property $services on an unknown class modX с count: 5. Лишние $modx->services ломают ignore.count.

Предлагаемое решение

Вынести чтение lifecycle в хелпер, который не увеличивает число $modx->services в сниппете. Либо один уже существующий $modx->services->get('ms3') прокинуть в метод Utils/сниппет-хелпер, который сам резолвит ms3_shipment_lifecycle.

Не поднимать baseline count. Не отдавать meta, provider, external_id.

После правки: composer stan без новых ignore.count, smoke/phpunit на форму плейсхолдера.

Альтернативные варианты

Поднять count в phpstan-baseline.neon с 5 до 7. Stan зелёный, сниппет обрастает обращениями к unknown modX.

Оставить только cabinet API. Классические Fenom-витрины без трека.

Примеры использования

{'ms3_get_order' | snippet : [
    'tpl' => 'tpl.msGetOrder'
]}
{$shipments[0].tracking_number}
{$shipments[0].status}

Пустой массив, если отгрузки нет или сервис не зарегистрирован.

Дополнительный контекст

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions