Проблема с импортом цвета
День добрый, импортирую товары через родной csv.php.
Появилась проблема, когда дошел до импорта цветов — они просто не импортируются.
Обрабатываемая строка csv
modx.pro/help/5834/#comment-42228
Параметров должно быть 2 или больше, решил это таким некрасивым способом:
Обрабатываемая строка csv
Появилась проблема, когда дошел до импорта цветов — они просто не импортируются.
Обрабатываемая строка csv
9207,Canon-034bk drum (9458b001),assets/images/products/cartridges/034Bk Drum.jpg,0,cyan
Ссылка видаcore/components/minishop2/import/csv.php?file=assets/temp/cartridges/csv/prices/c1_p_0.csv&fields=id,alias,gallery,price,color&update=1&key=id&source=7&delimeter=,&debug=1
Результат[2016-01-18 02:56:08] (INFO @ /core/components/minishop2/import/csv.php)
Trying to set time limit = 600 sec: done
[2016-01-18 02:56:08] (INFO @ /core/components/minishop2/import/csv.php)
Raw data for import:
Array
(
[0] => 9207
[1] => Canon-034bk drum (9458b001)
[2] => assets/images/products/cartridges/034Bk Drum.jpg
[3] => 0
[4] => cyan
)
[2016-01-18 02:56:08] (INFO @ /core/components/minishop2/import/csv.php)
Array with importing data:
Array
(
[id] => 9207
[alias] => Canon-034bk drum (9458b001)
[price] => 0
[color] => cyan
[class_key] => msProduct
[context_key] => web
[tvs] =>
)
[2016-01-18 02:56:08] (INFO @ /core/components/minishop2/import/csv.php)
SELECT msProduct.id FROM `modx_site_content` AS `msProduct` JOIN `modx_ms2_products` `Data` ON msProduct.id = Data.id WHERE `Data`.`id` = :0
Array
(
[/:0\b/] => 9207
)
[2016-01-18 02:56:08] (INFO @ /core/components/minishop2/import/csv.php)
SQL query for check for duplicate:
SELECT msProduct.id FROM `modx_site_content` AS `msProduct` JOIN `modx_ms2_products` `Data` ON msProduct.id = Data.id WHERE `Data`.`id` = 9207
[2016-01-18 02:56:08] (INFO @ /core/components/minishop2/import/csv.php)
Key id = 9207 has duplicate.
[2016-01-18 02:56:08] (WARN @ /home/user/domains/domain.ru/public_html/core/model/modx/modresource.class.php : 893)
PHP notice: Undefined index: parent
[2016-01-18 02:56:08] (INFO @ /core/components/minishop2/import/csv.php)
DELETE FROM `modx_register_messages` WHERE ( `modx_register_messages`.`topic` = :0 AND `modx_register_messages`.`id` = :1 )
Array
(
[/:0\b/] => 1
[/:1\b/] => 'd26b10ca0de48de1619fcefc39d00d64'
)
[2016-01-18 02:56:08] (INFO @ /core/components/minishop2/import/csv.php)
Successful update:
Array
(
[id] => 9207
[type] => document
[contentType] => text/html
[alias] => canon-034bk-drum-(9458b001)
[published] => 1
[pub_date] => 0
[unpub_date] => 0
[parent] => 472
[isfolder] =>
[richtext] => 1
[template] => 11
[menuindex] => 192
[searchable] => 1
[cacheable] => 1
[createdby] => 1
[createdon] => 2015-11-02 22:06:33
[editedby] => 1
[editedon] => 2016-01-18 02:56:08
[deleted] =>
[deletedon] => 0
[deletedby] => 0
[publishedon] => 2015-11-02 22:06:33
[publishedby] => 1
[donthit] =>
[privateweb] =>
[privatemgr] =>
[content_dispo] => 0
[hidemenu] =>
[class_key] => msProduct
[context_key] => web
[content_type] => 1
[uri] => url/canon-034bk-drum-(9458b001)
[uri_override] => 0
[hide_children_in_tree] => 0
[show_in_tree] => 0
[preview_url] => http://domain.ru/url/canon-034bk-drum-(9458b001)
)
[2016-01-18 02:56:08] (INFO @ /core/components/minishop2/import/csv.php)
Importing images:
Array
(
[0] => assets/images/products/cartridges/034Bk Drum.jpg
)
[2016-01-18 02:56:08] (WARN @ /home/user/domains/domain.ru/public_html/core/components/minishop2/processors/mgr/gallery/upload.class.php : 119)
PHP notice: Undefined index: CONTENT_TYPE
[2016-01-18 02:56:08] (ERROR @ /core/components/minishop2/import/csv.php)
Error on upload "assets/images/products/cartridges/034Bk Drum.jpg":
Array
(
[0] => Такое изображение уже есть в галерее товара.
)
[2016-01-18 02:56:08] (INFO @ /core/components/minishop2/import/csv.php)
You in debug mode, so we process only 1 row. Time: 0.2029140 s
P.S.: Надо было сначала воспользоваться поиском)modx.pro/help/5834/#comment-42228
Параметров должно быть 2 или больше, решил это таким некрасивым способом:
Обрабатываемая строка csv
9207,Canon-034bk drum (9458b001),assets/images/products/cartridges/034Bk Drum.jpg,0,cyan,undefined
Ссылка видаcore/components/minishop2/import/csv.php?file=assets/temp/cartridges/csv/prices/c1_p_0.csv&fields=id,alias,gallery,price,color,color&update=1&key=id&source=7&delimeter=,&debug=1
Комментарии: 1
Старый баг в скрипте — он рассчитывает, что для импорта свойств-массивов (цвет, теги и размеры) будет 2 или больше значения. Если же значение одно, то просто пропускает.
Вот тут импортируемое значение превращается в массив только если встречается второй раз. Можно попробовать добавить условие с проверкой типа, что-то вроде:
Вот тут импортируемое значение превращается в массив только если встречается второй раз. Можно попробовать добавить условие с проверкой типа, что-то вроде:
if ($v == 'color') {
if (!isset($data[$v])) {
$data[$v] = array();
}
$data[$v][] = $csv[$k];
}
Не проверял, но вроде в этом проблема, насколько я помню.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.