1
0
Fork 0
AutoPercenty2/edit/price_cal.py

46 lines
1.7 KiB
Python

def calculate_margin_and_price(inputs):
# 입력값 처리
tao_low_price = inputs["tao_low_price"]
tao_high_price = inputs["tao_high_price"]
delv_fee = inputs["delv_fee"]
packing_fee = inputs["packing_fee"]
ns_low_price = inputs["ns_low_price"]
ns_high_price = inputs["ns_high_price"]
plus_margin = 5000 # 기본값
# 계산 로직
ns_avg_price = (ns_low_price + ns_high_price) / 2
tao_cost = lambda price: price * 190 * 1.035
base_margin = lambda cost: cost * 0.12
def adjust_plus_margin_for_min_margin(seller_cost, mall_cost, selling_price):
nonlocal plus_margin
target_margin_rate = 22
while True:
final_margin = selling_price - (seller_cost + mall_cost)
final_margin_rate = (final_margin / selling_price) * 100
if final_margin_rate < target_margin_rate:
plus_margin += 100 # 더하기 마진 증가
selling_price = seller_cost + plus_margin + mall_cost
mall_cost = selling_price * 0.13
else:
break
return selling_price, final_margin_rate
seller_cost = tao_cost(tao_low_price) + delv_fee + packing_fee
mall_cost = seller_cost * 0.13
selling_price = seller_cost + plus_margin + mall_cost
selling_price, final_margin_rate = adjust_plus_margin_for_min_margin(seller_cost, mall_cost, selling_price)
# 결과 반환
results = {
"selling_price": selling_price,
"final_margin_rate": final_margin_rate,
"seller_cost": seller_cost,
"base_margin": base_margin(tao_cost(tao_low_price)),
"plus_margin": plus_margin,
"ns_avg_price": ns_avg_price
}
return results