ну понятно что ето работает только если остаток 0 !! НУЛЬ )))
зы: Чтобы товар считался как "нет в наличие" должны выполняться следующие условия: В карточке товара установлено: - Количество товара равно 0 или меньше - Включить количественный учет - да - Разрешить отрицательное количество товара - нет - Разрешить покупку при отсутствии товара - нет
Дмитрий Агапкин написал: ну понятно что ето работает только если остаток 0 !! НУЛЬ )))
зы: Чтобы товар считался как "нет в наличие" должны выполняться следующие условия: В карточке товара установлено: - Количество товара равно 0 или меньше - Включить количественный учет - да - Разрешить отрицательное количество товара - нет - Разрешить покупку при отсутствии товара - нет
Все так и сделано. Не работает. У вас есть работающий пример?
если залогиниться то вроде кнопка нажимается, но как уже сказал письмо не приходит. а если не логиниться запрашивает мыло , ввожу а он мне в ответ юзер не зарегин ((( хз короче
После измученных нескольких часов пришел к выводу, что модуль все-таки работает, но не со всеми компонентами системы. С комплексным компонентом e-shop 15.0 bitrix.catalog настроить систему уведомлений не удалось. Если система уведомлений работает для авторизованных пользователей сайта, соответственно информация о подписке на уведомления берется из профиля авторизованного пользователя. Если пользователь не авторизован, выводится форма с предложением, ввода контактного e-mail и, после ввода, выводится сообщение, что пользователь не зарегистрирован. Уведомление работает с компонентом bitrix:catalog.section При этом необходимо включить следующие настройки: модуль "торговый каталог" - "Разрешить подписку при отсутствии товара" модуль "торговый каталог" - "Включить количественный учет" модуль "интернет-магазин" - "Использовать уведомления о поступлении товаров"
И, соответственно, выключить флаги: модуль "торговый каталог" - "Разрешить покупку при отсутствии товара" модуль "торговый каталог" - "Разрешить отрицательное количество товара" (возможно, это не влияет на результат)
Дополнительно я выключил флаг модуль "торговый каталог" - "Включить складской учет" т.к. при включении данного флага управление доступным количеством товара возможно только через складские документы, при выключенном флаге управление доступным количеством можно осуществлять через систему импорта модуля "интернет магазин", например, через сформированный файл обмена .csv.
Если у кого-нибудь есть опыт по настройкам данного сервиса, прошу поделиться опытом.
Интересует как подписать не авторизованного пользователя. При более тщательном изучении компонента заметил, что в шаблоне подгружается компонент sale.notice.product по всей видимости, данный компонент пытается через свой скрипт аякс создать нового пользователя, если подписка происходит от имени не авторизованного пользователя, при этом, проверяется e-mail на дубль и если совпадение, вылетает предложение авторизоваться. т.к. пользователь существует. У меня пока не получается запустить данный механизм подписки. Не авторизованный пользователь в данной форме почему-то не авторизуется и не подписывается.
Вообще странное отношение разработчиков к этому вопросу - не работает, да и фиг с ним... Вот тоже срочно нужен этот функционал, причем на торговых предложениях. Полез сам копаться как это работает - вспух мозг пока. Где вообще хранятся товары на которые оформлена подписка (b_sale_basket, или где? вообще непонятно) и как организуется рассылка (агент? какой?). Подскажите хоть куда копать. Явно sale.notice.product, но дальше что...
Ниже постараюсь описать как прикрутить этот функционал к карточке товара.
Лично у меня работает при таких настройках:
Модуль Торговый каталог Включить количественный учет - да Разрешить покупку при отсутствии товара - нет Разрешить отрицательное количество товара - нет Разрешить подписку при отсутствии товара - да
Модуль Интернет-магазин Настройки по магазинам -> Подписка на товары -> Использовать уведомления о поступлении товаров - да
Теперь настроим сам процесс подписки: В карточку товара (bitrix:catalog.element) вставляем компонент bitrix:sale.notice.product, параметры комопонента такие:
Можно обрамить это все проверкой на $arResult["CATALOG_QUANTITY"] == 0, чтоб выводить только для товара, Доступное количество которого = 0. В результате получаем в месте вызова компонента ссылочку "Уведомить о поступлении", при клике на которую авторизованный пользователь сразу подписывается на уведомления о поступлении и увидит на месте ссылки надпись "Мы оповестим вас как только товар появится в наличии". А неавторизованного пользователя попросят ввести мейл и ввести каптчу (если параметр "NOTIFY_USE_CAPTHA" == "Y").
Что происходит под капотом: $arResult["SUBSCRIBE_URL"], который мы подключаем в параметре NOTIFY_URL имеет примерно такой вид в моем случае с карточкой: /catalog/путь_к_карточке_товара/?action=SUBSCRIBE_PRODUCT&id=7
Когда мы нажимаем ссылку "Уведомить о поступлении", отправляется запрос на этот адрес, параметр action (или какой там у вас задан в настройках каталога), равный SUBSCRIBE_PRODUCT ловится компонентом и происходит добавление товара в корзину функцией Add2BasketByProductID(). Туда передается такое поле, как 'SUBSCRIBE' равное 'Y'. Таким образом сохраняется информация о том, какой пользователь подписался на какой товар и лежит это все красиво в табличке b_sale_basket до того момента когда наш товар появится на складе.
Допустим, наш товар теперь в наличии и происходит изменение его остатка с 0 на 1. Если посмотреть код метода CCatalogProduct::Update(), то сразу за вызовом обработчиков события OnProductUpdate имеется вызов метода CSaleBasket::ProductSubscribe(). Если кратко, этот метод делает выборку по записям корзины с товаром, который в данный момент обновляется, с флагом SUBSCRIBE = Y и которые не привязаны к заказу.
Фильтр CSaleBasket::GetList():
Скрытый текст
array( "PRODUCT_ID" => $ID, // ИД товара, пришедшего из метода CCatalogProduct::Update() "SUBSCRIBE" => "Y", "CAN_BUY" => "N", "ORDER_ID" => "NULL", ">USER_ID" => "0", "MODULE" => $MODULE // равно 'catalog' ),
Далее получются данные о пользователе, получется его мейл и создается почтовое событе типа SALE_SUBSCRIBE_PRODUCT. В него передаются поля для шаблона и отправляется письмо методом CEvent::Send();
Родион Абдурахимов написал: Теперь настроим сам процесс подписки: В карточку товара (bitrix:catalog.element) вставляем компонент bitrix:sale.notice.product, параметры комопонента такие:
Подскажите, пожалуйста, как это выполнить, желательно для чайника? т.к. компонент bitrix:catalog является комплексным компонентом и никак не могу найти как в карточку товара добавить этот самый bitrix:sale.notice.product
Александр Шанталов написал: т.к. компонент bitrix:catalog является комплексным компонентом и никак не могу найти как в карточку товара добавить этот самый bitrix:sale.notice.product
в папке шаблона компонента каталога ищите папку bitrix, в ней будут такие папки как catalog.compare.list, catalog.compare.result, catalog.element и тд вот catalog.element вам и нужна, в ней будет скорее всего папка .default, а в ней уже будет файлик template.php. Конечно же нужно сначала скопировать шаблон компонента catalog в свой неймспейс, как описано тут http://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2829#tamplate_edit
Александр Шанталов написал: т.к. компонент bitrix:catalog является комплексным компонентом и никак не могу найти как в карточку товара добавить этот самый bitrix:sale.notice.product
в папке шаблона компонента каталога ищите папку bitrix, в ней будут такие папки как catalog.compare.list, catalog.compare.result, catalog.element и тд вот catalog.element вам и нужна, в ней будет скорее всего папка .default, а в ней уже будет файлик template.php. Конечно же нужно сначала скопировать шаблон компонента catalog в свой неймспейс, как описано тут http://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2829#tamplate_edit
Спасибо! Файл template.php нашел, добавил в конец файла
Родион Абдурахимов написал: Александр Шанталов , из коробки нет, это нужно реализовывать отдельно
Спасибо за ответ! Под "решением" я подразумевал сообщения в форуме, наподобие Вашего. За которое еще раз спасибо, разработчики не называют сроки даже по исправлению подписки на товары))
Подскажите, пожалуйста, а как можно отредактировать шаблон самого sale.notice.product? Надпись мелкая да еще и находится внизу страницы описания товара.