Prestashop 1.6 development
Son métodos de utilería dentro de prestashop. Tools.php
Tools:getValue(): Obtiene un valor del request.
Tools::getIsset() : Determina si una variable está definida y no es NULL.
if (Tools::getIsset($var)) {
echo "Esta variable está definida y no es NULL";
}
Métodos para validaciones comunes Validate.php
Validate::isLoadedObject: Indica si la variable es un objeto y si existe en la bd (verificando si su id tiene valor).
Guarda parámetros de configuración en la base de datos de prestashop (tabla ps_configuration
) sin hacer uso de SQL.
Configuration::get('VAR_NAME'): obtiene el valor de una variable. Configuration::updateValue('VAR_NAME', 'value');: actualiza el valor de una variable
http://doc.prestashop.com/display/PS16/Developer+Guide
Logger::addLog("something",1);
PrestaShopLogger::addLog("something",1);
El log es guardado en la base de datos, en la tabla log (con el prefijo actual)
$id_cart = $this->context->cart->id;
ObjectModel: ActiveRecord es un patrón de diseño que sirve para relacionar una fila de una tabla de una base de datos con un objeto, prestashop implementa este patrón de diseño a través de la clase ObjectModel.php. Esta mecánica no trabaja como hibernate, aquí es necesario invocar explicitamente los métodos para guardar el registro.
Referencia a detalle: http://blog.belvg.com/objectmodel-activerecord-in-prestashop.html
El archivo php del módulo debe tener el mismo nombre que el módulo y debe estar en la carpeta raíz del módulo.
Todo módulo debe extender de la clase Module
.
El método getContent()
Indica el contenido que se mostrará cuando el usuario presione en configurar módulo.
Controlador para una página del backoffice (para módulos).
controller: module/controllers/admin/mycontroller.php
template: module/views/templates/admin/mycontroller.tpl
sin embargo aquí casi no se utilizan templates, se reutilizan las vistas del backoffice por lo tanto se crean las vistas desde el mismo controlador.
invocación: http://domain/index.php?fc=module&module=mymodule&controller=mycontroller
renderForm()
: Esta función genera un form para agregar/editar.
renderList()
: Esta función genera una lista de resultados.
Controlador para una página del frontend (para módulos)
controller: module/controllers/front/mycontroller.php
template: module/views/templates/front/mycontroller.tpl
nombre de la clase controller: modulename+controllername+ModuleFrontController extends ModuleFrontController
Invocación: http://domain/module/modulename/controllername
invocación2: http://domain/index.php?fc=module&module=modulename&controller=controllername
En prestashop, por lo regular el template y el controlador tienen el mismo nombre como buena práctica, sin embargo esto es opcional. Para indicar el template del controlador hay que invocar desde el controlador el método $this->setTemplate('template_name.tpl')
.
Prestashop 1.6 developer guide
Esta pagina contiene en el menú izquierdo conceptos básicos de prestashop explicados fácilmente.
#Conceptos
Cart=Carrito de compras.
Order= Se refiere a un pedido, está ligado a un carrito. La orden se debe crear en el momento en que el gateway responda con un status para evitar descontar cosas del stock antes de que la pasarela conteste.
#Pagos
Configuration::get('PS_OS_ERROR'): error
Configuration::get('PS_OS_CANCELED'): cancelado
Cuando se genera un pedido, el status de error y cancelado NO descuentan productos del stock ni envían el correo electrónico de confirmación. Cualquier otro status sí envía el correo electrónico de confirmación, el correo electrónico asociado al status (BackOffice/Pedidos/Unidos), y descuenta los productos del carrito del stock. El descuento de los productos del carrito parece que es el comportamiento normal ya que se deben apartar dichos productos para el usuario para cuando se apruebe su compra, si el administrador desde el backoffice cambia el status a cancelado o erroneo, los productos regresarán automáticamente al stock.
Cuenta con la función validateOrder la cual descuenta el producto del stock y envía el mail de confirmación.
When an order is placed in Prestashop, the data in entered in a few database tables.
ps_orders : Has the data regarding to the order like cart id, customer id, addresses ids, language in which order is placed, module which is used for payment and total order amount etc etc.
ps_order_detail: This table has all the products for a particular order.
ps_order_history: This table has the order statuses history. Whenever order status is changed, an entry is made here.