Clarify single fixed separation fee of 10.000 COP for multi-item orders in app and web
This commit is contained in:
parent
3c5c67e4eb
commit
61803fe15a
@ -116,11 +116,13 @@ class CartBottomSheet : BottomSheetDialogFragment() {
|
||||
binding.tvShippingTotal.text = selectedCity.formattedShipping()
|
||||
binding.tvCartTotalAmount.text = format.format(total) + " COP"
|
||||
|
||||
val totalQty = items.sumOf { it.quantity }
|
||||
|
||||
if (requiresSeparation) {
|
||||
binding.tvLabelSeparation.text = "⚡ Separación (1er Pedido):"
|
||||
binding.tvSeparationAmount.text = "$ 10.000 COP"
|
||||
binding.tvBalanceDueAmount.text = format.format(balanceDue) + " COP"
|
||||
binding.tvSeparationBreakdown.text = "Separas tu pedido con $10.000 COP y cancelas el saldo restante (${format.format(balanceDue)} COP) en efectivo al recibir."
|
||||
binding.tvSeparationBreakdown.text = "Separas tu pedido ($totalQty ${if (totalQty > 1) "productos" else "producto"}) con solo $10.000 COP de separación fija (tarifa única para toda la orden) y cancelas el saldo restante (${format.format(balanceDue)} COP) en efectivo al recibir."
|
||||
binding.btnCartAction.text = "Pagar Separación ($10.000 COP)"
|
||||
binding.btnCartAction.backgroundTintList = android.content.res.ColorStateList.valueOf(
|
||||
androidx.core.content.ContextCompat.getColor(requireContext(), co.dripzone.app.R.color.drip_purple)
|
||||
@ -130,7 +132,7 @@ class CartBottomSheet : BottomSheetDialogFragment() {
|
||||
binding.tvLabelSeparation.text = "⭐ Separación (Cliente Frecuente):"
|
||||
binding.tvSeparationAmount.text = "$ 0 COP (Exento)"
|
||||
binding.tvBalanceDueAmount.text = format.format(total) + " COP"
|
||||
binding.tvSeparationBreakdown.text = "¡Cliente Frecuente! Pagas el 100% del pedido (${format.format(total)} COP) contraentrega al recibir en tu puerta."
|
||||
binding.tvSeparationBreakdown.text = "¡Cliente Frecuente! Pagas el 100% de tu pedido ($totalQty ${if (totalQty > 1) "productos" else "producto"} por ${format.format(total)} COP) contraentrega al recibir en tu puerta."
|
||||
binding.btnCartAction.text = "Enviar Pedido (100% Contraentrega)"
|
||||
binding.btnCartAction.backgroundTintList = android.content.res.ColorStateList.valueOf(
|
||||
androidx.core.content.ContextCompat.getColor(requireContext(), co.dripzone.app.R.color.accent_emerald)
|
||||
|
||||
@ -73,7 +73,10 @@ class OrderVerificationBottomSheet : BottomSheetDialogFragment() {
|
||||
CartManager.getSubtotal()
|
||||
}
|
||||
val total = subtotal + selectedCity.shippingCost
|
||||
val balanceDue = if (total > 10000.0) total - 10000.0 else 0.0
|
||||
val totalQty = if (isDirectProductOrder && directItem != null) directItem!!.quantity else CartManager.getItems().sumOf { it.quantity }
|
||||
val requiresDeposit = user.totalOrders == 0
|
||||
val depositAmount = if (requiresDeposit) 10000.0 else 0.0
|
||||
val balanceDue = if (total > depositAmount) total - depositAmount else 0.0
|
||||
|
||||
val format = NumberFormat.getCurrencyInstance(Locale("es", "CO")).apply {
|
||||
maximumFractionDigits = 0
|
||||
@ -81,7 +84,11 @@ class OrderVerificationBottomSheet : BottomSheetDialogFragment() {
|
||||
|
||||
binding.tvOrderSummaryCity.text = "Destino: ${selectedCity.name} (${selectedCity.formattedShipping()})"
|
||||
binding.tvOrderSummaryTotal.text = "${format.format(total)} COP"
|
||||
binding.tvOrderSummaryBreakdown.text = "Pago Contraentrega • Separas con $10.000 COP y cancelas ${format.format(balanceDue)} COP al recibir."
|
||||
if (requiresDeposit) {
|
||||
binding.tvOrderSummaryBreakdown.text = "Pago Contraentrega • Separas todo tu pedido ($totalQty ${if (totalQty > 1) "productos" else "producto"}) con $10.000 COP de separación fija y cancelas ${format.format(balanceDue)} COP al recibir."
|
||||
} else {
|
||||
binding.tvOrderSummaryBreakdown.text = "⭐ Cliente Frecuente: Pagas el 100% (${format.format(total)} COP) contraentrega al recibir tu paquete (Exento de separación)."
|
||||
}
|
||||
|
||||
binding.btnContinueToOtp.setOnClickListener {
|
||||
handleContinueToOtp()
|
||||
|
||||
@ -564,7 +564,7 @@ export default function CheckoutPage() {
|
||||
|
||||
<p className="text-[10px] text-neutral-400 pt-1 leading-relaxed">
|
||||
{isMandatoryDeposit
|
||||
? 'Para tu primer pedido aseguras el despacho con solo $10.000 COP vía Bold/Nequi y cancelas el saldo restante en efectivo al recibir tu paquete.'
|
||||
? `Para tu primer pedido aseguras el despacho de tu orden (${checkoutItems.reduce((acc, it) => acc + it.quantity, 0)} items) con una separación fija única de $10.000 COP vía Bold y cancelas el saldo restante en efectivo al recibir tu paquete.`
|
||||
: '¡Gracias por tu confianza! Como cliente frecuente, cancelas el 100% del pedido contraentrega al recibir.'}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@ -45,6 +45,7 @@ export const CartDrawer: React.FC<CartDrawerProps> = ({
|
||||
|
||||
if (!isOpen) return null;
|
||||
|
||||
const totalQuantity = cartItems.reduce((acc, item) => acc + item.quantity, 0);
|
||||
const subtotal = cartItems.reduce((acc, item) => acc + item.product.retailPrice * item.quantity, 0);
|
||||
const shippingCost = selectedCity.shippingCost;
|
||||
const totalAmount = subtotal + shippingCost;
|
||||
@ -232,10 +233,10 @@ export const CartDrawer: React.FC<CartDrawerProps> = ({
|
||||
<div className="bg-white/5 border border-white/10 rounded-xl p-2.5 text-xs space-y-1">
|
||||
<p className="font-bold text-white flex items-center gap-1">
|
||||
<Zap className="w-3.5 h-3.5 fill-white" />
|
||||
Separación con $10.000 COP (1er Pedido)
|
||||
Separación fija de $10.000 COP (1er Pedido)
|
||||
</p>
|
||||
<p className="text-slate-300 text-[11px]">
|
||||
Separas con <strong>$10.000 COP</strong> y cancelas el saldo restante (<strong>{formatCOP(Math.max(0, totalAmount - 10000))}</strong>) en efectivo o transferencia al recibir en tu puerta.
|
||||
Separas tu pedido completo ({totalQuantity} {totalQuantity > 1 ? 'productos' : 'producto'}) con una tarifa única de <strong>$10.000 COP</strong> y cancelas el saldo restante (<strong>{formatCOP(Math.max(0, totalAmount - 10000))}</strong>) contraentrega al recibir en tu puerta.
|
||||
</p>
|
||||
<p className="text-[10px] text-emerald-400 font-semibold pt-0.5 border-t border-white/5">
|
||||
🛡️ {selectedCity.firstExchangeFree
|
||||
|
||||
Loading…
Reference in New Issue
Block a user