Экспорт TV полей из Localizator через msImportExport

Всем привет!

Встала задача экспорта товаров из локализаций товаров Localzatora через msImportExport.
На сайте характеристики товаров реализованы через TV поля (не нужно кидаться помидорами =), в тот момент еще не было поддержки опций Minishop2 в Localzator).

Для решения данного кейса обратился в ТП к создателю пакета msImportExport @Prihod — обсудили детали, цену и вот, что получилось.


Необходимые поля для экспорта из локализаций были:
  • tv.oblasti_primeneniya id=36
  • tv.sphery_primeneniya id=37

  • tv.dlitelnost_garantii id=39
  • Название
  • tv.korotkoe_opisanie id=45
  • tv.opisanie id=46
  • tv.tip_razmescheniya id=47
  • tv.printsip_dejstviya id=48
  • tv.tip_rotora id=49
  • tv.avtomatika id=51
  • tv.tip_prisoedineniya_patrubkov id=53
  • tv.tip_perekachivaemoj_zhydkosti id=57

Для начала создаем настройку полей для Экспорта, настраиваем соответствие полей для экспорта. Далее переходим к настройке


далее:


для настройки нам нужны следующие поля:


В указанные поля вставляем код вида:
В поле leftJoin
{
    "Localizator": {
        "class": "localizatorContent",
        "on": "Localizator.resource_id = msProduct.id and Localizator.key = 'ua'"
    },
    "OblastiPrimeneniya": {
        "class": "locTemplateVarResource",
        "on": "OblastiPrimeneniya.tmplvarid = 36 and OblastiPrimeneniya.key = Localizator.key and OblastiPrimeneniya.contentid = msProduct.id"
    },
    "SpheryPrimeneniya": {
        "class": "locTemplateVarResource",
        "on": "SpheryPrimeneniya.tmplvarid = 37 and SpheryPrimeneniya.key = Localizator.key and SpheryPrimeneniya.contentid = msProduct.id"
    },
    "DlitelnostGarantii": {
        "class": "locTemplateVarResource",
        "on": "DlitelnostGarantii.tmplvarid = 39 and DlitelnostGarantii.key = Localizator.key and DlitelnostGarantii.contentid = msProduct.id"
    },
    "KorotkoeOpisanie": {
        "class": "locTemplateVarResource",
        "on": "KorotkoeOpisanie.tmplvarid = 45 and KorotkoeOpisanie.key = Localizator.key and KorotkoeOpisanie.contentid = msProduct.id"
    },
    "Opisanie": {
        "class": "locTemplateVarResource",
        "on": "Opisanie.tmplvarid = 46 and Opisanie.key = Localizator.key and Opisanie.contentid = msProduct.id"
    },
    "TipRazmescheniya": {
        "class": "locTemplateVarResource",
        "on": "TipRazmescheniya.tmplvarid = 47 and TipRazmescheniya.key = Localizator.key and TipRazmescheniya.contentid = msProduct.id"
    },
    "PrintsipDejstviya": {
        "class": "locTemplateVarResource",
        "on": "PrintsipDejstviya.tmplvarid = 48 and PrintsipDejstviya.key = Localizator.key and PrintsipDejstviya.contentid = msProduct.id"
    },
    "TipRotora": {
        "class": "locTemplateVarResource",
        "on": "TipRotora.tmplvarid = 49 and TipRotora.key = Localizator.key and TipRotora.contentid = msProduct.id"
    },
    "Avtomatika": {
        "class": "locTemplateVarResource",
        "on": "Avtomatika.tmplvarid = 51 and Avtomatika.key = Localizator.key and Avtomatika.contentid = msProduct.id"
    },
    "TipPrisoedineniyaPatrubkov": {
        "class": "locTemplateVarResource",
        "on": "TipPrisoedineniyaPatrubkov.tmplvarid = 53 and TipPrisoedineniyaPatrubkov.key = Localizator.key and TipPrisoedineniyaPatrubkov.contentid = msProduct.id"
    },
    "TipPerekachivaemojZhydkosti": {
        "class": "locTemplateVarResource",
        "on": "TipPerekachivaemojZhydkosti.tmplvarid = 57 and TipPerekachivaemojZhydkosti.key = Localizator.key and TipPerekachivaemojZhydkosti.contentid = msProduct.id"
    }
}
Подключения таблицы, где хранится заголовки, анотация, описания, контент и так далее из вкладки Локализация:
"Localizator": {
        "class": "localizatorContent",
        "on": "Localizator.resource_id = msProduct.id and Localizator.key = 'ua'"
    },
Для указания необходимой локализации указываем ключ

Localizator.key = 'ua'
Для TV используем:
"OblastiPrimeneniya": {
        "class": "locTemplateVarResource",
        "on": "OblastiPrimeneniya.tmplvarid = 36 and OblastiPrimeneniya.key = Localizator.key and OblastiPrimeneniya.contentid = msProduct.id"
    },
где:
— 36 — ID TV
— OblastiPrimeneniya — условное название, для обращения (само поле в админке называется так: oblasti_primeneniya)

В поле Select
{
"Localizator":"Localizator.pagetitle as localizator_pagetitle",
"OblastiPrimeneniya":"OblastiPrimeneniya.value as localizator_oblasti_primeneniya",
"SpheryPrimeneniya":"SpheryPrimeneniya.value as localizator_sphery_primeneniya",
"DlitelnostGarantii":"DlitelnostGarantii.value as localizator_dlitelnost_garantii",
"KorotkoeOpisanie":"KorotkoeOpisanie.value as localizator_korotkoe_opisanie",
"Opisanie":"Opisanie.value as localizator_opisanie",
"TipRazmescheniya":"TipRazmescheniya.value as localizator_tip_razmescheniya",
"PrintsipDejstviya":"PrintsipDejstviya.value as localizator_printsip_dejstviya",
"TipRotora":"TipRotora.value as localizator_tip_rotora",
"Avtomatika":"Avtomatika.value as localizator_avtomatika",
"TipPrisoedineniyaPatrubkov":"TipPrisoedineniyaPatrubkov.value as localizator_tip_prisoedineniya_patrubkov",
"TipPerekachivaemojZhydkosti":"TipPerekachivaemojZhydkosti.value as localizator_tip_perekachivaemoj_zhydkosti"
}
где:
— 36 — ID TV
— OblastiPrimeneniya — условное название, для обращения
— localizator_oblasti_primeneniya — название колонки в Экспортируемом файле

Получившийся результат:


Надеюсь данный мануал пригодится =).

@Prihod Спасибо!
Иван Бочкарев
16 марта 2020, 22:22
modx.pro
4
185
+12
Поблагодарить автора Отправить деньги

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0