Создание скидки для emarket-а с помощью API
Материал из Umicms
В данной статье будет рассмотрен пример кода для создание скидки в модуле Интернет-магазин (emarket). В качестве примера будет создана скидка со следующими параметрами:
Тип: На товары каталога
Модификатор цены: Процент от суммы
Правила валидации: На пользователей
Сам код:
$objects = umiObjectsCollection::getInstance(); $objectTypes = umiObjectTypesCollection::getInstance(); // процент скидки $percent = 20; // object_id пользователя $user_id = 2873; $name_discount = "newDiscount"; $typeIdDiscount = $objectTypes->getBaseType("emarket", "discount"); $newDiscount = $objects->addObject($name_discount, $typeIdDiscount); $newDiscountObject = $objects->getObject($newDiscount); if($newDiscountObject instanceof umiObject) { // 27131 - object_id элемента справочника "Тип скидки" - "На товары каталога" $discount_type_id = $objects->getObject(27131); $newDiscountObject->setValue('discount_type_id', $discount_type_id); // 768 - id типа данных "Процен от суммы заказа", дочерний по отношению к "Модификаторы цены скидок" $modif_id = $objects->addObject('',768); $mod_object = $objects->getObject($modif_id); $mod_object->setValue('proc', $percent); // 27136 - object_id элемента справочника "Типы модификаторов скидок" - "Процент от суммы" $modificator_type_id = $objects->getObject(27136); $mod_object->setValue('modificator_type_id', $modificator_type_id); $mod_object->commit(); $newDiscountObject->setValue('discount_modificator_id', $mod_object); //798 - тип данных "На пользователей", дочерний по отношению к "Правила скидок" $rules_discount_id = $objects->addObject('user',798); $rules_discoun_object = $objects->getObject($rules_discount_id); //27397 - object_id элемента справочника "Типы правил для скидок" - "На пользователей" $rule_type_id = $objects->getObject(27397); $rules_discoun_object->setValue('rule_type_id', $rule_type_id); $object_user = $objects->getObject($user_id); $users[] = $object_user; $rules_discoun_object->setValue('users', $users); $rules_discoun_object->commit(); $rules_discount_id_arr[] = $objects->getObject($rules_discount_id); $newDiscountObject->setValue('discount_rules_id', $rules_discount_id_arr); $newDiscountObject->setValue('is_active', 1); $desc = $percent."%"; $newDiscountObject->setValue('description', $desc); $newDiscountObject->commit(); }
