Esempio n. 1
0
 /**
  * @internal
  * @param BasketItem $basketItem
  * @param $moduleId
  * @param $productId
  * @param array $properties
  *
  * @return BasketItem|bool
  */
 public static function getExistsItemInBundle(BasketItem $basketItem, $moduleId, $productId, array $properties = array())
 {
     if (!$basketItem->isBundleParent()) {
         return null;
     }
     if (($bundleList = $basketItem->getBundleCollection()) && count($bundleList) > 0) {
         /** @var BasketItem $bundleBasketItem */
         foreach ($basketItem->getBundleCollection() as $bundleBasketItem) {
             if ($bundleBasketItem->getField('PRODUCT_ID') != $productId || $bundleBasketItem->getField('MODULE') != $moduleId) {
                 continue;
             }
             if (!empty($properties) && is_array($properties)) {
                 /** @var BasketPropertiesCollection $basketPropertyCollection */
                 $basketPropertyCollection = $bundleBasketItem->getPropertyCollection();
                 if ($basketPropertyCollection->isPropertyAlreadyExists($properties)) {
                     return $bundleBasketItem;
                 }
             } else {
                 return $bundleBasketItem;
             }
         }
     }
     return null;
 }
Esempio n. 2
0
 protected static function setProviderTrustData(BasketItem $item, Order $order, array $data)
 {
     if (empty($data)) {
         return false;
     }
     Provider::setTrustData($order->getSiteId(), 'sale', $item->getProductId(), $data);
     if ($item->isBundleParent()) {
         if ($bundle = $item->getBundleCollection()) {
             /** @var \Bitrix\Sale\BasketItem $bundleItem */
             foreach ($bundle as $bundleItem) {
                 $bundleItemData = $bundleItem->getFields()->getValues();
                 Provider::setTrustData($order->getSiteId(), 'sale', $bundleItem->getProductId(), $bundleItemData);
             }
         }
     }
     return true;
 }