Тема: Модификация модуля "Экспорт"

Подскажите, как лучше сделать:

Мне необходимо в стандартный экспорт "Яндекс.Маркет", добавить определённые поля, чтобы получался файл с несколькими ценами.

Сделал нужные изменения в файле
commonoffertype.inc.php

modules/export/model/exporttype/yandex/offertype/commonoffertype.inc.php

Предполагаю, что при обновлении модуля, все мои изменения сотрутся.

Как можно сделать переопределение этого файла, чтобы при обновлении ничего не пропало.

Может быть можно как то сделать ещё один тип выгрузки, например "МойЯндекс.Маркет", чтобы при обновлении он не затирался.

Повысить оценку Понизить оценку

2

Re: Модификация модуля "Экспорт"

Сам разобрался.

Всё было просто:

Создаём файл

commonoffertype.my.inc.php

в папке рядом с

commonoffertype.inc.php

Повысить оценку Понизить оценку

Re: Модификация модуля "Экспорт"

Ну можно так, но это с потерей поддержки тогда будет. Лучше сделать отдельным модулем и относледовать класс в Вашем модуле. Так будет лучше всего.

4

Re: Модификация модуля "Экспорт"

Закусило Александр пишет:

Ну можно так, но это с потерей поддержки тогда будет. Лучше сделать отдельным модулем и относледовать класс в Вашем модуле. Так будет лучше всего.

К сожалению, пока это не умею делать.


Что значит с потерей поддержки? Обновления не будет?

Повысить оценку Понизить оценку

Re: Модификация модуля "Экспорт"

Оно будет, может наступить момент когда, после обновления экспорт отвалится, т.к. в Ваше старом классе который менять не будет, будет что-то отсутствовать. Поэтому лучше сделать отдельны модулем и отнаследоваться от родительского класса. Смысл в том, что в каждом модуле есть в файле handlers.inc.php файл, где через bind вызываеся метод который добавляет свои способы экспорта.
Вот Вам надо создать свой модуль, который также через handler добавит Ваш класс экспорта (этот класс лучше переделать из уже имеющегося).
У нас есть в документации видео уроки по созданию модулей. Можно взять их за основу. Это дольше, но надежнее. А если, то-то не будет получаться напишите, подскажем.

6

Re: Модификация модуля "Экспорт"

Единственно верный (стабильный) способ расширения функциональности - это создание внешнего модуля, подвешивание в нем на событие.

В вашем случае есть событие: export.gettypes , через него вы можете зарегистрировать свой класс экспорта товаров, реализовать его как угодно.

Также есть другие события, которые позволят модифицировать и существующие экспорты:

'export.' . $export_type_name . '.getespecialtags.' . $offer_type_name,
где $export_type_name - это например: yandex
где $offer_type_name - это например: simple

Повысить оценку Понизить оценку

Re: Модификация модуля "Экспорт"

Поэтому мне нравится RS) Практически всегда знаю, что доработку можно сделать