Добрый день. Сейчас в списке экспортируемых полей по умолчанию у меня
Product code — Арт. и Language — Язык. Как сделать, чтобы по умолчанию экспорт шел по
external id — Код товара?
В этом случае я не смогу изменить артикулы, ведь выгрузка привязвается именно к ним. Мне нужно, чтобы вместо Product code — Арт. по умолчанию был external id — Код товара
По моему раньше, если в настройках модуля Commerce ML изменить Значение для связывания товаров, то менялись и поля экспорта по умолчанию. Сейчас пробовал - не меняются
Не припомним, чтобы раньше такое было. Всегда связка в экспорте/импорте была по Артикулу
в готовом файле удаляете артикул и настраиваете импорт по айди или не выставляете при импорте поле по артикулу а по айди
Пишет ОшибкаИмпортируемый файл должен содержать поля: Product code
Ну вот понадобилось мне пакетно изменить артикулы. Как это делать?
Есть минимум 2 способа
- Где-то на маркете был модуль работы с проставлением артикулов.
- Создать контроллер и в нем скрипт.
p\s данный пример заполняет пустые артикулы
начиная с 00001, 00002 …
if ($mode == 'code_add') {
$products = db_get_array("SELECT product_id, product_code FROM ?:products");
$products_codes = db_get_fields("SELECT product_code FROM ?:products");
$empty_codes = $empty_codes_no = array();
foreach($products as $p){
if(empty(trim($p['product_code']))){
$empty_codes[$p['product_id']] = $p['product_code'];
}else{
$empty_codes_no[$p['product_id']] = $p['product_code'];
}
}
foreach($empty_codes as $p_id => $code){
$cd = str_pad($p_id, 5, '0', STR_PAD_LEFT);
db_query("UPDATE ?:products SET product_code = ?s WHERE product_id = ?i", $cd, $p_id);
fn_echo($cd);
fn_echo('<br/>');
}
fn_echo('OK');
exit;
}
Основываясь на этом, артикулы можно заменить на что угодно и потом работать с ними через экспорт/импорт.
Сделайте полный бэкап магазина и в файле app/schemas/exim/products.php попробуйте заменить
'Product code' => array(
'db_field' => 'product_code',
'alt_key' => true,
'required' => true,
'alt_field' => 'product_id'
),
на
'External ID' => array(
'db_field' => 'external_id',
'alt_key' => true,
'required' => true,
'alt_field' => 'product_id'
),
'Product code' => array(
'db_field' => 'product_code',
),
(!) не тестировано. есть шанс, что не заработает
А так если артикул пакетно, то просто прописываете модификатор при импорте и заменяете все.
Я вообще давно прошу, сделать внешний и внутренний артикул чтобы можно было импортить или по одному или по другому и это решило бы много вопросов, но разработчики пока морозятся, видимо сложный вопрос и сделают платный модуль после чекаута )
И я о том же. Была бы настройка, чтобы поменять связывание товара при экспорте/импорте с артикула на Product ID допустим, проблемы бы не было.
Новый импорт пока только начинаю осваивать, буду тестить
А что вообще представляют собой эти значения? Product code это артикул, его присваиваешь сам, external id выгружается из 1С. А Product id это что такое? просто порядковый номер, который генерит сам CS Cart?
В документации пишут
Идентификация (соответствие) данных между системой учета и CS-Cart производится:
С помощью тега <Ид> (в выгружаемом файле) и external_id (в базе данных CS-Cart).
Примечание
Ид == external_id
По наименованию (при поиске категорий и характеристик в базе данных).
Т.е если поменять артикул в 1с, он должен выгрузиться в CS Cart?
Протестировал. Изменение артикула в 1с не передается в ИМ. Я так понимаю влияет вот эта настройка http://joxi.ru/E2pEW0Pc9b1eZA. Видимо нужна настройка “новые товары, артикулы, количество цены всех товаров”? Полную выгрузку делать не хочу, наименования товара в 1С и админке не совпадают, собьется все
Да, product_id - это внутренний ID товара в БД CS-Cart
Не работает. При попытке зайти в экспорт выдает 500 ошибку
кавычку пропустил, пост поправил
Вот теперь заработало вроде. Спасибо