Создание своих типов доставки — различия между версиями
Mad grant (обсуждение | вклад) |
Alelekov (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
+ | '''Актуально для версии 20''' | ||
− | + | В этой статье мы рассмотрим создание своего типа доставки. | |
− | + | Для создания нового типа доставки нужно проделать ряд несложных действий: | |
− | < | + | '''1.'''<ul> |
− | < | + | <li>В модуле “Шаблоны данных” создаём новый тип данных, дочерний к типу “Тип доставки”.</li> |
− | + | <li>В поле “Системный идентификатор” вписываем идентификатор нашей доставки, в нашем примере это будет new</li> | |
− | + | <li>В поле “Назначение” выбираем “Тип доставки”</li> | |
+ | <li>Запоминаем идентификатор созданного типа данных (можно посмотреть в адресной строке браузера - последнее числовое значение в строке)</li> | ||
+ | <li>Сохраняем</li> | ||
+ | </ul> | ||
+ | '''2''' | ||
+ | <ul> | ||
+ | <li>Открываем справочник “Типы данных”, нажимаем на “Добавить наименование справочника”. | ||
+ | <li>Вводим название, идентификатор, в нашем случае идентификатор будет deliveryNew | ||
+ | <li>В поле “Тип данных(id) вводим запомненный нами в пункте 1 идентификатор типа данных | ||
+ | <li>Сохраняем | ||
+ | </ul> | ||
+ | '''3''' | ||
+ | <ul> | ||
+ | <li>Открываем справочник “Способ доставки”, нажимаем на “Добавить наименование справочника”. | ||
+ | <li>Вводим название нашей доставки, у нас это будет “Новая доставка” | ||
+ | <li>В поле “Тип доставки” выбираем созданный нами новый тип доставки | ||
+ | <li>Настраиваем другие поля необходимым нам образом | ||
+ | <li>Сохраняем | ||
+ | </ul> | ||
− | + | Теперь необходимо написать реализацию функционала доставки.<br/> | |
+ | Создаём файл с именем, которое должно быть равно идентификатору типа доставки, который мы выбрали в пункте 1. Т.е. у нас это будет файл new.php | ||
+ | Копируем код из стандартного файла доставки delivery.php, который находится в папке ~/classes/components/emarket/classes/delivery/ | ||
+ | Название класса новой доставки должно быть названием файла с кодом + Delivery. Т.е. в нашем случае это будет newDelivery | ||
− | + | На этом создание нового типа доставки окончено. Далее нам необходимо описать нужную нам реализацию функционала этого типа доставки на основе кода, который мы скопировали из стандартного файла доставки. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Также мы можем расширить созданный ранее тип доставки, отредактировав тип данных. Например, через модуль Шаблоны Данных добавим новое поле "Стоимость" с идентификатором "price" в наш тип доставки. Теперь изменим метод getDeliveryPrice, чтобы он использовал созданное поле price: | Также мы можем расширить созданный ранее тип доставки, отредактировав тип данных. Например, через модуль Шаблоны Данных добавим новое поле "Стоимость" с идентификатором "price" в наш тип доставки. Теперь изменим метод getDeliveryPrice, чтобы он использовал созданное поле price: | ||
Строка 77: | Строка 42: | ||
} | } | ||
</source> | </source> | ||
− | |||
Таким образом, при создании способа доставки можно будет указать значения для полей, которые были созданы. | Таким образом, при создании способа доставки можно будет указать значения для полей, которые были созданы. | ||
На основе данной статьи можно также создавать и модифицировать типы оплаты, модификаторы и правила скидок, валюты и другой функционал модуля Интернет-Магазин. | На основе данной статьи можно также создавать и модифицировать типы оплаты, модификаторы и правила скидок, валюты и другой функционал модуля Интернет-Магазин. | ||
− | |||
− |
Версия 14:21, 10 апреля 2019
Актуально для версии 20
В этой статье мы рассмотрим создание своего типа доставки.
Для создания нового типа доставки нужно проделать ряд несложных действий:
1.
- В модуле “Шаблоны данных” создаём новый тип данных, дочерний к типу “Тип доставки”.
- В поле “Системный идентификатор” вписываем идентификатор нашей доставки, в нашем примере это будет new
- В поле “Назначение” выбираем “Тип доставки”
- Запоминаем идентификатор созданного типа данных (можно посмотреть в адресной строке браузера - последнее числовое значение в строке)
- Сохраняем
2
- Открываем справочник “Типы данных”, нажимаем на “Добавить наименование справочника”.
- Вводим название, идентификатор, в нашем случае идентификатор будет deliveryNew
- В поле “Тип данных(id) вводим запомненный нами в пункте 1 идентификатор типа данных
- Сохраняем
3
- Открываем справочник “Способ доставки”, нажимаем на “Добавить наименование справочника”.
- Вводим название нашей доставки, у нас это будет “Новая доставка”
- В поле “Тип доставки” выбираем созданный нами новый тип доставки
- Настраиваем другие поля необходимым нам образом
- Сохраняем
Теперь необходимо написать реализацию функционала доставки.
Создаём файл с именем, которое должно быть равно идентификатору типа доставки, который мы выбрали в пункте 1. Т.е. у нас это будет файл new.php
Копируем код из стандартного файла доставки delivery.php, который находится в папке ~/classes/components/emarket/classes/delivery/
Название класса новой доставки должно быть названием файла с кодом + Delivery. Т.е. в нашем случае это будет newDelivery
На этом создание нового типа доставки окончено. Далее нам необходимо описать нужную нам реализацию функционала этого типа доставки на основе кода, который мы скопировали из стандартного файла доставки.
Также мы можем расширить созданный ранее тип доставки, отредактировав тип данных. Например, через модуль Шаблоны Данных добавим новое поле "Стоимость" с идентификатором "price" в наш тип доставки. Теперь изменим метод getDeliveryPrice, чтобы он использовал созданное поле price:
public function getDeliveryPrice(order $order) {
return $this->object->getValue('price');
}
Таким образом, при создании способа доставки можно будет указать значения для полей, которые были созданы.
На основе данной статьи можно также создавать и модифицировать типы оплаты, модификаторы и правила скидок, валюты и другой функционал модуля Интернет-Магазин.