Це POST метод, який змінює config файл. Запит до нього потрібен мати body:
В body є 2 поля:
"body":{
"mails":{} //список способів доставки
"special_products": {}, //модифікатори ціни для спец.товарів
"pricefreedel": 500,
"opt_price": 30,
"opt_pricefreedel": 1000
}
pricefreedel – це параметр, що є числом(float|int), якщо вартість замовлення перевищує або дорівнює pricefreedel,
то доставка для кожної пошти дорівнює 0 (нуль).
opt_price - число(float|int), ціна доставки для всіх пошт, якщо наявний опт.
opt_pricefreedel - це параметр, що є числом(float|int), якщо вартість замовлення перевищує або дорівнює opt_pricefreedel
і це оптове замовлення, то доставка для кожної пошти дорівнює 0 (нуль).
opt_pricefreedel - це параметр, що є числом(float|int), якщо вартість замовлення перевищує або дорівнює opt_pricefreedel
і це оптове замовлення, то доставка для кожної пошти дорівнює 0 (нуль).
Пошти в mails додаються як асоціативні масиви. Приклад однієї пошти зі списку mails:
"postmat": { // назва потрібна тільки для вас str
"id" : 1, //id доставки int
"message" : "", //повідомлення str
"genweight":null, //параметри доставки
"genvolume":null,
"maxweight":25,
"maxvolume": 100,
"maxdimweight": null,
"maxside":64,
"maxsidesum": 145,
"price": 80 //вартість доствки float|int
}
Приклад списку модифікаторів ціни для спеціальних товарів знаходяться в special_products:
"special_products": {
"pool" : {
"1" : {
"id": 1,
"maxweight": 30,
"price": 17
},
"2" : {
"id": 2,
"maxweight": 50,
"price": 40
},
"3" : {
"id": 3,
"maxweight": 70,
"price": 60
},
"4" : {
"id": 4,
"maxweight": null,
"price": 80
}
},
"sand" : {
"1" : { "id": 1, "maxweight": 25, "price": 20 },
"2" : { "id": 2, "maxweight": 50, "price": 40 },
"3" : { "id": 3, "maxweight": 75, "price": 60 },
"4" : { "id": 4, "maxweight": 100, "price": 80 },
"5" : { "id": 5, "maxweight": 200, "price": 115 },
"6" : { "id": 6, "maxweight": 300, "price": 150 },
"7" : { "id": 7, "maxweight": 400, "price": 160 },
"8" : { "id": 8, "maxweight": 500, "price": 170 },
"9" : { "id": 9, "maxweight": 700, "price": 180 },
"10" : { "id": 10, "maxweight": 800, "price": 220 },
"11" : { "id": 11, "maxweight": 900, "price": 238 },
"12" : { "id": 12, "maxweight": 1000, "price": 265 }
}
}
Таким чином ми змінюємо ціну доставок замовлень де є спец.продукти pool для всіх пошт залежно від критерія maxweight.
Примітка: умови перевіряються з першої до останньої, якщо умова спрацьовує то умови після неї не перевіряються.
special_products.sand має той самий формат, що й pool ({id, maxweight, price}), але працює інакше:
- застосовується лише для оптових замовлень (opt=1) і лише якщо order_price < opt_pricefreedel;
- ціна береться за сумарною вагою піску (перший тір, де вага ≤ maxweight) і ДОДАЄТЬСЯ
до ціни стандартного або ADR алгоритму (а не замінює її, як pool);
- якщо вага піску більша за maxweight останнього тіру (1000 кг), вона ділиться на шматки
по 1000 кг, кожен тарифікується окремо, результати сумуються (1350 кг = 265 + 160);
- перевізник (del_id) визначається окремими правилами для піску, а не з mails.
Приклад готового body:
"body":{
"mails": {
"postXXL": {
"id": 1,
"message": "message",
"genweight": null,
"genvolume": null,
"gendimweight": null,
"maxweight": null,
"maxvolume": null,
"maxdimweight": 100,
"maxside": null,
"maxsidesum": null,
"price": 100
},
"pikas": {
"id": 2,
"message": null,
"genweight": 100,
"genvolume": null,
"gendimweight": null,
"maxweight": null,
"maxvolume": null,
"maxdimweight": null,
"maxside": 180,
"maxsidesum": 0,
"price": 200
},
"inpost": {
"id": 3,
"message": null,
"genweight": null,
"genvolume": null,
"gendimweight": null,
"maxweight": 90,
"maxvolume": 0.9,
"maxdimweight": null,
"maxside": 120,
"maxsidesum": 220,
"price": 140
},
"postmat": {
"id": 4,
"message": null,
"genweight": null,
"genvolume": null,
"gendimweight": null,
"maxweight": 23,
"maxvolume": 100,
"maxdimweight": null,
"maxside": 64,
"maxsidesum": 145,
"price": 80
},
"pickup": {
"id": 6,
"message": null,
"genweight": null,
"genvolume": null,
"gendimweight": null,
"maxweight": null,
"maxvolume": null,
"maxdimweight": null,
"maxside": null,
"maxsidesum": null,
"price": 0
}
},
"special_products": {
"pool" : {
"1" : {
"id": 1,
"maxweight": 30,
"price": 17
},
"2" : {
"id": 2,
"maxweight": 50,
"price": 40
},
"3" : {
"id": 3,
"maxweight": 70,
"price": 60
},
"4" : {
"id": 4,
"maxweight": null,
"price": 80
}
},
"sand" : {
"1" : { "id": 1, "maxweight": 25, "price": 20 },
"2" : { "id": 2, "maxweight": 50, "price": 40 },
"3" : { "id": 3, "maxweight": 75, "price": 60 },
"4" : { "id": 4, "maxweight": 100, "price": 80 },
"5" : { "id": 5, "maxweight": 200, "price": 115 },
"6" : { "id": 6, "maxweight": 300, "price": 150 },
"7" : { "id": 7, "maxweight": 400, "price": 160 },
"8" : { "id": 8, "maxweight": 500, "price": 170 },
"9" : { "id": 9, "maxweight": 700, "price": 180 },
"10" : { "id": 10, "maxweight": 800, "price": 220 },
"11" : { "id": 11, "maxweight": 900, "price": 238 },
"12" : { "id": 12, "maxweight": 1000, "price": 265 }
}
},
"pricefreedel": 5000,
"opt_price": 33,
"opt_pricefreedel": 1000
}
Параметри доставки в config Є такі параметри, як
weight - вага
volume - об’єм
dimweight - об’ємна вага (тільки max)
side - довжина найбільшої сторони (тільки max)
sidesum - сума сторін (тільки max)
Назви параметрів використовуються тільки з префіксами gen та max.
Префікс gen позначає спільний параметр для всього замовлення,
max позначає найбільшу величину параметру серед товарів в замовленні.
Самі параметри є float|int|null. Пошта є валідною для замовлення,
коли параметри замовлення не перевищують зазначених параметрів пошти.
Якщо параметр пошти дорівнює null, то у замовлення він може бути будь-яким,
він не враховується при обчисленні.
|