У нас каждый второй клиент спрашивает: "почему я не могу выгрузить только те товары, которые есть на складе?"
Сейчас выгрузка изменений работает так:
- добавление нового товара - реализовано
- изменение товара - реализовано
- удаление товара с сайта -
не сделаноПри выгрузке изменений возможны ситуации, когда неактуальные в 1С товары не удаляются, а остаются на сайте.
Наши клиенты покупают Битрикс для обмена с 1С. К сожалению, более 5 лет в обмене есть ошибки, о которых постоянно спрашивают на форуме, но их не стремятся исправлять.
Ошибка с выгрузкой изменений портит жизнь многим работающим проектам, и заставляет партнеров придумывать костыли.
Пример: фирма покупает одежду из Китая. Продает. Покупает новую номенклатуру. Продает....
Товары, остаток которых 0, на сайте больше не нужен. Поэтому логично в 1С поставить условие отбора "Остаток >0". Это позволяет не выгружать лишние старые товары с десятками гигабайт картинок.
1С при выгрузке изменений не выгружает товары которые не попали в отбор. При выгрузке изменений если товара в 1С стало 0, то в обмен он не попадает и товар остается на сайте. Потом магазин исключают из Яндекс-маркета.
|
Как исправить? Очень просто. Давайте постучим по голове программистам 1C, чтобы в новой версии дополнения была опция "При выгрузке измений учитывать всю номенклатуру".
В плане обмена есть измения о всех товарах. Почему-то обмен с 1С выбирает только те, которые попали в отбор.
Пусть 1С передает все товары из плана обмена:
- товары, которые попали в отбор выгружаются целиком,
- товары, которые не попали в отбор - передать только гуид. Например: так:
<?xml version="1.0" encoding="UTF-8"?>
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="2013-09-03T13:05:11">
...
<Каталог СодержитТолькоИзменения="true">
...
<Товары>
<Товар>
<Ид>d0e820f4-2b68-4d7f-ba39-9d3683fcb0e7</Ид>
<Наименование> Нитки Ирис 25г. 150м</Наименование>
...
</Товар>
// товары, которые есть в плане обмена, но не попали в отбор по фильтру тоже должны выгружаться.
// Хотя бы так.
<Товар Удален="true">
<Ид>d0e820f4-2b68-4d7f-ba39-000000001</Ид>
</Товар>
<Товар Удален="true">
<Ид>d0e820f4-2b68-4d7f-ba39-000000002</Ид>
</Товар>
<Товар Удален="true">
<Ид>d0e820f4-2b68-4d7f-ba39-000000003</Ид>
</Товар>
</Товары>
</Каталог>
</КоммерческаяИнформация>
|
Программисты 1С могут возразить: можем ли мы передавать ГУИД номенклатуры, которой на сайте не было нет и не будет?
Да можем. Мы не знаем был ГУИД d0e820f4-2b68-4d7f-ba39-000000001 раньше на сайте или нет, но мы можем сообщить сайту, что этот товар изменился и если он на сайте есть, пусть удалится или деактивируется в зависимости от настроек сайта.