private function addItem($goods_id, $code, $item_sxe) { $item = ShItems::findOne(['code' => $code]); if (!$item) { $item = new ShItems(); $item->goods_id = $goods_id; $item->code = $code; } $item->state = 1; $item->save(); foreach (ShItemCharacteristics::findAll(['items_id' => $item->id]) as $item_characteristic) { $item_characteristic->state = 0; $item_characteristic->save(); } foreach ($item_sxe->{'ХарактеристикиТовара'}->{'ХарактеристикаТовара'} as $characteristic_sxe) { $characteristic = ShCharacteristics::findOne(['characteristic' => strval($characteristic_sxe->{'Наименование'})]); if (!$characteristic) { $characteristic = new ShCharacteristics(); $characteristic->characteristic = strval($characteristic_sxe->{'Наименование'}); $characteristic->save(); } $item_characteristic = ShItemCharacteristics::findOne(['items_id' => $item->id, 'characteristics_id' => $characteristic->id]); if (!$item_characteristic) { $item_characteristic = new ShItemCharacteristics(); $item_characteristic->items_id = $item->id; $item_characteristic->characteristics_id = $characteristic->id; } $item_characteristic->value = strval($characteristic_sxe->{'Значение'}); $item_characteristic->state = 1; $item_characteristic->save(); } return ['id' => $item->id]; }