Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - smartweb

Страницы: [1]
1
Предполагаю, что нужно делать новый тип скидок, в который добавить товары, на которые не нужно делать скидки. Это, условно, будет называться "Скидка 20% от суммы заказа в 5000 р, где сумма заказа складывается только из тех товаров, которых нет в списке самой скидки"
а если товары подгружаются из 1С и их много? как думаете: не вариант ковырять .php файл и написать конструкцию перед расчётом скидки от заказа?

2
Всем привет.
Возник вопрос:
в системе добавлены 2 типа скидок:
1) 20% от суммы заказа в 5000 р
2) 30% на определённый товар "Сувенир"

При добавлении "обычных" товаров без скидок на сумму 5000 р и добавлении товара "Сувенир" скидки в корзине суммируются, т.е. UMI берёт 20% от суммы заказа, включая товар, который уже итак идёт с 30% скидкой.

Задача: при расчёте скидки на заказ не брать во внимание товар "Сувенир"( и вообще скидку на группу товаров) и его скидочную цену.

В каком направлении двигаться? начали ковыряться в /classes/modules/emarket/classes/discounts/discounts/OrderDiscount.php, но что-то не ясно пока что да как. Насколько я понимаю, нужно исправить функцию search

<?php
/**
* Скидка на заказ в интернет-магазине
*/
class orderDiscount extends discount {
/**
* Проверить, применима ли скидка к заказу $order
* @param order $order
* @return Boolean
*/
public function validate(order $order) {
$rules = $this->getDiscountRules();

$validateCount = 0;
foreach($rules as $rule) {
if($rule instanceof orderDiscountRule == false) {
continue;
}

if($rule->validateOrder($order) == false) {
return false;
}
$validateCount++;
}
return $validateCount > 0;
}


/**
* Найти наиболее подходящую скидку для заказа $order
* @param order $order заказ
* @return orderDiscount самая подходящая скидка для заказа $order
*/
public static function search(order $order) {
$cmsController = cmsController::getInstance();
$emarket = $cmsController->getModule('emarket');

if($emarket instanceof def_module == false) {
throw new coreException('Emarket module must be installed in order to calculate discounts');
}

$allDiscounts = $emarket->getAllDiscounts('order'); $discounts = array();
foreach($allDiscounts as $discountObject) {
$discount = discount::get($discountObject->id);
if($discount instanceof orderDiscount == false) continue;
if($discount->validate($order)) $discounts[] = $discount;
}

switch(sizeof($discounts)) {
case 0: return null;
default:
$orderPrice = $order->getOriginalPrice();
$maxDiscount = null; $minPrice = null;
foreach($discounts as $i => $discount) {
$price = $discount->recalcPrice($orderPrice);
if($price <= 0) continue;

if(is_null($minPrice) || $minPrice > $price) {
$minPrice = $price;
$maxDiscount = $discount;
}
}
return $maxDiscount;
}
}
};
?>


3
Всем привет!
Столкнулись с проблемой выгрузки заказов из UMI в 1С. Доставка выгружается как товар.
Служба заботы порекомендовала копаться в файле /xsl/export/ordersCommerceML20.xsl
Вот в этом блоке:
<xsl:template match="value" mode="delivery">
<xsl:variable name="price_delivery" select="." />
<xsl:if test="$price_delivery &gt; 0">
<Товар>
<Ид>
ORDER_DELIVERY
</Ид>
<Наименование>
Доставка заказа
</Наименование>
<БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">
шт
</БазоваяЕдиница>
<ЦенаЗаЕдиницу>
<xsl:value-of select="$price_delivery" />
</ЦенаЗаЕдиницу>
<Количество>
1
</Количество>
<Сумма>
<xsl:value-of select="$price_delivery" />
</Сумма>
<ЗначенияРеквизитов>
<ЗначениеРеквизита>
<Наименование>
ВидНоменклатуры
</Наименование>
<Значение>
Услуга
</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>
ТипНоменклатуры
</Наименование>
<Значение>
Услуга
</Значение>
</ЗначениеРеквизита>
</ЗначенияРеквизитов>
</Товар>
</xsl:if>
</xsl:template>
Ума не приложу, где взять шаблон тегов для типа номеклатуры УСЛУГА. Может быть просто поменять тег ТОВАР на УСЛУГА?
Заранее благодарен за наводку, куда копать.

4
Добрый день, уважаемые пользователи и эксперты, а также Админ!)
Столкнулись с такой проблемой: есть 2 домена на 1 ой коробке UMI Commerce 2.12.
Админ одного домена добавляет в фильтр новое наименование, например, Abc.
Админ другого домена добавляет в фильтр новое наименование, например, ZYX.
Конечный пользователь сайта обоих доменов в выпадающем списке видит и Abc и ZYX, а надо, чтобы на первом домене был виден фильтр только с позицией Abc, а на втором только ZYX.
Как это реализовать без jquery по id объекта?
Возможно есть перелинковка с id-админа, который в этот момент добавляет новое наименование?
Подскажите, в каком направлении двигаться! Буду крайне признателен!

5
Не сталкивался, но уточню такой момент.
Сам шаблон /content/mobile/index.tpl применяется, но он выводит только обвес дизайна, а в центральной части по прежнему выводится список товаров по шаблону /catalog/default.tpl ?

Если да, то попробуйте поместить новый шаблон для вывода товаров по адресу /content/mobile/catalog/default.tpl 
Даниил! Вопрос: как изменить шаблон корзины в мобильной версии? А то она выводится для общего сайта (обычная корзина). Мне например жутко неудобно работать с таблицами на разрешении 320px.
Неужели в папку /content/mobile/ надо добавить папку /emarket/ и иже с ними?

6
Доброе время суток, уважаемые форумчане!

Не подскажете. может кто сталкивался

Есть интернет магазин(TPL) выводится каталог товаров по шаблону /catalog/default.tpl 
Подключаю шаблон мобильной версии /content/mobile/index.tpl

А вот проблема в том, что вывод каталога в мобильной версии производится по тому же шаблону, что и в основной версии сайта.

Вопрос: можно ли как нибудь изменить шаблон для вывода каталога в мобильной версии сайта?

Спасибо!
Нужно присвоить отдельный шаблон для каталога, например, catalog.tpl.
А в папку /content/mobile/ засунуть изменённую версию catalog.tpl с любым другим макросом, который например подходит для мобильной версии.

Страницы: [1]