Создание скидки для 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();
}