Estás leyendo la publicación: Cómo comprobar si el producto tiene un precio especial en Magento 2
Uno de los enfoques más comunes que varias empresas intentan mejorar su cifra de ventas es ofrecer el descuento. Los propietarios de las tiendas Magento 2 generalmente incorporan los descuentos en los productos de la tienda al mostrar el precio real junto con el precio especial para atraer a los visitantes a comprar a precios reducidos. Después de la implementación, la página de inicio o página de categoría muestra el precio real como cancelado y el precio especial como el precio a pagar.
Cuando crea una página personalizada en Magento 2 para los productos y asigna el precio obtenido, asigna el precio real en lugar de los precios especiales, lo cual es incorrecto. entonces tienes que comprobar si el producto tiene precio especial en Magento 2 almacenar y asignar la misma a los productos. Aquí, se me ocurrió el código para comprobar si el producto tiene precio especial en Magento 2.
Métodos para comprobar si el producto tiene precio especial en Magento 2:
- Con administrador de objetos
- Método de bloque
Métodos para comprobar si el producto tiene precio especial en Magento 2:
-
Con administrador de objetos
create(‘Magento\Catalog\Model\Product’)->load($product_id); $precioorg = $_producto->getPrecio(); $precioespecial = $_producto->obtenerPrecioEspecial(); $fechaDesdeEspecial = $_producto->getEspecialDeFecha(); $especialtodate = $_producto->getSpecialToDate(); $hoy = hora(); if (!$precioespecial) $precioespecial = $precioorg; if ($precioespecial< $precioorg) { if ((es_null($fechaespecial) &&is_null($fechaespecial)) || ($hoy >= strtotime($especialfecha) &&is_null($especialfecha)) || ($hoy <= strtotime( $fechaespecial) &&is_null($fechaespecial)) || ($hoy >= strtotime($fechaespecial) && $hoy <= strtotime($fechaespecial))) { echo 'el producto tiene un precio especial'; } } ?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
18
19
$id_producto = 10; //ID del Producto
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$_producto = $objectManager->create(‘Magento\Catalog\Model\Product’)->load($product_id);
$precioorg = $_producto->getPrecio();
$precioespecial = $_producto->obtenerPrecioEspecial();
$fechaDesdeEspecial = $_producto->getEspecialDeFecha();
$especialtodate = $_producto->getSpecialToDate();
$hoy = hora();
if (!$precioespecial)
$precioespecial = $precioorg;
if ($precioespecial< $precioorg) {
if ((is_null($specialfromdate) &&is_null($specialtodate)) || ($hoy >= strtotime($specialfromdate) &&is_null($specialtodate)) || ($hoy <= strtotime($specialtodate) &&is_null($specialfromdate)) || ($hoy >= strtotime($specialfromdate) && $hoy <= strtotime($specialtodate))) {
echo ‘el producto tiene un precio especial’;
}
}
?>
-
Método de bloque
use Magento\Catálogo\Modelo\ProductFactory; $productFactory protegido; public function __construct(ProductFactory $productFactory) { $this->productFactory = $productFactory; } public function getIsSpecialPrice($productId){ $_product = $this->productFactory->create()->load($productId); $precioorg = $_producto->getPrecio(); $precioespecial = $_producto->obtenerPrecioEspecial(); $fechaDesdeEspecial = $_producto->getEspecialDeFecha(); $especialtodate = $_producto->getSpecialToDate(); $hoy = hora(); if (!$precioespecial) $precioespecial = $precioorg; if ($precioespecial< $precioorg) { if ((es_null($fechaespecial) &&is_null($fechaespecial)) || ($hoy >= strtotime($especialfecha) &&is_null($especialfecha)) || ($hoy <= strtotime( $fechaespecial) &&is_null($fechaespecial)) || ($hoy >= strtotime($fechaespecial) && $hoy <= strtotime($fechaespecial))) { return 1; } } devuelve 0; }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
18
19
20
21
22
23
24
25
26
27
28
use Magento\Catálogo\Modelo\ProductFactory;
$productFactory protegido;
public function __construct(ProductFactory $productFactory) {
$this->productFactory = $productFactory;
}
función pública getIsSpecialPrice($productId){
$_producto = $this->productFactory->create()->load($productId);
$precioorg = $_producto->getPrecio();
$precioespecial = $_producto->obtenerPrecioEspecial();
$fechaDesdeEspecial = $_producto->getEspecialDeFecha();
$especialtodate = $_producto->getSpecialToDate();
$hoy = hora();
if (!$precioespecial)
$precioespecial = $precioorg;
if ($precioespecial< $precioorg) {
if ((is_null($specialfromdate) &&is_null($specialtodate)) || ($hoy >= strtotime($specialfromdate) &&is_null($specialtodate)) || ($hoy <= strtotime($specialtodate) &&is_null($specialfromdate)) || ($hoy >= strtotime($specialfromdate) && $hoy <= strtotime($specialtodate))) {
devolver 1;
}
}
devolver 0;
}
¡Eso es todo!
Fácil de implementar y efectivo Traiga los precios especiales y muéstrelos con los productos en sus páginas personalizadas de Magento 2.
Una vez marcado, puede establecer precios especiales para productos en Magento 2.
¡Puedes mencionar cualquier duda en la sección de comentarios a continuación y lo resolveré lo antes posible!
Califica la publicación con 5 estrellas para apreciar los esfuerzos.
¡Feliz codificación!