Всего 122 798 комментариев

Wassi Wassinen
05 декабря 2013, 13:48
0
Понял, спасибо.
Василий Наумкин
05 декабря 2013, 13:41
0
Весело.

Создавай тему в техподдержке магазина, пиши доступы и будем разбираться.
Wassi Wassinen
05 декабря 2013, 13:40
0
[error] 14701#0: *27561804 FastCGI sent in stderr: «PHP message: PHP Fatal error: Call to a member function get() on a non-object in /var/www/сайт.ru/www/core/model/modx/modlexicon.class.php on line 161» while reading response header from upstream, client: 0.0.0.0, server: dveri.сайт.ru, request: «POST /assets/components/msearch2/action.php HTTP/1.1», upstream: «fastcgi://unix:/var/run/php5-сайт_www.sock:», host: «dveri.сайт.ru», referrer: «dveri.сайт.ru/spb/test-interdoors/?limit=10»
Василий Наумкин
05 декабря 2013, 13:28
0
Может стоит в лог сервера посмотреть, раз 500 Internal Server Error?
Wassi Wassinen
05 декабря 2013, 13:27
0
Запрос выполняется на субдомене. Может быть есть какие-либо проблемы с фильтрацией на поддоменах?
Владимир Колесник
05 декабря 2013, 12:49
0
ну что, никто не знает?
Александр Наумов
05 декабря 2013, 02:12
0
Еще раз спасибо!!!
Теперь есть направлении, а то я еще плаваю в MODXе.
Василий Наумкин
05 декабря 2013, 02:06
0
Обычный плагин MODX на событие OnDocFormSave.

Получить ТВ через api и пересохранить в нужном формате.
Clean
05 декабря 2013, 01:58
0
1 — это самое верное решение, я того же мнения.

2,3 — пробовал сразу выставить подобное. не помогло…

По поводу ошибки — я ТС попросил протестить на нормальном сервере (Modx-test.com, или свой сделанный по твоей статье), у меня то все на локале работает.
Странная штука конечно…
Александр Наумов
05 декабря 2013, 01:48
0
Василий, спасибо!
Скажи, а в моем случае этот плагин находится в Tickets или в самом MODX?
Василий Наумкин
05 декабря 2013, 01:45
0
1й вариант — переписать на использование процессора создания ресурса. Это самый правильный вариант, хоть и не самый быстрый.

2й вариант — поколдовать с fromArray, например вот так:
$product->fromArray($productArray, '', true, true);
$product->save();
Будет выставление первичного ключа и не будет конвертации значений,

3й вариант, уже от балды:
foreach ($productArray as $k => $v) {
	$product->set($k, $v);
}
$product->save();
Аналогичен предыдущему.

Если не поможет — то нужно смотреть исходный код скрипта.
Похоже, что из-за какой то ошибки к свежесозданному объекту msProduct не привязывается объект msProductData и просто некуда сохранять дополнительные значения, такие как цена, вес и пр.
Василий Наумкин
05 декабря 2013, 00:49
0
Плагин на сохранение ресурса?
Clean
04 декабря 2013, 21:48
0
Взялся помочь опишу суть.
Скрипт импорта с простейшей логикой — берет специально подготовленный текстовый файлик, в котором содержится информация, с разделителем | и парсит его построчно забивая массив параметров.
Каждая позиция -определенное поле в MS2.
Вот пример набора данных:
111|S013278|Диск LS 109|5.5|13|4|98|35|58.6|GMF (Насыщенный темно серый. с полированной лицевой поверхностью)|1770|1|img/disc/ls/ls 109-gmf.jpg|Литой диск|2|img/ls_wheels1.png
ну и соответственно это породит такой вот массив:
Array ( [published] => 1 [class_key] => msProduct [template] => 4 [show_in_tree] => 0 [source] => 2 [alias] => 111 [article] => S013278 [pagetitle] => Диск LS 109 [wl] => 5.5 [rad] => 13 [co] => 4 [pcd] => 98 [vl] => 35 [dl] => 58.6 [color] => GMF (Насыщенный темно серый. с полированной лицевой поверхностью) [price] => 1770 [bal] => 1 [image] => img/disc/ls/ls 109-gmf.jpg [dmat] => Литой диск [parent] => 2 [made] => img/ls_wheels1.png )
Далее идет соотношение MS2 к полям массива, в итоге получаем массив $productArray.
Далее делается простая логика- что если товара с артикулом $productArray['article'] нету, то мы заводим новый, стандартным методом xPDO
if (!$ResourceMC = $modx->getObject('msProductData', array('article' => $artArr))) {
        $product = $modx->newObject('msProduct');
ну и после этого, если все создалось мы просто берем и заполняем соответствующие поля и сохраняем ресурсы.
$product->fromArray($productArray);
        $product->save();
Да, там еще есть логика загрузки картинки, используя стандартный процессор MS2 ну и еще по мелочи, но суть предельна ясна.

Так вот, эта линейная логика на сервере у ТС работает, но через 1 строку-т.е первая строка обрабатывается, вторая нет, но сам getObject и save обрабатывается, а заполнение данными — нет. т.е затык на
$product->fromArray($productArray);
При этом массив заполняется корректно, т.к я делаю ему print_r и смотрю что получилось, да и в журнал ничего не падает.

На локальном сервере у меня все отрабатывает как надо, товары создаются параметры тоже… На Modx-test.com не проверял, но думаю будет все тоже ОК.
Поэтому, предполагаю что проблема с сервером.
А самим снипетом ТС может поделиться с общественность, если захочет… Могу предположить, что он может быть кому-то полезен.
Вот как-то так…
Андрей
04 декабря 2013, 20:56
0
вот я дурак, спасибо большое)
Василий Наумкин
04 декабря 2013, 19:35
0
Ну кликни на синенькое имя покупателя, может что-то прояснится?
Clean
04 декабря 2013, 17:02
0
admclean \@/ yandex.ru
Пашкович Дмитрий
04 декабря 2013, 16:57
0
Clean, скажите пожалуйста, как с вами можно связаться лично? Мне это необходимо, заранее спасибо.
Владимир Ребров
04 декабря 2013, 15:10
0
В логах сервера:
[error] mod_fcgid: process /var/www/u7547931/php-bin/php(12535) exit(communication error), get unexpected signal 11
Алексей П
04 декабря 2013, 14:21
0
Спасибо! Заработало.