Post by blinbdn » Fri Feb 26, 2010 6:15 am

Hola a tod@s!!

he estado buscando en los foros y en internet si existe una contribución que, segun el fabricante, solo acepte un importe mínimo total, es decir que si de X fabricante no compras 1000 € en total(por ejemplo) no podrás comprar productos de Ese fabricante.

He encontrado en general, es decir precio minimo del pedido pero no por fabricante.

He intentado hacerlo yo pero no lo he conseguido.
Tengo agregada una columna nueva en la tabla "customers" con el precio minimo de cada fabricante.

Supongo que se deberá editar el \catalog\view\theme\default\template\checkout\confirm.tpl
pero la verdad, es que no se por donde empezar.

Muchas gracias por todo!

Newbie

Posts

Joined
Tue Oct 13, 2009 7:17 pm

Post by cofran » Fri Feb 26, 2010 6:38 am

la verdad que esta complicado che, y no dispongo de mucho tiempo para probar pero te doy una guía por donde empezar.

Tendrás que editar el archivo manufacturer.php del controlador del admin (controller (programación lógica de la aplicación)) como así también el mismo archivo de la carpeta model (base de datos) y por ultimo el TPL. Creo que todos estos archivos están dentro de la subcarpeta "catalog" del admin, según que versión de OC tengas

En la controller agregar una nueva variable "precio_minimo" en el model rescatar ese valor para guardarlo, actualizarlo en la BBDD y en el TPL tendrás que insertar un campo tipo input para llenar dicho valor ("precio_minimo" habíamos dicho).

Bueno eso es en cuanto al admin ahora vamos al catalogo.

Lo que no se si es conveniente hacerlo en el confirm.php o en el cart.php... yo creo que en el cart.php sería mejor porque estarías dejando llegar al final de la compra al usuario, pudiendo advertirle antes que dicha compra no se va a poder realizar por X motivo, entonce yo lo haría en el cart.php

Bueno acá sería editar lo mismo que arriba (controller, model, y el template TPL del archivo cart) Bueno básicamente sería recorrer los producto en el arrito, separarlos por fabricante y ver el precio total de cada fabricante, en el model deberías de comprobar esos valores si son correcto (según el mínimo permitido) y el TPL informar al usuario que los productos comprados al fabricante X no llegan al mínimo y no puede continuar, después con ajax podes desabilitar los botones de continuar o hacer alguna otra cosa para que no pueda seguir con el proceso de compra... la verdad, un lío!

User avatar
Active Member

Posts

Joined
Thu Oct 01, 2009 7:37 am
Location - Córdoba, Argentina

Post by blinbdn » Fri Feb 26, 2010 6:46 pm

Hey! muchisimas gracias, me quedó mucho más claro. Ahora mismo voy a ponerme manos a la obra a ver que tal sale.

Cualquier novedad la escribiré por aquí.

De nuevo muchas gracias, con gente como tú es un placer tratar.

GRAAACIAS!!

Newbie

Posts

Joined
Tue Oct 13, 2009 7:17 pm

Post by blinbdn » Fri Feb 26, 2010 8:54 pm

De momento lo del admin ya lo he hecho.

Tienes razón con lo de realizarlo en el cart. lo que pasa es que nose bien como trabaja el cart. porque no tiene model, si no que creo que usa el seo_url de alguna forma para que se almacene el carrito temporalmente.

No se como trabajar sobre el cart! que locura de sistema dios!

Newbie

Posts

Joined
Tue Oct 13, 2009 7:17 pm

Post by cofran » Fri Feb 26, 2010 9:41 pm

si, discúlpame el que lleva la lógica de eso es el archivo cart.php pero el que esta en la carpeta system\library para empezar a ver como hacer esto de comprobar que el mínimo este, guíate por el stock, como has visto o si no lo sabes que existe una advertencia dentro del checkout/cart que dice que el producto que estas por comprar puede que este fuera de stock... bueno fijate en este archivo cart.php de library como hace esta comprobación y utilízalo de guía para armar lo que necesitas.

Saludos y éxitos!

User avatar
Active Member

Posts

Joined
Thu Oct 01, 2009 7:37 am
Location - Córdoba, Argentina

Post by blinbdn » Fri Feb 26, 2010 9:47 pm

Buena idea!

Eres un crack.

Cualquier novedad te lo hago saber!

PD: cuando lo consiga lo subiré a modo de contribución. Ya lo estoy relatando paso por paso.

Graciassss O0

Newbie

Posts

Joined
Tue Oct 13, 2009 7:17 pm

Post by blinbdn » Fri Feb 26, 2010 9:54 pm

No se si es por la versión o que pero yo lo tengo en system/helper

Newbie

Posts

Joined
Tue Oct 13, 2009 7:17 pm

Post by cofran » Fri Feb 26, 2010 11:03 pm

entonces helper de la versión 1.3.2 para atrás imagino que será así desde la 1.3.4 ya esta en library estas cosas. Entonces en tu versión es la carpeta helper

lo que si vas a tener que editar es el archivo PRODUCT.PHP en catalog\model\catalog ahi esta la funcion getTotalProductsByManufacturerId podes usar esa misma para incluir lo del precio minimo o crearte un clon de esa funcion con otro nombre para poder pasarle por parámetro el total de la compra ($manufacturer_id = 0, $minimo) algo así

Saludos y esperamos ver esa contri ! ! ! !

User avatar
Active Member

Posts

Joined
Thu Oct 01, 2009 7:37 am
Location - Córdoba, Argentina

Post by blinbdn » Sat Feb 27, 2010 1:27 am

Pero amigo!

ese archivo trata bases de datos. Yo los datos los tengo recojidos.

En estos momentos tengo en el carrito una columna más donde indica el mínimo de compra por el fabricante de ese articulo.
Claro, lo que me gustaría añadir es un mensaje abajo, siempre que de un fabricante no se llegue al minimo:

"el fabricante X requiere un importe mínimo de Y euros."

y un mensaje en diferente linea por cada fabricante que no se llegue a su mínimo.

De momento solo me cuenta por artículo, es decir si tengo 4 Ipods a 100 € y el fabricante solicita 500 € de mínimo me dirá que no llega.
Pero claro si tengo otro artículo de la marca apple más abajo ypor ejemplo cuesta 1000€(así nos pasariamos del mínimo) sigue apareciendo, obviamente porque no recorre toda la lista de artículos que hay en el carrito.

De momento todo lo estoy haciendo en el tpl, ASACO jejeje. Es que estoy bastante verde de php (hace que no toco programación....buf)

Bueno despues de este parrafo tan largo, que opinas?

Newbie

Posts

Joined
Tue Oct 13, 2009 7:17 pm

Post by cofran » Sat Feb 27, 2010 2:10 am

lo mismo que hace un rato, si miras el archivo CART.PHP de catalog\controller\checkout verás que hace un $this->cart->getProducts() traer todos los productos que estén en el carrito necesitas algo que te extraiga los totales según la marca y que sepa no hay una función que lo haga

User avatar
Active Member

Posts

Joined
Thu Oct 01, 2009 7:37 am
Location - Córdoba, Argentina

Post by blinbdn » Sat Feb 27, 2010 10:28 pm

Conseguido! ;D

Lo que está todo (menos la parte del admin) hecho en el tpl. las consultas, inicialización de variables, etc.
No me llevo muy bien con el clm jeje.

Vamos a ver si llego a conseguir ponerlo un poco más "correcto y limpio".

Si lo consigo montar en controller / model / view correctamente lo subire. Si no, será una pena la verdad.

Gracias por todo amigo;)

Newbie

Posts

Joined
Tue Oct 13, 2009 7:17 pm
Who is online

Users browsing this forum: orejuelajorge and 102 guests