Триггер «Ожидает оплату»

Сегодня решил автоматизировать жмакание кнопки в RetailCRM.

Создал триггер, когда статус заказа переходит в «Ожидает оплату», то клиенту направляется письмо по шаблону.

Сделать мега просто:

  1. Создаем шаблон письма по событию «Отправка письма при изменении заказа»
  2. Создаем триггер
  3. В условие прописываем
    changeSet.hasChangedField(«status») and changeSet.getNewValue(«status»).getCode() == «p-waiting»
    где «p-waiting» — код статуса «Ожидает оплату»
  4. Выбираем действие «Отправить письмо по шаблону» и выбираем созданный шаблон.

Все. Работает )

Добавление в корзину через CSaleBasket::Add()

Как бы все кладется в корзину, но после оформления заказа в админке товар в заказе был без связи с самим товаров.
После долгих переборов было выявлено, что нужно передавать следующий набор данных:

$arFields = array(
"PRODUCT_ID" => $row["ID"],
'CATALOG_XML_ID' => $row['IBLOCK_EXTERNAL_ID'],
'PRODUCT_XML_ID' => $row['EXTERNAL_ID'],
"PRODUCT_PRICE_ID" => 0,
"PRICE" => $_SESSION["BYORDERPRICE"][$row["ID"]],
"CURRENCY" => "RUB",
"QUANTITY" => 1,
"LID" => SITE_ID,
"DELAY" => "N",
"CAN_BUY" => "Y",
"NAME" => $row["~NAME"],
"WEIGHT" => $row["WEIGHT"],
"MODULE" => "catalog",
"NOTES" => "LONGORDER",
"DETAIL_PAGE_URL" => $row["DETAIL_PAGE_URL"],
"CALLBACK_FUNC" => "CatalogBasketCustomCallback",
"ORDER_CALLBACK_FUNC" => "CatalogBasketOrderCustomCallback",
"CANCEL_CALLBACK_FUNC" => "CatalogBasketCancelCallback",
"PAY_CALLBACK_FUNC" => "CatalogPayOrderCallback"
);

Где $row заполняется свойствами элемента CIBlockElement::getList().

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

Нужно все это было для интеграции с RetailCRM, т.к. после второго обмена товары, что были добавлены вручную скриптом в корзину, дублировались.

Но теперь все ок )


Отображение состояния товара в заказе RetailCRM

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

Ее можно создать из обычной формы заказа «Лист заказа», заменив: Читать далее Отображение состояния товара в заказе RetailCRM

Автоматизация смены статуса заказа при его отмене

Всегда было, что если заказ отменял покупатель, то статус заказа выставлялся соответствующий, но теперь нет!

После очередного обновления Bitrix статус «Отменен» перестал выставляться, а просто появлялся флаг отмены.

Но при синхронизации работы с  RetailCRM это не удобно, т.к. там флага отмены нет, а есть статус. Читать далее Автоматизация смены статуса заказа при его отмене

Пустые <ид> и <идкаталог> при обмене заказами, созданными через D7 API Bitrix

Предыстория

Создаю по примеру заказ через API

Код
if ($item = $basket->getExistsItem('catalog', $productId) {
    $item->setField('QUANTITY', $item->getQuantity() + $quantity);
}
else {
    $item = $basket->createItem('catalog', $productId);
    $item->setFields(array(
        'QUANTITY' => $quantity,
        'CURRENCY' => Bitrix\Currency\CurrencyManager::getBaseCurrency(),
        'LID' => Bitrix\Main\Context::getCurrent()->getSite(),
        'PRODUCT_PROVIDER_CLASS' => 'CCatalogProductProvider',
    ));
}
$basket->save();

Читать далее Пустые <ид> и <идкаталог> при обмене заказами, созданными через D7 API Bitrix

RetailCRM теперь дружит с 1С Управление торговлей!

Урра, мы долго ждали, но вот оно!

RetailCRM теперь позволяет выгружать заказы в 1С и загружать номенклатуру обратно.

Кратко об основных возможностях шаблонной интеграции:

  1. Передача заказов из системы в 1С.
  2. Настраивается синхронизация остатков и цен в 1С и в системе в разрезе складов.
  3. Настраивается выгрузка каталога товаров из 1С в систему.

Вы можете скачать готовый интеграционный модуль 1С по ссылке.

Более подробно об интеграции с 1С можете посмотреть в нашем видео по ссылке.

При индивидуальной настройке открывается намного больше возможностей. Например:

  1. Двусторонняя синхронизация заказов, клиентов и номенклатуры.
  2. Автоматическое создание документов отгрузки и перемещения.

То есть в 1С присутствует документ «Заказ клиента», который предназначен для регистрации договоренности с клиентом на поставку определенного перечня номенклатуры, определяет порядок и сроки оплаты. В зависимости от настроек программы 1С и от варианта обеспечения, товар либо резервируется из свободного остатка на складе, либо резервируется к дате доставки, либо не резервируется и не планируется к обеспечению.

Важно: Данный документ не списывает товар с остатков. Товар списывается только после продажи. Читать далее RetailCRM теперь дружит с 1С Управление торговлей!

Статусы отмены заказа Bitrix и RetailCRM

В RetailCRM мы можем отменить заказ не только указав комментарий, но и выбрав соответствующий статус, т.е.

  • Не выкуплен
  • Отменен
  • Не нравится доставка
  • Не нравится цена
  • Нет в наличии
  • Уже купил пока мы тормозили
  • Не сошлись командой по футболу

Читать далее Статусы отмены заказа Bitrix и RetailCRM

Все службы undefined в Яндекс.Доставка RetailCRM

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

В модуле ЯД в Битрикс все обрабатывается нормально, т.е. покупатель может выбрать ПВЗ и все, что угодно, но в модуле RetailCRM все службы доставки стали indefined.

В службе технической поддержки порекомендовали обратить внимание на город склада, он у нас был в Мос. Обл. г. Электроугли.

Яндекс же не полюбил такой склад. Пришлось выставить Москву, и все заработало. Посмотрим чем черевато.