Я установил модуль "1С-Рарус: Облачная касса" для битрикса, этот модуль передает данные заказа в кассу и при оплате клиентом заказа, на основе этих данных ему отправляется чек. В моем случае я столкнулся с тем, что он берет данные пользователя, который привязан к этому заказу, а у меня есть анонимный пользователь, который привязывается ко всем заказам, которые сделали незарегистрированные пользователи.
И естественно меня не устраивал тот факт, что чеки отправляются на почту этого анонимного пользователя, а не на ту, что указал незарегитрированный пользователь.
Я решил эту проблему следующим образом. Почта, которую оставляет незарегистрированный пользователь у меня хранится в свойстве заказа, поэтому в файле /bitrix/modules/rarus.onlinekkt/lib/Rarus/OnlineKkt/Orders.php в функции getOrderData() после строчек:
$result['email'] = $customerDataResult['EMAIL']; $result['phone'] = $customerDataResult['PERSONAL_PHONE'];
Я вставил такой код:
if($order->getUserId() == 124){ $propertyCollection = $order->getPropertyCollection(); //email $infoMailUser = $propertyCollection->getItemByOrderPropertyId(5); if($infoMailUser){ $result['email'] = $infoMailUser->getValue(); } //телефон $infoPhoneUser = $propertyCollection->getItemByOrderPropertyId(6); if($infoPhoneUser){ $result['phone'] = $infoPhoneUser->getValue(); } }
Строчкой if($order->getUserId() == 124){ я проверяю, что это тот пользователь, который мне нужен, как вы поняли у моего анонимного пользователя id равен 124
Строчкой $propertyCollection = $order->getPropertyCollection(); мы получаем свойства этого заказа
Строчкой $infoMailUser = $propertyCollection->getItemByOrderPropertyId(5); мы получаем свойство заказа в котором хранится почта незарегистрированного пользователя, в моем случае id этого свойства равен 5, после чего я таким же образом получаем номер телефона, который хранится в свойстве заказа с id равным 6
Надеюсь данный пример поможет вам решить вашу задачу, когда в кассу вам надо передавать не данные пользователя, а свойства заказа.