Импорт товаров с 1с на сайт Laravel
День добрый всем Стояла задача осуществить импорт товаров с 1С программы для учета на сайт Столкнулся с проблемой не правильной генерации названия на сайте В данный момент на сайте отображается название как Накладка-аккумулятор WK-DESIGN WP-020 iphone 7 (золотистый)
А должно быть так Чехол аккумулятор для iPhone 7 WK-DESIGN WP-020 (золотистый) 2400 mAh
Вот кусок кода из xml файла который появляется при обмене данными между сервером и 1С
<Описание>Накладка-аккумулятор 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</Ид>
<Значение>Золотистый</Значение>
</ЗначенияСвойства>
</ЗначенияСвойств>
Вот метод импорта в файле php
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;
}
Может кто то знает или сталкивался с подобной проблемой буду признателен за любую информацию
Ответы (1 шт):
Вариант простой: попросить программиста из 1С выгружать вместо
<Описание>Накладка-аккумулятор WK-DESIGN WP-020 iphone 7 (золотистый)</Описание>
<ЗначенияСвойства>
<Ид>33432d98-3b06-11e3-9566-00144f9b870d</Ид>
<Значение>Чехол аккумулятор для iPhone 7 WK-DESIGN WP-020 </Значение>
</ЗначенияСвойства>
чтобы на выходе получилось:
<Описание>Чехол аккумулятор для iPhone 7 WK-DESIGN WP-020</Описание>
Вариант 2: если доступа к 1С программистам нет. Брать в обмене название из свойства.
<ЗначенияСвойства>
<Ид>33432d98-3b06-11e3-9566-00144f9b870d</Ид>
<Значение>Чехол аккумулятор для iPhone 7 WK-DESIGN WP-020 </Значение>
</ЗначенияСвойства>
При условии что <Ид>33432d98-3b06-11e3-9566-00144f9b870d</Ид> не изменен во всех товарах.