web3

web3

С нами с 13 сентября 2017; Место в рейтинге пользователей: #305
web3
14 сентября 2017, 13:40
1
0
Еще спрошу, если можно, как можно получить при срабатывании события mSyncOnProductOffers id товара, к которому это предложение относится?
web3
14 сентября 2017, 12:55
1
0
Вот теперь идеально. Спасибо большое.
web3
14 сентября 2017, 12:43
1
0
Понял, кроме одного момента. Т.е. из коробки характеристики никак не получить?
web3
14 сентября 2017, 06:09
1
0
Залез внутрь компонента, смотрю функцию сохранения товара во временную таблицу вижу что есть работа с характеристиками, уже хорошо. Но характеристики в базу так и не попадают…
/**
     * @param SimpleXMLElement $xml
     * @return array Временные данные товара
     */
    protected function importProduct($xml)
    {
        $prod = array();

        $prod['name'] = $this->stringXml($xml->Наименование);
        $prod['description'] = $this->stringXml($xml->Описание);

        //standart properties
        $prod['article'] = $this->stringXml($xml->Артикул);
        $prod['manufacturer'] = $this->stringXml($xml->Изготовитель);
        $prod['bar_code'] = $this->stringXml($xml->Штрихкод);

        //additional properties
        $prod['properties'] = array();
        if (isset($xml->ЗначенияСвойств)) {
            foreach ($xml->ЗначенияСвойств->ЗначенияСвойства as $xml_property) {
                $this->addComplexProperty($xml_property, $prod['properties']);
            }
        }

        if (isset($xml->СписокСвойствОписания)) {
            foreach ($xml->СписокСвойствОписания->СвойствоОписания as $xml_property) {
                $this->AddProperty($xml_property, $prod['properties']);
            }
        }

        if (isset($xml->ЗначенияРеквизитов)) {
            foreach ($xml->ЗначенияРеквизитов->ЗначениеРеквизита as $xml_property) {
                $this->AddProperty($xml_property, $prod['properties'], array('ВидНоменклатуры', 'ТипНоменклатуры'));
            }
        }

        if (isset($xml->ХарактеристикиТовара)) {
            foreach ($xml->ХарактеристикиТовара->ХарактеристикаТовара as $xml_property) {
                $this->AddProperty($xml_property, $prod['properties']);
            }
        }


        $prod['properties'] = $this->jsonXml($prod['properties']);
        $prod['images'] = $this->jsonXml($xml->Картинка);
        $prod['features'] = $this->jsonXml($xml->ХарактеристикиТовара);

        $prod['uuid'] = $this->stringXml($xml->Ид);
        $prod['parent_uuid'] = $this->stringXml($xml->Группы->Ид);
        $prod['status'] = $this->stringXml($xml->Статус);
        if (empty($prod['status']) && isset($xml->attributes()->Статус)) {
            $prod['status'] = $this->stringXml($xml->attributes()->Статус);
        }

        return $prod;
    }
web3
14 сентября 2017, 05:27
1
0
Окей, есть проблема даже в этом. Есть фаил offers.xml, в котором как раз таки и лежат торговые предложения, а у каждого торгового предложения есть некие характеристики(цвет, размер) которые по идее тоже должны куда-то попадать. Без проблем можно было бы написать простенький обработчик если бы при событии обработки офера в данные не вываливало весь полученный хмл. Пробовал выводить данные проходящие при событии в переменной через лог, так мне фаил раздувало на 200 метров. Файлы импорта весят не более 1,5кб.
P.S. Использовал это событие — mSyncOnProductOffers, выводил $xml. Вместо этого он вывел кучу системной инфы, начиная от ленговых переменных, заканчивая информацией о компонентах и их данные…
Ну да ладно, как хоть получить характеристики из офера? Разные цены из офера у меня подтянулись, а как быть с характеристиками не знаю.
web3
14 сентября 2017, 05:03
1
0
Проблема в том, что использую тестовый хостинг, дабы понять возможно ли выполнить требуемые задачи данным компонентом. В описании сказано что,
Возможности:
— Импорт товаров со свойствами и картинками, торговых предложений из 1С и других сервисов.
Но при этом никакой подробной инструкции и чего либо еще вразумительного. А какой смысл покупать компонент, если он мне может не подойти?
web3
13 сентября 2017, 13:17
1
0
Да, прошу прощения, это наверное даже было взято из документации mSclad, который канул в лету… У этого компонента просто сказано что он импортирует торговые предложения, но как и куда ни слова…
web3
13 сентября 2017, 12:39
1
0
Чую нарвусь на неприятности, но есть один инструмент, называется руки. А по факту, только спецефичный плагин передирающий каталог и по необходимым признакам добавлял товар.