19.06.2024 12:16
Добрый день!
Нужно сделать акцию 4+1 только на некоторые папки.
https://olegon.ru/showthread.php?t=2...48wyv133957278
как в этой теме - действует на все товары.
Вариант через создание большого кол-ва акций где кол-во кратно 5 и для групп товаров- то при покупке например 6 товаров, акция уже не работает.
19.06.2024 16:56
Опишите поподробнее условия задачи.
Есть допустим 2 товара Х и 3 товара Y из "некоторых" папок и у них разная цена. Как должна работать акция?
Опять же, речь о количестве товаров или количестве позиций.
Очень мало информации.
20.06.2024 10:46
Цитата:
Shift Опишите поподробнее условия задачи.
Есть допустим 2 товара Х и 3 товара Y из "некоторых" папок и у них разная цена. Как должна работать акция?
Опять же, речь о количестве товаров или количестве позиций.
Очень мало информации.
Акция:
Под акцию попадают только определенные разделы. Если покупается 5 одинаковых товаров из раздела, то 5ый в подарок.
товары X, Y - из раздела со скидками, товар Z - это другой товар, на который не действует скидка

5 X и 3 Y и 5 Z- скидка идет только на товар X в размере 20% (1/5)

7 X и 4 Y и 6 Z- скдика идет только на X в размере 1/7

12 X и 7 Y и 10 Z- скдика идет на X в размере 1/6 и на Y 1/7

4 X и 4 Y и 10 Z- скдика нет
20.06.2024 13:42
Можно попробовать скидку на позицию из сценария:
Код:
function D(curpos)                           
{  
flag=0;
for (
curpos.ware.parent.index = 1;
curpos.ware.parent.index <=
curpos.ware.parent.count;
curpos.ware.parent.index++
)
{
if (curpos.ware.parent.code==КодГруппыТоваровСоскидками)
{
flag=1;
break;
}
}
if (flag==0) return 0;

warecode=curpos.ware.code;


n=5; //на пятый скидка
disc=100; //скидка 100%                    
num=0;
quantity=0;

position=frontol.currentDocument.position;
for (
position.index = 1;
position.index <=
position.count;
position.index++
)
{
if (position.ware.code==warecode)&&(position.index<curpos.index)
{
quantity=quantity+position.quantity; 
}
if (position.index==curpos.index)
{
curquantity=position.quantity-(n-quantity%n); 
if (curquantity>=0)
{
num=1+(curquantity-curquantity%n)/n;
}

}
}

return num*disc/curpos.quantity;
}
20.06.2024 15:53
Цитата:
Shift Можно попробовать скидку на позицию из сценария:
Код:
function D(curpos)                           
{  
flag=0;
for (
curpos.ware.parent.index = 1;
curpos.ware.parent.index <=
curpos.ware.parent.count;
curpos.ware.parent.index++
)
{
if (curpos.ware.parent.code==КодГруппыТоваровСоскидками)
{
flag=1;
break;
}
}
if (flag==0) return 0;

warecode=curpos.ware.code;


n=5; //на пятый скидка
disc=100; //скидка 100%                    
num=0;
quantity=0;

position=frontol.currentDocument.position;
for (
position.index = 1;
position.index <=
position.count;
position.index++
)
{
if (position.ware.code==warecode)&&(position.index<curpos.index)
{
quantity=quantity+position.quantity; 
}
if (position.index==curpos.index)
{
curquantity=position.quantity-(n-quantity%n); 
if (curquantity>=0)
{
num=1+(curquantity-curquantity%n)/n;
}

}
}

return num*disc/curpos.quantity;
}
оо! благодарю!
его в сценарии и выбираю скидку из сценария и указываю функцию D?
Часовой пояс GMT +3, время: 10:17.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.