Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

[Dúvida] Inserção de produtos através da API do Magento
 
nandoofz
Jr. Member
 
Total Posts:  2
Joined:  2013-02-05
 

Olá! Estou participando de um projeto onde precisamos fazer a inserção de vários produtos no banco do magento através de um script.

O script php que montei faz a inserção de somente 1 produto, se eu colocá-lo dentro de uma repetição não funciona! Não tenho muito conhecimento na API do magento, logo não consigo resolver o problema e tudo o que pesquiso é informação antiga e não se aplica ao meu problema =/

Outra dúvida é em relação ao tempo de processamento da API, li em um fórum que é muito demorado fazer a inserção massiva de produtos e que era um bug da versão e que numa futura isto seria resolvido, porém esse post é de 2009, logo a versão que estou usando já é bem mais atual (1.6.1.0) e não sei se ainda ocorre o mesmo problema.

Espero que alguém possa me ajudar!

Segue a função de inserção que fiz:

<?php

function insertStock($encode) {
$produtos = base64_decode($encode);
$array = explode(";", $produtos);
$products = array((count($array) - 1));

for ($i = 0; $i < (count($array) - 1); $i++) {
$auxiliar = explode("\t", $array[$i]);
$idProduto = explode(":", $auxiliar[0]);
$nomeProduto = explode(":", $auxiliar[1]);
$preco = explode(":", $auxiliar[2]);
$qtdEstoque = explode(":", $auxiliar[3]);

$products[$i] = Mage::getSingleton('catalog/product');
$products[$i]->setStoreId("default");
$products[$i]->setAttributeSetId(4);
$products[$i]->setWebsiteIds(array(1));
Mage::register('product', $products[$i]);
Mage::register('current_product', $products[$i]);
$products[$i]->setTypeId('simple');
$products[$i]->addData(prepareParam($idProduto[1], $nomeProduto[1], $qtdEstoque[1], $preco[1]));
Mage::dispatchEvent('catalog_product_prepare_save', array('product' => $products[$i]));
$products[$i]->save();
}
}

function prepareParam($idProduto, $nomeProduto, $qtdEstoque, $preco) {
$key = md5(time());
$customer = Mage::getSingleton('customer/session')->getCustomer();
$request = array
(
'created_by' => ($customer && $customer->getId() ? $customer->getId() : ''),
'category_ids' => ',2,22,22',
'name' => $nomeProduto,
'description' => $Message,
'sku' => $idProduto,
'weight' => '1',
'status' => '1',
'url_key' => $key,
'visibility' => '4',
'price' => $preco,
'stock_data' => array
(
'use_config_manage_stock' => '1',
'qty' => $qtdEstoque,
'use_config_min_qty' => '1',
'use_config_min_sale_qty' => '1',
'use_config_max_sale_qty' => '1',
'is_qty_decimal' => '0',
'use_config_backorders' => '1',
'use_config_notify_stock_qty' => '1',
'is_in_stock' => '1',
),
);
return $request;
}

?>

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top