01.12.2014 12:04:16
|
|
|
|
05.12.2014 18:46:25
Александр добрый день. Подскажите,в чём может быть проблема, все сделано было с помощью ваших файлов, выгрузка и загрузка работает. Общее кол-во меняется, а остатки отдельно по каждому складу не загружаются новые. |
|||
|
|
05.12.2014 21:56:28
Вы вставляли изображение?
Нужно удостовериться, что правильно формируется массив кодов свойств (то есть кодов ID склада и количества) $arAvailStoreFields_names |
|||
|
|
05.12.2014 22:19:31
|
|||
|
|
05.12.2014 22:25:30
|
|||
|
|
06.12.2014 12:40:18
Насколько я вижу, у вас в файле экспорта, в "шапке" файла нету добавленных полей ST_STORE_ID и ST_COUNT_ID, значит скорее всего массив $arAvailStoreFields_names не формируется.
Также приходит в голову, что может вы не все дефолтные файлы скопировали под другими именами. То есть файлы _setup и _run нужно создать в обоих директориях. Причем в одной из директорий, файлы _run и _seup всего лишь перенаправляют (REQUIRED_ ) на файлы _run и _setup в другой директории. Попробуйте попринтовать массивы, которые вы формируете на тестовой страничке. Посмотрите на их структуру, совпадает ли она с той, которую я писал ранее. |
|
|
|
06.12.2014 17:13:13
Добрый день! В файле экспорта эти поля есть - они самые последние справа 4 пары ST_STORE_ID и ST_COUNT_ID т.к. 4 склада.
Дефолтные файлы тоже скопированы под другими именами - посмотрите ссылки: Вот файл который пытаюсь импортировать: А вот скрин того что получается при попытке импорта: Система не опознаёт новые поля из csv... |
|
|
|
07.12.2014 21:20:49
Здравствуйте. Вы сказали, что другие поля успешно обновляются?
В файле импорта, меня смущает IE_XML_ID, его значение, оно огромное. Можете попробовать вместо этого огромного поля ea032f88-7953-11e4-9fe5-902b3411ec8 поставить ID существующего товара? Попробуйте также на тестовой страничке просто обновить значения на складах вручную, пока без файла, с помощью этого кода
Кстати, в настройках модуля "Торговый каталог" не должно стоять галочки напротив "включить складской учет" потому что значения по складам не будут меняться. |
|||
|
|
07.12.2014 23:39:59
Да, другие поля обновляются,
галочка напротив "включить складской учет" не стоит, Такое большое значение IE_XML_ID генерирует 1с, и битрикс его вроде нормально воспринимает т.к. загрузка CSV без реализации многоскладовости проходит успешно. Я попробовал запустить предложенный код, но он выдал ошибку: я в программировании пока не силён, подскажите что системе не понравилось? если я Вас правильно понял, то ID это другой идентификатор, отличный от IE_XML_ID Для надёжности прикладываю скрин каталога с товаром количество которого на складе 1 хотел изменить. С "IE_XML_ID" результат такой же: |
|
|
|
09.12.2014 09:44:21
Подождите
если у Вас интеграция с 1С, то там есть стандартная реализация многоскладовости через XML файлы, зачем вы мучаетесь через CSV? Пожалуйста, проверьте код не через XML_ID товара, а просто с ID товара, посмотрите, изменится или нет количество?
|
|||||
|
|
09.12.2014 13:59:18
Добрый день! Код запустил, но там в 6-ой строке что-то не понравилось
Если запускать без шестой строки, то запускается нормально, но количество товара на складе не меняется. На счёт интеграции с 1С - её нет, по причине того, что конфигурация 1С полностью рукописная и стандартные средства интеграции (которые можно скачать) -они не работают..(( Силами программиста обслуживающего 1С реализована выгрузка остатков в CSV формате. А генерируемый IE_XML_ID - это код карточки товара который создаёт 1С и использует его в своих внутренних процессах. Т.к. он уникален для каждого товара то, по этому, именно он и был выбран в качестве IE_XML_ID. Состав файла выгрузки CSV можно настроить именно так как это надо для сайта. На данный момент, как способ реализовать многоскладовость, мне видится только способ через доработку CSV.. Хотя... если бы точно знать что многоскладовость будет работать если загружать XML-файл вручную через "Импорт XML", то тогда можно было бы и такой вариант попробовать |
|
|
|
09.12.2014 21:45:00
Я могу Вам с 100% уверенностью сказать, что есть даже готовый вид XML файла, и если у вас есть 1С-программист, то он, мне кажется, сможет задать определенный вид (структуру) XML файла. Я, позже, найду ветку форума, на которой эта структура описана.
По невыполненному коду, нужно подключить класс, я завтра выложу код подключения класса StoreProduct, вы его добавите, и проверим добавление на склады в вашем, конкретном случае. |
|
|
|
10.12.2014 12:02:24
Александр, буду благодарен за помощь
|
|
|
|
10.01.2015 15:12:54
Нашел такую информацию: Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции: <? if (CModule::IncludeModule("catalog")) { //здесь можно использовать функции модуля } ?> Как применить это в нашем случае ? |
|||
|
|
10.01.2015 15:15:56
|
|||
|
|
11.01.2015 01:22:36
Я считаю, что каждый случай сугубо индивидуальный, поэтому на мой метод грешить не надо. Я вам еще раз говорю, что импорт и экспорт реализован с помощью XML файлов полностью, и лишь вопрос того, как сильно вы углубитесь в форумы, для нахождения формата этих файлов. У битрикса очень глубокая интеграция с 1С, поэтому не стоит изобретать велосипед, как в вашем случае внедряя CSV файлы, а лишь найти, подчеркиваю НАЙТИ формат файла XML. Я на него очень много раз натыкался. |
|||
|
|
12.01.2015 22:14:22
2 минутный поиск дал мне это
В данном топике нашел формат XML файлп
|
|||
|
|
13.01.2015 16:27:26
Не сочтите за грубость, Ваше решение содержит ошибку.
Импорт не всегда позволяет обновлять количество товара на складе: используется только метод CCatalogStoreProduct::Add. Будет правильнее добавить проверку на существование записи и использовать метод CCatalogStoreProduct::Update, в случае нахождения такой записи. |
|
|
|
13.01.2015 17:32:38
Я понимаю различие между этими методами. Но дело в том, что это не ошибка, и разницы в результате не будет абсолютно, так как это класс CCatalogStoreProduct а не просто элемент инфоблока)) и поэтому значение количества товара на складе будет производиться всегда, как в случае изменения существующего, так и при добавлении нового, при том, без потери уже имеющихся данных |
|||
|
|
14.01.2015 12:05:43
Всем спасибо за помощь. Все заработало.
Немного офтоп: В XML немного не правильно написан код был, и кодировка не правильная стояла. Только сначала нам нужно было подключить модуль "торговый каталог", как вы и предполагали.: CModule::IncludeModule('catalog'); $arLoadStoreArray = array( "PRODUCT_ID" => 443 ); $arLoadStoreArray['STORE_ID'] = 1; $arLoadStoreArray['AMOUNT'] = 100; CCatalogStoreProduct::Add($arLoadStoreArray); |
|
|
|
02.11.2015 23:34:59
P.S. за скрипт спасибо) |
|||
|
|
19.09.2018 12:11:20
есть хороший модуль для импорта-экспорта остатков по складам от студии акрит
|
|
|
|
01.11.2018 17:00:52
По вашим шаблонам экспорт проходит нормально, а вот при импорте я не могу выбрать склад, который соответствует нужному полю Или так и должно быть, и просто загружать, игнорируя эти настройки? |
|||
|
|
03.06.2022 11:31:19
Ребята, приветствую!
Не совсем понял, вопрос решен с импортом остатков по складам или нет? Я так и не смог разобраться, для меня он актуальный на сегодняшний день. Может кто подскажет как это сделать? |
||||
|
|
|||