Мой склад
Last updated
Last updated
Первый в России облачный сервис управления торговлей и складом с любого компьютера, в любое время.
Чтобы перейти на соответствующую страницу с CRM-интеграциями, воспользуйтесь ссылкой https://salebot.pro/projects/{ID ПРОЕКТА}/crm_integrations, где вместо {ID ПРОЕКТА} - передайте ID вашего проекта, в котором необходимо подключить интеграцию.
Чтобы найти ID проекта, кликните по адресной строке, где вы увидите ID после конструкции https://salebot.pro/projects/:
Для подключения бота перейдите в раздел "Интеграции с CRM" на сайте Salebot.pro и введите данные учетной записи “Мой склад” после нажатия кнопки “Подключить”.
Для получения списка товаров используйте метод moysklad_get_goods(filter, category), где
Параметр | Описание | Примечание |
---|---|---|
filter | необязательный параметр, в который могут быть помещены необходимые параметры фильтрации; | |
category | необязательный параметр, в который может быть помещена финальная часть параметра pathname (после последнего встреченного в этом параметре знака /). | При использовании данного параметра предварительно сформированный список будет дополнительно отфильтрован по значению параметра и если список содержит более 10 товаров, то перемешает его и вернет лишь первые 10 товаров итогового списка (большее кол-во выводить затруднительно). Параметр не будет использован, если при первичном поиске найдет один товар. |
Для сохранения и обработки ответа присвойте функцию переменной. Без применения фильтра функция вернет список всех товаров, даже тех, что сейчас отсутствуют в наличии.
Если выдается более 10 товаров, то список товаров не сформируется и в переменную будет помещен текст 'слишком много товаров, попробуйте дополнительные параметры фильтрации'.
Пример: filter = '{"pathname":"Климатическое оборудование/Сплит системы/Настенные/Настенные/", "stockMode":"positiveOnly"}' goods=moysklad_get_goods(filter, 'до 25м2')
Для выдачи всех товаров в неотфильтрованном виде просто не передавайте параметры в скобках: goods=moysklad_get_goods()
Пока в списке более одного товара, список будет иметь такой вид (список сокращен для наглядности): [{"id":"0659532e-fb95-11ec-0a80-0fc700665ca0","name":"Royal Clima CO-4C 36HNX/CO-E 36HNX","stock":"0.0","price":"125890.0","group":"2b13a923-f84c-11ec-0a80-0ebc000022d2"},{"id":"0661ce87-fb95-11ec-0a80-0fc700665ca5","name":"Royal Clima ES-D 60HWX/ES-E 60HX","stock":"1.0","price":"162290.0","group":"2b13a923-f84c-11ec-0a80-0ebc000022d2"}]
Данные по товарам из этого списка можно фильтровать. Для удобства условие фильтра лучше сохранить в переменную.
Если применить 2 условия фильтрации данных, то запись фильтра имеет следующий вид: filter = '{"stockMode":"positiveOnly", "id":"06d58c3a-fb95-11ec-0a80-0fc700665cf3"}' В частности, представленный пример демонстрирует работу фильтра по конкретному id товара и положительным остатком этого товара на складе. Если товар с указанным id закончился на складе, метод вернет текст 'нет подходящих товаров'.
Итак, для фильтрации по нескольким параметрам передайте их в виде словаря - внутри фигурных скобок через запятую в виде пары ключ-значение.
Есть возможность фильтрации данных по 3 параметрам:
id – фильтрация по id. Передаете id товара и получаете более подробную информацию по товару
stockMode – фильтрация по остаткам товара на складе, может принимать ограниченный список значений: - 'all' – любое значение остатка; - 'positiveOnly' – положительный остаток, - 'negativeOnly' – отрицательный остаток, - 'empty' – нулевой остаток, - 'nonEmpty' – ненулевой остаток, - 'underMinimum' – остаток ниже неснижаемого значения
group – параметр для фильтрации по отделу, в качестве значения передайте id отдела. В списке товаров под ключом "group"
name – параметр для фильтрации по имени товара
pathname – параметр для фильтрации по пути (обычно этот путь используют для распределения товаров на множество подгрупп)
Если в результате применения фильтра будет найден один товар, то более подробная информация о нем будет выглядеть следующим образом: {"id":"06d58c3a-fb95-11ec-0a80-0fc700665cf3","name":"Hisense AS-13UW4RYDTV03","description":"Уровень шума внутреннего блока : 23 дБ\nМощность в режиме охлаждения : 3,75 кВт\nПотребляемая мощность при охлаждении : 1,168 кВт\nПотребляемая мощность при обогреве : 1,168 кВт\nГабариты внутреннего блока (ШхВхГ) x27x21 См – 8 кг\n\nОсобенности и преимущества:\n\n3D ULTRA HI DENSITY фильтр - фильтр, произведенный по новейшей технологии, и обладающий мельчайшим сечением ячеек, что делает очистку воздуха более тщательной. Фильтр является многоразовым, а значит не требует от вас дополнительных расходов по его замене\nУправление подачей воздуха возможно в 4-ёх направлениях, что существенно повышает удобство и комфортность использования кондиционера\nФотокаталитический фильтр способен эффективно окислять и разрушать молекулы химических соединений, запахов, а также вирусы, бактерии, споры грибов, другие загрязнители органического происхождения. Важной особенностью данного фильтра является возможность восстанавливать эффективность работы после 3-4 месяцев эксплуатации: достаточно положить его под прямые солнечные лучи на 6-8 часов\nБлагодаря мультискоростным вентиляторам, установленным во внутренних блоках кондиционеров Hisense, пользователю дана возможность настроить максимально комфортную скорость потока воздуха\nВ выключенном состоянии дисплей становится незаметным, делая внешний вид передней панели внутреннего блока современнее и более стильным\nNEGATIVE ION фильтр вырабатывает отрицательно заряженные ионы, которые помимо положительного воздействия на организм, активно участвуют в процессе очистки воздуха. *отсутствует в 18, 24 моделях. Передают заряд пылинкам, которые начинают притягиваться друг к другу и образовывать более крупные частицы, которые улавливаются различными фильтрами.\nSILVER-ION FIN: покрытие теплообменника внутреннего блока препятствует образованию плесени и уничтожает опасные бактерии, такие как стафилококки и кишечные палочки\nДля снижения уровня шума наружного все инверторные кондиционеры Hisense имеют встроенную двойную шумоизоляцию компрессора\nДля предотвращения промерзания помещения используется режим «Дежурный обогрев» +8 °С\nВ случае утечки хладагента кондиционер сообщит об этом, что позволит предотвратить выход из строя компрессора\nКондиционер с трехступенчатой очисткой воздуха с инвертором китайского бренда Hisense отличается бесшумной работой, небольшим потреблением электроэнергии, стильным дизайном и высокой производительностью. Пульт управления в комплекте позволяет дистанционно настроить желаемую температуру, выбрать функцию или управлять положением жалюзи.","price":"4579000.0","stock":"3.0", "group":"2b13a923-f84c-11ec-0a80-0ebc000022d2"}
Большую часть в данном примере составляет поле description, в котором содержится подробное описание товара из базы.
Для этого используйте функцию moysklad_humanize_goods_list(goods, keys), где
Параметр | Описание | Примечание |
---|---|---|
goods | список товаров, содержащий не более 10 товаров | получаем в результате работы функции moysklad_get_goods |
keys | список ключей, значения которых нужно вывести (маловероятно, что клиенту интересны id товара или группы), при этом порядок вывода полей определяется порядком в списке. |
moysklad_choose_goods_fields(goods, '["name", "stock", "Цена продажи"]')
В переменной goods был такой список товаров: [{"id":"a9208e55-7cd9-11eb-0a80-09a2000959a2","name":"Energolux SAS09BN1-AI/SAU09BN1-AI","stock":"2.0","pathname":"Климатическое оборудование/Сплит системы/Настенные/Настенные/Energolux/до 25м2","group":"8d414b24-3ff5-11ea-0a80-006b00003e99","Цена продажи":62900.0},{"id":"88903fc9-ef9e-11eb-0a80-0130000d3154","name":"Energolux SAS09BN1-AI/SAU09BN1-AI-LE","stock":"2.0","pathname":"Климатическое оборудование/Сплит системы/Настенные/Настенные/Energolux/до 25м2","group":"8d414b24-3ff5-11ea-0a80-006b00003e99","Цена продажи":62900.0},{"id":"a458e178-aa8f-11ec-0a80-0060000b0b12","name":"Hitachi RAK-25RXE/RAC-25WXEN","stock":"20.0","pathname":"Климатическое оборудование/Сплит системы/Настенные/Настенные/Hitachi/до 25м2","group":"8d414b24-3ff5-11ea-0a80-006b00003e99","Цена продажи":140500.0},{"id":"10278c14-a06a-11ec-0a80-01a0000e37ee","name":"Hisense AS-09HR4SYDDJ3","stock":"20.0","pathname":"Климатическое оборудование/Сплит системы/Настенные/Настенные/Hisense/до 25м2","group":"8d414b24-3ff5-11ea-0a80-006b00003e99","Цена продажи":34090.0},{"id":"68919e4d-cf52-11ec-0a80-0d2d00950cfe","name":"Roland RDI-WZ09HSS/N1","stock":"20.0","pathname":"Климатическое оборудование/Сплит системы/Настенные/Настенные/Roland/до 25м2","group":"8d414b24-3ff5-11ea-0a80-006b00003e99","Цена продажи":38790.0},{"id":"61f29fbe-88ad-11eb-0a80-01270006e59d","name":"Cooper&Hunter CH-S09FTXLA-NG WI-FI","stock":"1.0","pathname":"Климатическое оборудование/Сплит системы/Настенные/Настенные/Cooper&Hunter/до 25м2","group":"8d414b24-3ff5-11ea-0a80-006b00003e99","Цена продажи":60000.0},{"id":"57b3ecfd-8ff5-11ec-0a80-0df90015ffb7","name":"Cooper&Hunter CH-S09FTXLA-NG WI-FI","stock":"1.0","pathname":"Климатическое оборудование/Сплит системы/Настенные/Настенные/Cooper&Hunter/до 25м2","group":"8d414b24-3ff5-11ea-0a80-006b00003e99","Цена продажи":60000.0},{"id":"61f5c69f-784b-11ec-0a80-030c0054d205","name":"Hisense AS-09UW4RYDTG05B","stock":"20.0","pathname":"Климатическое оборудование/Сплит системы/Настенные/Настенные/Hisense/до 25м2","group":"8d414b24-3ff5-11ea-0a80-006b00003e99","Цена продажи":46590.0},{"id":"f9eb0052-8401-11eb-0a80-0581001185c3","name":"Cooper&Hunter CH-S09FTXLA-NG WI-FI","stock":"1.0","pathname":"Климатическое оборудование/Сплит системы/Настенные/Настенные/Cooper&Hunter/до 25м2","group":"8d414b24-3ff5-11ea-0a80-006b00003e99","Цена продажи":60000.0},{"id":"9b0d0bf2-7bec-11eb-0a80-06760004dc38","name":"Hisense AS-09UR4SYDDL1(S)","stock":"4.0","pathname":"Климатическое оборудование/Сплит системы/Настенные/Настенные/Hisense/до 25м2","group":"8d414b24-3ff5-11ea-0a80-006b00003e99","Цена продажи":36100.0}] После выполнения в переменную был получен текст для клиента, имеющий вид: Energolux SAS09BN1-AI/SAU09BN1-AI 2.0 62900.0
Energolux SAS09BN1-AI/SAU09BN1-AI-LE 2.0 62900.0
Hitachi RAK-25RXE/RAC-25WXEN 20.0 140500.0
Hisense AS-09HR4SYDDJ3 20.0 34090.0
Roland RDI-WZ09HSS/N1 20.0 38790.0
Cooper&Hunter CH-S09FTXLA-NG WI-FI 1.0 60000.0
Cooper&Hunter CH-S09FTXLA-NG WI-FI 1.0 60000.0
Hisense AS-09UW4RYDTG05B 20.0 46590.0
Cooper&Hunter CH-S09FTXLA-NG WI-FI 1.0 60000.0
Hisense AS-09UR4SYDDL1(S) 4.0 36100.0
Для этого используйте функцию moysklad_get_organizations(). Она вернет словарь, где ключом будет наименование организации, а значением - искомый идентификатор. Функция нужна если одной и той же базой товаров пользуются несколько юридических лиц.
Для этого используйте функцию moysklad_get_goods_photo(goods), где goods – это список с данными одного товара (получить такой список можно через функцию moysklad_get_goods при фильтрации по имени товара или id товара)
photo = moysklad_get_goods_photo(goods)
В результате выполнения функции в переменную будет возвращена ссылка на фотографию, далее вы можете добавить ее к сообщению с информацией о товаре.
Для создания заказа номер телефона обязателен!
Для создания заказа потребуется телефон клиента в виде строки. Телефон для связи поместите в переменную phone.
Также необходимо создать переменную для сохранения списка товаров, выбранных клиентом для заказа (аналог корзины).
Переменная должна выглядеть следующим образом:
basket = '[{"id":"06d58c3a-fb95-11ec-0a80-0fc700665cf3","name":"Hisense AS-13UW4RYDTV03","quantity":2,"price":45790.0}]'
В данном примере товар под названием Hisense AS-13UW4RYDTV03 заказан в количестве двух штук, цена указана за единицу товара.
Необходимыми являются только 3 параметра, все прочие можно добавить для удобства:
Параметры | Описание |
---|---|
id | идентификатор товара |
quantity | количество единиц товара в заказе, |
price | цена за единицу товара |
Для добавления нового товара используйте массив с описанной выше структурой, параметры перечисляем через запятую.
После этого можете перейти к оформлению заказа. Для этого используется метод moysklad_make_order(basket, comment, reserve, organization_id, vatEnabled, vatIncluded), где
Параметр | Описание |
---|---|
basket | переменная корзины клиента, |
comment | необязательный параметр, в него можно поместить комментарий к заказу с любой дополнительной информацией, |
reserve | необязательный параметр, если необходимо добавить заказанные товары в резерв, укажите в нем что угодно,необязательный параметр, если необходимо добавить заказанные товары в резерв, укажите в нем что угодно, |
organization_id | идентификатор организации поставщика, по умолчанию передается первый возвращаемый идентификатор из списка, если несколько организаций продают один и тот же товар, то нужно передать идентификатор нужной организации, |
vatEnabled | учитывается ли НДС на заказ в целом (если нет, нужно передать “False”), |
vatIncluded | включен ли НДС в цену всего заказа (если нет, нужно передать “False”). |
zakaz=moysklad_make_order(basket, 'заказ клиента из salebot')
При выполнении данного метода будет произведена проверка есть ли id контрагента у клиента, если нет, то есть ли подходящий по коду клиент в базе (код клиента имеет вид salebot_id_{client_id}, где client_id - идентификатор пользователя в salebot). Если нет, то клиент будет создан с использованием имени клиента, телефона и его идентификатора в salebot (для создания кода).
После этого метод сформирует заказ на платформе “Мой склад” с именем заказа ”Заказ от Salebot №{номер сделки в salebot}”.
Клиенту будут созданы следующие переменные сделки: moysklad_user_id – идентификатор пользователя в Мой склад, moysklad_order – идентификатор заказа в Мой склад.
Если результат выполнения поместить в переменную, то в случае успеха, в нее будет помещен текст “order_created”, если сформировать заказ не удалось, то вернется информация об ошибке, а если ошибка возникла при создании клиента (нет необходимых данных), то вернет текст “Не удалось создать клиента”. Если все прошло успешно на сайте сервиса “Мой склад” в разделе продажи, в пункте заказы покупателей появится заказ с указанными ранее товарами и корректно подсчитанной итоговой суммой заказа, а также с комментарием: