Создание скидки для emarket-а с помощью API
Материал из Umicms
Актуально для версии 2.9.6
Задача: Средствами API UMI.CMS добавить скидку
Реализация:
В данной статье будет рассмотрен пример кода для создание скидки в модуле Интернет-магазин (emarket). В качестве примера будет создана скидка со следующими параметрами:
Тип: На товары каталога
Модификатор цены: Процент от суммы
Правила валидации: На пользователей
Код stanalone скрипта:
include './standalone.php';
$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();
}