jeudi 1 octobre 2020

How to fix incorrect naming when importing goods

Good day to all The task was to import goods from the 1C program for accounting to the site Faced with the problem of incorrect generation of the name on the site At the moment the site displays the name as Cover-battery WK-DESIGN WP-020 iphone 7 (golden)

And it should be so Cover battery for iPhone 7 WK-DESIGN WP-020 (golden) 2400 mAh

Here is a piece of code from the xml file that appears when exchanging data between the server and 1C

<Описание>Накладка-аккумулятор WK-DESIGN WP-020 iphone 7 (золотистый)</Описание> !!!!
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>548370ee-3a90-11e3-9566-00144f9b870d</Ид>
                        <Значение>WK-DESIGN</Значение>                          !!!
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>548370f0-3a90-11e3-9566-00144f9b870d</Ид>
                        <Значение>Аксессуары</Значение>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>548370f2-3a90-11e3-9566-00144f9b870d</Ид>
                        <Значение>WP-020</Значение>                             !!!
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>548370f4-3a90-11e3-9566-00144f9b870d</Ид>
                        <Значение>Чехол</Значение>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>33432d98-3b06-11e3-9566-00144f9b870d</Ид>
                        <Значение>Чехол аккумулятор для iPhone 7 WK-DESIGN WP-020 </Значение>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>c6ed7052-3e67-11e3-9567-00144f9b870d</Ид>
                        <Значение>(золотистый) 2400 mAh</Значение>              !!!
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>18faa0b4-de76-11e6-80ff-d017c2adc088</Ид>
                        <Значение>Да</Значение>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>ba09b430-334a-11e7-8102-d017c2adc088</Ид>
                        <Значение>Золотистый</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>

Here is the import method in php file

protected function product()
    {
        $name = $this->importProduct->Наименование;

        foreach ($this->importProduct->ЗначенияРеквизитов->ЗначениеРеквизита as $item) {
            switch ($item->Наименование){
                case 'Вес':
                    $weight = $item->Значение;
                    break;
                case 'ВесБрутто':
                    $grossWeight = $item->Значение;
                    break;
                case 'Ширина':
                    $width = $item->Значение;
                    break;
                case 'Длина':
                    $length = $item->Значение;
                    break;
                case 'Высота':
                    $height = $item->Значение;
                    break;
                case 'Доп Характеристика':
                    $attr = $item->Значение;
                    break;
                case 'НовыйТовар':
                    $is_new = $item->Значение == 'Нет' ? 0 : 1;
                    break;
                
            }
        }

        if (! $this->importProduct->{'Группы'}) {
            Log::info('empty_groups');
            return false;
        }

        $this->product = Product::updateOrCreate([
            'id_1c' => $this->importProduct->Ид,
        ], [
            'name' => trim($name),
            'category_id'   => $this->getCategoryId(),
            'weight'        => $weight ?? '',
            'grossWeight'   => $grossWeight ?? '',
            'width'         => $width ?? '',
            'length'        => $length ?? '',
            'height'        => $height ?? '',
            'attr'          => $attr ?? '',
            'is_new'        => $is_new ?? '',
        ]);

        if (!$this->product->description) {
            $this->product->update(['description' => $this->importProduct->Описание]);
        }

        return true;
    }


Maybe someone knows or has encountered a similar problem, I will be grateful for any information



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire