Документация. Плагин доставки.

Павел Трофимов

Приветствую!

В документации в массиве возвращаемом методом calculate есть элемент description, который на странице выбора способа доставки нигде не выводится. В то же время, есть неописанный элемент comment, который выводится под стоимостью способа доставки. Собственно вопрос: ошибка в документации или description все же несет какую-то смысловую нагрузку?

Спасибо.

27 февраля 2016
  • Syrnik.com 27 февраля 2016 14:17

    В документации

    В всех шаблонах точно обрабатывается такая структура

    array(
        'id_метода' => array(
            'name' => 'Наименование метода', // "Авиа" или "Назменая" и т.п. то, что в скобках после названия будет
            'comment' => 'Комментарий', // Какой-то комментарий к этму методу. Адрес ПВЗ, часы работы и прочее.
            'currency' => 'RUB', // Сам понимаешь
            'rate' => 100500, // Стоимость в currency
            'est_delivery' => 'В четверг, после дождя' // произвольная строка с примерным сроком доставки
        )
    )

    Есть тонкости:

    id_метода не должно быть нулем.

    Если в ошибочной ситации вернуть из метода не пустую строку и не false, а структуру с 'rate'=>null, на этапе оформления контрол с методом не будет заблокирован и у пользователя будет возможность изменить или заполнить поля адреса. Часто на этапе контактной информации владельцы магазинов адрес либо вовсе не спрашивают, либо делают необязательным. Если плагин из-за неполностью указанного адреса будет просто ошибку в виде строки возаращать, ошибка покажтеся, но для внесения исправлений в адрес придется возвращаться на предыдущий шаг. Но если вернуть структуру и null в качстве rate — будет возможность активировать этот пункт и изменить адрес рядом с методом доставки.


  • Павел Трофимов 28 февраля 2016 06:00

    Спасибо, тонкость полезная.

    Но есть небольшая странность, навскидку... Передавая поля с пом. requestedAddressFields() некоторые из них можно пометить как "необходимое для расчета стоимости доставки". При этом перерасчет ведется при изменении любого поля, вне зависимости от наличия у поля ключа 'cost' и его значения. Смахивает на ошибку.

  • Syrnik.com 28 февраля 2016 06:25

    cost влияет на показ полей у метода доставки (при соответствующей настройке а бэке)

    при этом если все поля заполнены на этапе контактной информации, то у метода доставки они уже не будут показаны

    если на этапе контактной не заполнены, то можно показать либо все, которые для расчета нужны, либо вообще все (настройка в бэке)

    их еще можно в requestAddressFields пометить как required, Тогда будут спрашиваться в обязательном порядке, независимо от настроек и заполненности. И с отметкой "обязателный" независимо от настроек поля.

  • Syrnik.com 28 февраля 2016 06:31

    Предвосхищая еще один вопрос: customAddressFields сделать можно, но это довольно бессмысленная штука — при создании или редактировании заказа в бэке они не будут показаны, что снижает их ценность до нуля практически. Если плагины, которые пытаются их использовать, но как их авторы объясняют эту ситуацию владельцам магазинов я не знаю :)

  • Павел Трофимов 28 февраля 2016 06:38
    cost влияет на показ полей у метода доставки (при соответствующей настройке а бэке)

    А... Точно... Про это подзабыл. Ну тогда все вроде складывается. Хотя, перерасчет только при изменении cost-полей был бы логичным.

    Сергей, спасибо.

  • Syrnik.com 28 февраля 2016 07:11

    Хотя насчет 'required' я ошибся. Если все поля нужные на этапе контактной информации (или еще как) заполнены, то поля адреса у метода доставки не показываются.

    Если очень нужно их все-таки показать — у меня есть 'dirty hack' на эту тему. :) — надо в requestedAddressFields затребовать заведомо неизвестное поле :) Ща попробовал, кажется работает

  • Павел Трофимов 28 февраля 2016 07:19

    Ну да, работает. Вот только в error.log при этом гадит :) Но на заметку взять можно, вдруг пригодится :)



Чтобы добавить комментарий, зарегистрируйтесь или войдите