Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.59 KB | None | 0 0
  1. <?
  2. /*
  3. Очистка корзин пользователей
  4. */
  5. CModule::IncludeModule("sale");
  6. CModule::IncludeModule("catalog");
  7. CModule::IncludeModule("user");
  8. $rsUsers = CUser::GetList(); // выбираем пользователей
  9. $rsUsers->NavStart(50); // разбиваем постранично по 50 записей
  10. while($rsUsers->NavNext(true, "f_")) :
  11. if (CSaleBasket::DeleteAll($f_ID, False))
  12. echo "Корзина пользователя с внутренним кодом успешно удалена";
  13. endwhile;
  14.  
  15. /*
  16. Рассылка
  17. */
  18. CModule::IncludeModule("sale");
  19. CModule::IncludeModule("iblock");
  20.  
  21. //выборка сегодняшних выполненных заказов
  22. $orderTable = Bitrix\Sale\OrderTable::getList(array(
  23. 'select' => array('ID', 'USER_ID'),
  24. 'filter' => array(
  25. "STATUS_ID" => array("F"), //статус выполнен
  26. ">=DATE_INSERT" => date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")),
  27. mktime(0, 0, 0, date("n"), date("j"), date("Y"))
  28. )//за сегодня
  29. ),
  30. ));
  31. if (!empty($orderTable)) {
  32. //заполнение ID заказов
  33. $orderID = array();
  34. while ($order = $orderTable->fetch()) {
  35. $orderID[$order["USER_ID"]][] = $order["ID"];
  36. }
  37. if (!empty($orderID)) {
  38. //соотношение USER-Товар
  39. $userProd = array();
  40. foreach ($orderID as $key => $val) {
  41. $basket = \Bitrix\Sale\Basket::getList(
  42. array(
  43. 'select' => array('PRODUCT_ID'),
  44. 'filter' => array('ORDER_ID' => $val),
  45. )
  46. );
  47. while ($item = $basket->fetch()) {
  48. $userProd[$key][] = $item["PRODUCT_ID"];
  49. }
  50. }
  51.  
  52. foreach ($userProd as $key => $val) {
  53. $uniqVal = array_unique($val);
  54. $reviews = CIBlockElement::GetList(
  55. array(),
  56. array(
  57. 'IBLOCK_ID' => \Oneway\Constants::REVIEWS_IBLOCK_ID,
  58. 'PROPERTY_PRODUCT' => $uniqVal,
  59. ),
  60. false,
  61. false,
  62. array(
  63. "PROPERTY_PRODUCT",
  64. "PROPERTY_USER_ID"
  65. )
  66. );
  67. while ($item = $reviews->fetch()) {
  68. if ((in_array($item["PROPERTY_PRODUCT_VALUE"], $uniqVal))
  69. &&($item["PROPERTY_USER_ID_VALUE"] == $key)){
  70. echo $item["PROPERTY_PRODUCT_VALUE"]."-One review\r";
  71. }
  72. }
  73. }
  74. }
  75. }
  76.  
  77. /*
  78. MAX-MIN
  79. */
  80. CModule::IncludeModule("iblock");
  81. \CModule::IncludeModule("catalog");
  82. $arSelect = Array("ID","IBLOCK_ID", "PROPERTY_*");//IBLOCK_ID и ID обязательно должны быть указаны, см. описание arSelectFields выше
  83. $arFilter = Array("IBLOCK_ID"=>IntVal(\Oneway\Constants::IBLOCK_CATALOG), "ACTIVE"=>"Y");
  84. $res = CIBlockElement::GetList(Array(), $arFilter, false,false, $arSelect);
  85. while($ob = $res->GetNextElement()){
  86. $arFields = $ob->GetFields();
  87. $arProp =$ob->GetProperties();
  88. // ID инфоблока товаров
  89. $ID = $arFields["ID"];
  90. $arInfo = CCatalogSKU::GetInfoByProductIBlock(\Oneway\Constants::IBLOCK_CATALOG);
  91.  
  92. if (is_array($arInfo)) {
  93. $resultASC = CIBlockElement::GetList(
  94. array("PRICE"=>"asc"),
  95. array('IBLOCK_ID'=>$arInfo['IBLOCK_ID'], 'ACTIVE'=>'Y', 'PROPERTY_'.$arInfo['SKU_PROPERTY_ID'] => $ID),
  96. false,
  97. array("nTopCount"=>1),
  98. array('ID', 'NAME'))
  99. ->GetNext();
  100. if ($resultASC){
  101. $max = GetCatalogProductPrice($resultASC["ID"], 1);
  102. }
  103. $mystring = $max['PRICE'];
  104. $parts = explode(".", $mystring);
  105. CIBlockElement::SetPropertyValues($ID, IntVal(\Oneway\Constants::IBLOCK_CATALOG), $parts[0], "MAX_PRICE");
  106. CIBlockElement::SetPropertyValues($ID, IntVal(\Oneway\Constants::IBLOCK_CATALOG), $parts[0], "MIN_PRICE");
  107. if ($arProp["TSENASOSKIDKOY"]["VALUE"] == 0){
  108. CIBlockElement::SetPropertyValues($ID, IntVal(\Oneway\Constants::IBLOCK_CATALOG),$parts[0], "SORT_PRICE");
  109. } else {
  110. CIBlockElement::SetPropertyValues($ID, IntVal(\Oneway\Constants::IBLOCK_CATALOG),$arProp["TSENASOSKIDKOY"]["VALUE"], "SORT_PRICE");
  111. }
  112. }
  113.  
  114. }
  115.  
  116. /*
  117. цвет фильр оттенок
  118. */
  119. CModule::IncludeModule('highloadblock');
  120. CModule::IncludeModule("iblock");
  121. CModule::IncludeModule("catalog");
  122. use Bitrix\Highloadblock as HL;
  123. $arSelect = Array("ID", "PROPERTY_TSVET");
  124. $arFilter = Array("IBLOCK_ID"=>IntVal(\Oneway\Constants::IBLOCK_OFFERS), "ACTIVE"=>"Y");
  125. $res = CIBlockElement::GetList(Array(), $arFilter, false,false, $arSelect);
  126. while($ob = $res->GetNextElement()){
  127. $arFields = $ob->GetFields();
  128. $ID = $arFields["ID"];
  129. $VAL = $arFields['PROPERTY_TSVET_VALUE'];
  130. $hlblock = Bitrix\Highloadblock\HighloadBlockTable::getList(array("filter" => array("ID" => \Oneway\Constants::HLBLOCK_COLORS)))->fetch();
  131.  
  132. if ($hlblock)
  133. {
  134. $entity = HL\HighloadBlockTable::compileEntity($hlblock);
  135. $entity_data_class = $entity->getDataClass();
  136. $rsPropData = $entity_data_class::getList(array('filter' => array('=UF_XMLID' => $VAL)));
  137. while ($arPropData = $rsPropData->fetch())
  138. {
  139. CIBlockElement::SetPropertyValues($ID, IntVal(\Oneway\Constants::IBLOCK_OFFERS), $arPropData['UF_TIPTSVETA'], "TIPTSVETA");
  140. }
  141.  
  142. }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement