Поиск по артикулу модификации [Решено]

Добрый день:)
При добавлении артикулов к модификациям в msOptionsPrice2, поиска по ним в админке в таблице minishop2, да и через msearch2 на сайте не происходит, можно ли как-то это настроить?
Ann
Ann
04 сентября 2019, 09:08
modx.pro
121
0

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

Ann
Ann
08 сентября 2019, 05:04
1
+1
Было решено написанием плагина, сохраняющим артикулы модификаций в аннотацию при сохранении товара.
$eventName = $modx->event->name;
switch($eventName) {
    case 'OnDocFormSave':

        $modpar = array(
          'rid' => $id
        );

        $mod = $modx->getCollection('msopModification', $modpar);
    
        $datamod = array();

        if ($mod){
          foreach ($mod as $v){
            $qi = ['mid' => $v->get('id')];
            $opt = $modx->getObject('msopModificationOption', $qi);
            $val = '';
            if ($opt){
              $val .= $v->get('article');
            }
            $datamod[] = $val;
            $intro = implode(",", $datamod);
          };
            $res = $modx->getObject('modResource', $id);
            $res->set('introtext', $intro);
            $res->save();  
        }
        break;
}
Для обновления существующих товаров:
if(!$docs = $modx->getCollection('modResource', array(
    'template' => 7
))){return;}
foreach($docs as $doc){
    $q = $doc->get('id');
    $modpar = array(
      'rid' => $q
    );

    $mod = $modx->getCollection('msopModification', $modpar);

    $datamod = array();

    if ($mod){
      foreach ($mod as $v){
        $qi = ['mid' => $v->get('id')];
        $opt = $this->modx->getObject('msopModificationOption', $qi);
        $val = '';
        if ($opt){
          $val .= $v->get('article');
        }

        $datamod[] = $val;
        $intro = implode(",", $datamod);
      };

        $doc->set('introtext',$intro);
        $doc->save();
    }
}
    srs
    srs
    08 сентября 2019, 09:33
    0
    Еще как вариант, можно писать их а алиас.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      2