2010-11-12 12 views
14

Estoy tratando de escribir un script que establezca un precio especial para un producto con un inicio y una fecha de finalización. Cuando ejecuto mi script, establece con éxito el precio especial, pero la fecha de inicio y finalización no se rellena en el panel de administración.Establecer precio especial de forma programática en Magento

El código Me postulo es el siguiente:

$product = Mage::getModel('catalog/product')->load(114912); 
$product->setSpecialPrice(($product->getPrice() * .90) ); 

$product->setSpecialFromDate('2010-11-01'); 
$product->setSpecialFromDateIsFormated(true); 

$product->setSpecialToDate('2010-11-30'); 
$product->setSpecialToDateIsFormated(true); 

$product->save(); 

¿Alguien sabe lo que estoy haciendo mal aquí?

+0

también quiero hacer esto. pero no sé dónde agregar este código, por favor, ayúdenme – DRAJI

+0

Este código está destinado a entrar en un script que vive fuera de Magento. Esta publicación de blog mía debería ayudarte a obtener esta configuración. http://overlycaffeinated.com/blog/2011/09/setting-up-your-magento-scripting-environment/ –

Respuesta

23

Acabo de probar su código en mi catálogo y funcionó con un pequeño ajuste.

Debe prestar atención a la tienda cargada; no está permitido actualizar ciertos campos de productos si el almacén ADMIN no está actualmente cargado (Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);).

<?php 

require_once('app/Mage.php'); 

Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); 

... 

$product->save(); 
?> 
+1

Muchas gracias. +50 para usted –

+0

Es impresionante ... ayúdeme mucho.upvote de Me –

+0

para magento2 -> '$ objectManager-> get ('Magento \ Store \ Model \ StoreManagerInterface') -> setCurrentStore ('admin');' – MageDev

0

Esto es sólo una suposición, pero ¿ha intentado pasar una marca de tiempo como time() y dejando fuera el setSpecialFromDateIsFormated(true)? Eso debería hacer que el modelo de backend lo vuelva a formatear de manera adecuada.

+0

Lo intenté y no funcionó. Gracias por la sugerencia, sin embargo. –

Cuestiones relacionadas