Добрый день, подскажите
В каком файле находится обработчик которые проверяет external id в offers.xml, нужно сделать, чтобы брал любые значения даже с “#” решеткой
Вот типо того
<Ид>e9fb7ea0-2c16-11e8-80c4-44a84235a830#b6c8927d-a4aa-11e9-80d3-44a84235a830</Ид>
Где-то тут
app/addons/rus_exim_1c/Tygh/Commerceml/RusEximCommerceml.php
скорее всего в функции getProductDataByLinkType
Можете пальцем ткнуть, где подправить. Тут вроде не вижу условий с #.
Скажите, что конкретно надо сделать. А то из вашего описания не очень понятно
Игнорировать знак # в коде external id, т.к. из за этого не выгружаются остатки. Он сверяет только первую часть а после # нет.
<Ид>e9fb7ea0-2c16-11e8-80c4-44a84235a830#b6c8927d-a4aa-11e9-80d3-44a84235a830</Ид>
Функцию, в которой ID разделяется по решетке, указал в другой теме
А что тут заменить, я так особо и не понял.
public function getProductIdByFile($commerceml_id)
{
$ids = fn_explode('#', $commerceml_id);
$product_id = array_shift($ids);
$combination_id = 0;
if (!empty($ids)) {
$combination_id = reset($ids);
}
return array($product_id, $combination_id);
}
Спасибки, получилось
$ids = fn_explode(‘#’, $commerceml_id);
Сделал чтобы искал по & вместо #
Все верно. Тут ID разделяется на 2 части - ID товара и вариации
Добрый день! При выгрузки изменяется название с 1С. Как сделать чтобы название товара и артикул не менялся ?
Подскажите, какая функция за это отвечает
Предположу, что тут
$product['product'] = $this->getProductNameByType($import_product_name, $d_product, $full_name, $cml);
да тут, только на тестовом сайте удаляю , $full_name, всё ок. А на основу переношу 1С ругается. НЕ пойму почему
Такая ошибка
PHP Fatal Error
Message
Uncaught Error: Class ‘Tygh\Commerceml\RusEximCommerceml’ not found in /var/www/www-root/data/www/all4tele.com/app/addons/rus_exim_1c/controllers/frontend/exim_1c.php:49
Stack trace:
#0 /var/www/www-root/data/www/all4tele.com/app/functions/fn.control.php(665): include()
#1 /var/www/www-root/data/www/all4tele.com/app/functions/fn.control.php(423): fn_run_controller(’/var/www/www-ro…’, ‘exim_1c’, ‘import’, ‘’, ‘’)
#2 /var/www/www-root/data/www/all4tele.com/index.php(25): fn_dispatch()
#3 {main}
thrown
Error at
app/addons/rus_exim_1c/controllers/frontend/exim_1c.php, line: 49
Backtrace
–>
Выгрузка товаров завершена с ошибками!!
Сравните файлы. Возможно, что-то еще удалили
Сравнивал, всё тоже самое.
Перезаливал с тест сайт, модуль целиком.
Всё равно ошибка. А на тесте всё ок. Всю голову сломал уже.
Вот сравнение
1 файл основа, второй тестовый
https://www.diffchecker.com/aqZp1bjb
если в первом файле удаляю $full_name, выгрузка не работает.
На тесте 2 файл норм пашет
Ну как минимум, надо не просто удалить параметр из списка, а поменять его за пустое значение.
на null, что ли, или на переменную типо $test.
Начните с пустого значения ( $param1, $param2, ‘’, $param3 )
когда пустую ставишь переменную, всё равно выгружает из 1С
Теперь на основном сайте, когда с пустой переменной делаешь, удаляются все титлы)
В общем, надо изучать где и как полученное значение дальше используется