1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
<?php include $_SERVER['DOCUMENT_ROOT'] . "/standalone.php"; function getDiscountPrice($price, $percent) { $discount = $price * $percent / 100; return $price - $discount; } // Получаем тип объектов $typesCollection = umiObjectTypesCollection::getInstance(); $objectTypeId = $typesCollection->getBaseType('catalog', 'object'); // Здесь id объекта // Получаем объекты $objects = umiObjectsCollection::getInstance(); // фильтрация $sel = new umiSelection; $objectType = $typesCollection->getType($objectTypeId); $sel->addObjectType($objectTypeId); //Устанавливаем фильтр по типу данных $sel->addPropertyFilterNotEqual($objectType->getFieldId('sale_start'), NULL); $sel->addPropertyFilterNotEqual($objectType->getFieldId('sale_end'), NULL); //Получаем результаты $result = umiSelectionsParser::runSelection($sel); //Массив id объектов $total = umiSelectionsParser::runSelectionCounts($sel); //Количество записей foreach ($result as $key) { $object = $objects->getObject($key); $percent = $object->getValue('sale_percent'); $dateStart = $object->getValue('sale_start'); $dateEnd = $object->getValue('sale_end'); $price = $object->getValue('price'); $priceOld = $object->getValue('old_price'); $dateNow = new DateTime(); $dateNow = $dateNow->format('Y-m-d'); $needDiscount = ($dateNow >= $dateStart && $dateNow <= $dateEnd) ? true : false; if ($needDiscount) { // Ставим скидку if ($priceOld == 0) { $object->setValue('price', getDiscountPrice($price, $percent)); $object->setValue('old_price', $price); $object->commit(); } } else { // убираем скидку if ($priceOld != 0) { // если есть старая цена $object->setValue('price', $priceOld); $object->setValue('old_price', 0); $object->commit(); } } // Очищаем переменные unset($percent, $dateStart, $dateEnd, $price, $priceOld); } |
umi выборка, umi фильтрация, umi update, umi set, umi значение объекта