Склады в CS-Cart: Вопросы и ответы

На следующей неделе (но если что, я вам этого не говорил) должен выйти CS-Cart 4.11.1 со складами. Функциональность новая и очень гибкая, но не самая простая в освоении. Поэтому мы хотим помочь всем заинтересованным познакомиться с модулем складов заранее.

  1. По модулю уже есть документация:

  2. Проверить, подойдут ли склады вам, можно на http://dev.demo.cs-cart.ru/. Так ещё до релиза вы без регистрации получите демо-установку с модулем складов. В демо-данных пока созданы только пункты самовывоза. Магазины и склады придётся делать из них по документации.

    Демо-установка живёт около суток. Если настроите склады на демо, испытайте их сразу по-максимуму. Иначе придётся снова их настраивать на новой демке.

  3. До релиза 4.11.1 многоскладовость уже не изменится. Но модуль с пометкой [Beta], так что ещё может потом сильно измениться в зависимости от обратной связи.

  4. Я буду следить за этой темой и постараюсь по-максимуму ответить на вопросы по настройке и возможностям складов. Тут два момента:

    • Если задаёте вопрос, то опишите пожалуйста ваш сценарий и чего вы пытаетесь добиться. Так будет проще посоветовать настройки, да и мы поймём, что можно улучшить. Например:

      У меня склад в Москве и два офлайн-магазина: в Москве и в Мытищах. Между магазинами товары не вожу; подвожу только со склада. Хочу, чтобы покупатель из Мытищ видел на странице товара оба магазина, а покупатель из Москвы — только московский.

    • Пока я не знаю, сколько будет вопросов, и успею ли я ответить на все. Поэтому у темы фиксированные сроки: регулярно проверять её и отвечать я смогу с момента релиза 4.11.1 до 21 ноября. После этого будет пауза на пару недель, а дальше по обстановке.


Обязательно делитесь мыслями о модуле “Склады” в этой теме. Так мы поймём, что нужно улучшить в самом модуле или в документации.

6 лайков

На первый взгляд выглядит как прямо то, что нужно.


Только маленький нюанс хочу подсказать, надо добавить несколько таких полей к каждому магазину. Функционал особо не утяжелит, но нужно. У каждого первого(за редким исключением) складов в 1С несколько. Даже в отдельно взятом магазине физическом есть склад хранения, склад витрины, склады уценки и т.д., другие логические склады. У оптовиков аналогично, у производителей тем более, у многих особенности бизнеса так же требуют. Но главное - что складов почти всегда несколько, даже если они находятся в рамках одного помещения. Остатки эти, в рамках одного магазина, можно по-умолчанию суммировать, но дать возможность надо загружать товары с нескольких надо, иначе многие этим функционалом или пользоваться не смогут, или костыли потребуются.

15 лайков

Плюсую комментатора выше, у нас в магазине в рамках одного помещения есть - уценка, торговый зал, минисклад. А этажем ниже, мы арендуем помещение отдельное под основной склад.

7 лайков

Добрый день.

http://dev.demo.cs-cart.ru

  1. Ошибка http://skrinshoter.ru/s/311019/doL1Oq5c
    Как получили. Повторно оформили заказ, сменили регион на шаге оформления заказа, нажали размещение заказа.

Модуль геолокации выключен.
Регион Москва
Остаток товара - 20 шт
В корзине оформляем 10 шт

  1. Невозможно изменить статус заказа если.
    Заказ оформлен клиентом из одного города, но он выбрал Самовывоз там, где есть склад
    http://skrinshoter.ru/s/311019/rTfayIMy

  2. Слишком строгая зависимость от модуля Геолокации. Если он выключен, регион выбирается по-умолчанию, как и склад.

  3. В Москве 2 склада http://skrinshoter.ru/s/311019/TLfh0eQJ
    При заказе, можно заказать 30 шт. (это наличие на одном из складов) http://skrinshoter.ru/s/311019/ozUqynFU

После оформления остаток товара http://skrinshoter.ru/s/311019/0vCcNpF4
Но купить товар нельзя, хотя есть остаток на другом складе http://skrinshoter.ru/s/311019/f5wMMM7w

  1. Если товар остался в сессии в корзине
    http://skrinshoter.ru/s/311019/h4Swu73z его можно заказать, даже если товар нет в наличии.

Такой заказ упадет как отложенный. (хотя может оно так и надо :slight_smile: )

Это беглым тестом за 15 минут.

2 лайка

Спасибо, изучаем.

Сложности в том, что:

  • Настроек у складов много. Поэтому информации для воспроизведения бага тоже нужно много.
    Решается это только доступом к магазину или пошаговыми инструкциями по воспроизведению.

  • Что-то, что воспринимается как баг, может возникнуть из-за неправильной настройки (такова цена гибкости). Поэтому тема и существует — чтобы помочь владельцам магазинов настроить всё под свои нужны и процессы и получить от складов максимум пользы.

То, с чем разобрались, буду добавлять в этот комментарий.


Эту проблему я сначала не воспроизвёл — заказал товар в Москве (где он был), при повторном заказе заменил город на Ульяновск (где товара нет), и заказ попал в отложенные, никакой фаталки не возникло. Но раз пока был жив инстанс демки 9ee3c4a730d97c83 и есть скрин ошибки, начали копать дальше.

Выяснилось, что проблема возникала, если в тарифной зоне были только ПВЗ и склады (но не магазины) и использовался именно самовывоз. Задачу на исправление создали. Возможно, успеем поправить ещё до релиза.


Склады зависят не от геолокации, а от тарифных зон, т.е. от соответствия значений в полях “Страна”, “Область”, “Город” и др. в профиле покупателя и того, что у вас настроено в меню “Администрирование > Доставка и налоги > Тарифные зоны”.

Геолокация просто помогает заполнить эти поля (а значит, определить тарифную зону и решить, с какого склада списывать в первую очередь). Когда геолокации нет, то логично, что берётся адрес покупателя по умолчанию.

Пока я не могу согласиться с утверждением “Слишком строгая зависимость от модуля Геолокации”. Поясню, почему:

  • Геолокацию подключать не обязательно. В настройках модуля “Магазины и пункты самовывоза” есть настройка “Использовать список городов вместо карты”. Тогда список городов сформируется на основе городов, где у вас есть магазины, ПВЗ и склады. Минус в том, что карты не будет, а плюс в том, что не придётся зависеть от Яндекса и Google и их ограницений на использование API карт и геолокации.

  • Не обязательно делать зависимость доступности товара от города. Можно всем магазинам и складам задать настройку “Доставлять в” и добавить туда все тарифные зоны. Тогда система будет вести себя так же, как CS-Cart без складов, но с отображением наличия в конкретных магазинах.

Поэтому сначала посмотрим на кейсы и на то, как склады их сейчас могут решить.


Заглянул на демо 9ee3c4a730d97c83 (из вашего первого скриншота). Если вы всё на этой демке тестировали, то проблема в настройке складов. У склада Шоп-Логистик вообще не задано значение настройки “Доставлять в”. Это значит, что количество с него недоступно для покупки ни в одной тарифной зоне, в том числе и в Москве.

1 лайк

Спасибо за подсказку. До релиза 4.11.1 такое сделать уже не успеем. Пока создал задачу на это улучшение в 4.11.2. Обещать пока ничего не могу, т.к. окончательное решение не только за мной. Принимать его будем уже после релиза, когда получим больше фидбека по складам. Но думаю, после такого количества лайков не возникнет возражений.

1 лайк

А может, всё-таки получится успеть? Пофиксить эту проблемку вроде как не великая задача. Но реально мало кто сможет при текущей реализации этим функционалом воспользоваться, даже у самого крохотного магазина складов минимум 2, в силу особенностей документооборота и налогообложения, это без разделения складов на витрины/уценки, склады хранения и т.д.

Ну и еще момент, тоже касающиеся модуля commerceml - существуют в природе не опубликованные нигде решения, где производится загрузка изменений в заказах произведенных на стороне 1С(чисто по товарам, составу заказа, без изменений карточек контрагентов и прочего), из файлов orders.xml, загружаемых из 1С. Можно ли добавить этот простой функционал в коробку? Файлы стандартные по заказам из 1С CS-Cart уже загружает и кладет в папочку, информация по товарам и стоимости доставки в них стандартные, только почему-то ничего из этих файлов не грузится(по идее должны грузиться из них статусы, только не грузятся т.к. в большинстве конфигураций 1С их там нет из коробки).

На всякий случай упомяну @imac, чтобы он обсуждение увидел и поправил, если я не прав. Возможно, он посчитает иначе. Пока “Не получится успеть” — это моё предположение, которое основано на следующем:

  • Откладывать дальше релиз 4.11.1 уже нельзя. Там выходят не только склады, но несколько других улучшений, которые хорошо бы выпустить как можно скорее.

  • Одно дело перед релизом пофиксить баг, а другое — добавить новую функциональность (которая может ввести свои проблемы).

  • Эта функциональность не такая простая, как кажется на первый взгляд:

    • Нужен интерфейс для задания нескольких external ID (наподобие того, как сейчас задаются категории товаров).

    • Нужно добавить и протестировать логику суммирования количеств.

    • Скорее всего, нужно добавить логику выбора главного external ID (с которого будет подтягиваться остальная информация о складе, если она обновится в 1С).

По-моему, это не совсем относится к теме складов. Даже в контексте складов основная цель интеграции — чтобы покупатели увидели актуальное количество в магазинах, загруженное из 1С. За правильность количества в этом случае отвечает 1С и ваши процессы в ней (т.к. они могут отличаться от логики списания со складов в CS-Cart).

Этот вопрос скорее для отдельной темы в “Как улучшить CS-Cart”.

Да, это не про склады, просто в рамках правки того же модуля CommerceML решил напомнить(“в как улучшить” писалось много раз).

А по теме - нет ли возможности в эти магазины/склады добавить некие дополнительные поля(или возможность их ручного создания), данные из которых можно было бы выводить в карточку товара и в корзину/чекаут через smarty и/или использовать в качестве собственных условий? Часто возникает необходимость добавить дополнительные, или добавить какие-то условия на основе особенностей бизнес-процессов. И стандартных полей не хватает, а мудрить поля модулями - как-то не то совсем. Для дополнительной гибкости. Временами даже банальное примечание дополнительное добавить некуда, ни одного лишнего(свободного) поля в коробке нет.

кстати да по поводу CommerceML. на http://dev.demo.cs-cart.ru этот модуль не установлен. Установил его, никаких изменений не увидел. как будет осуществляться выгрузка остатков на тот или иной склад. Почти весь наш товар с характеристиками типа размер, и количество задается по каждому размеру отдельно.
из 1 с мы можем поочередно выгружать для каждого склада отдельно. но в cs-cart нет разделения на какой склад выгружать. появится ли это?

Планов создавать конструктор полей для складов (по аналогии с полями профиля) нет. Но если будет понятно, какие поля точно нужны большинству людей (и для чего эти поля нужны), то подумаем о том, чтобы в ядро добавить и выводить на витрине в нужных местах.

Разделение есть. В настройках магазина/ПВЗ/склада должен появиться пункт “Код связывания (external ID)”. Выше на скриншоте его можно увидеть: Склады в CS-Cart: Вопросы и ответы

Если external ID совпадает с ID магазина или склада из offers.xml, то количество с этого склада из offers грузится на соответствующий склад в CS-Cart. Иначе создаётся новый склад.

Подскажите, а как быть если склад является пунктом самовывоза и есть потребность что бы в карточке товара отображалось именно наличие товара на складах, а не в магазине?

Не совсем понимаю ситуацию. Думаю, вам поможет вот этот пункт документации: https://www.cs-cart.ru/docs/4.11.x/user_guide/addons/warehouses/how_it_works.html#id2

Навскидку:

Если склад (где хранится какой-то товар) является ещё и пунктом самовывоза (где товар можно забрать), то я бы выбрал ему тип “Магазин”. Если такой вариант не подходит, то поясните пожалуйста, чем именно.

В карточке товара отображается:

  • Количество на каждой точке с типом “Магазин”.
  • Общее количество товара со всех точек с типом “Магазин” и “Склад”, у которых в настройках в пункте “Доставка в” выбрана тарифная зона покупателя.

видимо придется пилить 1С. откуда там разделения на склады при выгрузке?
вот кусок из начала offers.xml

<?xml version="1.0" encoding="UTF-8"?>

<КоммерческаяИнформация ВерсияСхемы=“2.05” ДатаФормирования=“2019-11-06T17:18:45”>
<ПакетПредложений СодержитТолькоИзменения=“false”>
<Ид>c42cd79a-a02a-45bc-95fc-8e8e68a4a439#</Ид>
<Наименование>Пакет предложений (ВЕРМОНД)</Наименование>
<ИдКаталога>c42cd79a-a02a-45bc-95fc-8e8e68a4a439</ИдКаталога>
<ИдКлассификатора>c42cd79a-a02a-45bc-95fc-8e8e68a4a439</ИдКлассификатора>
<Владелец>

самый первый <Ид>c42cd79a-a02a-45bc-95fc-8e8e68a4a439#</Ид> он и есть?

попробовал выгрузить поочередно количество из разных складов. не меняется <Ид>c42cd79a-a02a-45bc-95fc-8e8e68a4a439#</Ид>

@c.ced, в 1С УТ все должно быть без допилов, это стандартная функциональность:

image

А что склады только к Ultimate версии???

Да, так и есть. В теме я это не написал, т.к. в документации (ссылки на которую в начале темы есть) этот момент указан.

Интересная ситуация товар есть на складе и в магазине но на витрине его нет в наличии.

2019-11-08_09-15-08


Как такое получилось товар которого не было в наличии добавил количество на склад и в магазин и в итоге в карточке товара его нет то есть невозможно купить и количество общее невозможно изменить уже.

@moba, скорее всего, у ваших складов и магазинов не задана настройка “Доставка в” (см. её описание в документации). Она нужна, чтобы можно было настроить, с какого склада и куда доставляется товар.

Загляните в “Администрирование > Доставка и налоги > Тарифные зоны”. Там на странице редактирования каждой тарифной зоны можно посмотреть, товар с каких складов/магазинов в этой тарифной зоне считается в наличии. Заодно можно задать разный порядок списания для разных тарифных зон.