Magento agregar mediante programación de la imagen del producto

Tengo que crear un simple Magento 1.6.x agente de importación que suponga para crear/actualizar los productos y sus imágenes. Podría alguien aconsejarme cómo agregar imagen del producto sin tener que utilizar el magento API?

La api de rendimiento resultó ser muy buenos y estoy empezando a estar un poco frustrado.. 🙁

He encontrado algunas otras preguntas con respecto a este problema, pero ninguno de ellos se refiere a la adición de imágenes a la del producto.

Esto es lo que me vino con:

$product->setIsMassupdate(true)
    ->setExcludeUrlRewrite(true)
    ->setManufacturer($this->addManufacturers(utf8_encode($record[4])))
    ->setSku($record[3])
    ->setAttributeSetId($this->attribute_set)# 9 is for default
    ->setTypeId(Mage_Catalog_Model_Product_Type::TYPE_SIMPLE)
    ->setName(utf8_encode($record[5]))
    ->setCategoryIds($this->getCategories(array($record[0], $record[1], $record[2]))) # some cat id's,
    ->setWebsiteIDs(array(1)) # Website id, 1 is default
    ->setDescription(utf8_encode($record[6]))
    ->setShortDescription($this->shortText(utf8_encode($record[6]), 150))
    ->setPrice($price) # Set some price
    ->setSpecialPrice($special_price)
    ->setWeight($record[12])
    ->setStatus( Mage_Catalog_Model_Product_Status::STATUS_ENABLED )
    ->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH)
    ->setTaxClassId(2)     //default tax class
    ->setPixmaniaimg($record[10])
    ->setStockData(array('is_in_stock' => $inStock, 'qty' => $qty))
    ->setCreatedAt(strtotime('now'));

Alguien me puede ayudar con la adición de imágenes directamente sin necesidad de la API?

Gracias

Lukas

InformationsquelleAutor Bery | 2011-12-10

2 Kommentare

  1. 39

    Hice esto en Magento 1.6.1. Acaba de poner su URL de la imagen de rutas en la primera matriz y que son buenos para ir.

    También mirar Mage_Catalog_Model_Product a familiarizarse con addImageToMediaGallery() y otros métodos sin duda va a necesitar para tener en cuenta en el futuro.

    //Add three image sizes to media gallery
    $mediaArray = array(
        'thumbnail'   => $putPathHere,
        'small_image' => $putPathHere,
        'image'       => $putPathHere,
    );
    
    //Remove unset images, add image to gallery if exists
    $importDir = Mage::getBaseDir('media') . DS . 'import/';
    
    foreach($mediaArray as $imageType => $fileName) {
        $filePath = $importDir.$fileName;
        if ( file_exists($filePath) ) {
            try {
                $product->addImageToMediaGallery($filePath, $imageType, false);
            } catch (Exception $e) {
                echo $e->getMessage();
            }
        } else {
            echo "Product does not have an image or the path is incorrect. Path was: {$filePath}<br/>";
        }
    }
    • Hay alguna forma de crear las imágenes con magento? Se me ha proporcionado con sólo un tamaño de la imagen.
    • En primer lugar, usted necesita imágenes separadas? Magento permite establecer una sola imagen como miniatura, small_image, y el tamaño de la imagen si es necesario.
    • Ok. Necesito usar una o más imágenes (máximo de res imágenes por producto) y, a continuación, usar una base de la imagen, a continuación, small_image y miniatura. La imagen es siempre la misma (por ejemplo, image1.jpg es la base, small_image y miniatura).
    • Funcionó a la perfección. Gracias por tu ayuda.
    • si desea agregar más de tres imágenes, a continuación, sólo hacer $product->addImageToMediaGallery($extraFilePath, null, false);
    • Para Magento 2: magento.stackexchange.com/questions/140612/…

  2. 0
    set_time_limit(0);
    
    ini_set('memory_limit', '4095M');
    
    error_reporting(E_ALL);
    
    ini_set('display_errors', 1);
    
    require_once '../app/Mage.php';
    
    umask(0);
    
    Mage::setIsDeveloperMode(true);
    
    $storeID = Mage_Core_Model_App::ADMIN_STORE_ID;
    
    Mage::app()->setCurrentStore($storeID);
    
    
    
    $destination = Mage::getBaseDir() . '/import/images/' . $image;
    
    $product->addImageToMediaGallery($destination, array('image', 'thumbnail', 'small_image'), false, false);
    
    }

    De esta forma se establecerá la base de la imagen.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein