Как добавить характеристику через API (shop.feature.add) вместе с types (Типом товара)

Посылаю такой массив:

$default = array(

'code' => 'name',

'name' => 'Характеристика',

'type' => 'varchar',

'selectable' => 0,

'multiple' => 0,

'type_id' => 0 ИЛИ 'type_id' array(0=>0) ИЛИ 'type_id' array(0=>1)

);

Но types (к какому типу товара принадлежит) не добавляется.


2 ответа

  • 1
    BNP (Дмитрий) 1 июня 2018 01:03 #

    Не знаю, что там через API, но лично я создаю так:

    $featData = [
         'status' => shopFeatureModel::STATUS_PUBLIC,
         'name' => $featName,
         'multiple' => 0,
         'type' => shopFeatureModel::TYPE_VARCHAR,
         'selectable' => 0,
    ];
    $featureModel = new shopFeatureModel();
    $typeFeatureModel = new shopTypeFeaturesModel();
    if($feat_id = featureModel->save($featData)) {
        try {
            // Вот здесь как раз идет добавление хар-ки к нужному типу ($typeId)
            $typeFeatureModel->updateByFeature($feat_id, [$typeId]);
            $featCode = $featData['code'];
        } catch (waException $e) {
        }
    }
  • 1
    keybee 1 июня 2018 19:40 #

    Если использовать свой скрипт, то понятно, что нужно через 2 model передавать данные.

    В классе shopFeatureModel есть вот такое массив (код внизу), где присутствует 'types' => array(). Если по умолчанию прописать (в $default) 0 =>1 или тот тип, который уже создан, то при сохранении характеристики в админке (в которой не заполнен тип товара) как раз сохранится то, что прописано по умолчанию. А через API почему-то идёт игнор этих данных.

    public function save(&$feature, $id = null)

    {

    $default = array(

    'name' => '',

    'types' => array(),

    'values' => array(),

    'type' => self::TYPE_VARCHAR,

    'selectable' => 0,

    'multiple' => 0,

    'status' => 'public',

    );

Добавить ответ

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