2010-03-04 128 views
3

我是Magento的新手,并且正在使用他们的API。 我想问的是,是否可以通过API创建可下载的产品? 文档示例仅用于创建一个新的简单产品,如果使用API​​查看可下载产品的product.info,则看不到任何链接到分配给该产品的可下载文件的属性。如何通过Magento API创建可下载的产品?

任何帮助,将不胜感激,谢谢:)

回答

0

我们都是新来的Magento的文档是非常稀缺的和不完整的。

我建议你从产品模型中看看这种方法:setTypeInstance。 并进入此类Mage_Downloadable_Model_Product_Type

当您通过API创建产品时,唯一的问题是要找到正确的格式将此数据放入API所需的productData数组中。可能在你的阵列中,你需要这样的东西:

// this is speculation 
"type" => "downloadable", 
"download_path" => "url" 
2

现在的文档已经足够了解Magento SOAP API V1。

从创建SOAP API V1像例如一个产品:

$proxy = new SoapClient('http://magentohost/api/soap/?wsdl'); 
$sessionId = $proxy->login('apiUser', 'apiKey'); 
$filesPath = '/var/www/ws/tests/WebService/etc/Modules/Downloadable/Product/Link'; 
$downloadableProductId = 'downloadable_demo_product'; 

$items = array(
    'small' => array(
     'link' => array(
      'title' => 'Test file', 
      'price' => '123', 
      'is_unlimited' => '1', 
      'number_of_downloads' => '111', 
      'is_shareable' => '0', 
      'sample' => array(
       'type' => 'file', 
       'file' => 
       array(
        'filename' => 'files/test.txt', 
       ), 
       'url' => 'http://www.magentocommerce.com/img/logo.gif', 
      ), 
      'type' => 'file', 
      'file' => 
      array(
       'filename' => 'files/test.txt', 
      ), 
      'link_url' => 'http://www.magentocommerce.com/img/logo.gif', 
     ), 
     'sample' => array(
      'title' => 'Test sample file', 
      'type' => 'file', 
      'file' => array(
       'filename' => 'files/image.jpg', 
      ), 
      'sample_url' => 'http://www.magentocommerce.com/img/logo.gif', 
      'sort_order' => '3', 
     ) 
    ), 
    'big' => array(
     'link' => array(
      'title' => 'Test url', 
      'price' => '123', 
      'is_unlimited' => '0', 
      'number_of_downloads' => '111', 
      'is_shareable' => '1', 
      'sample' => array(
       'type' => 'url', 
       'file' => array(
        'filename' => 'files/book.pdf', 
       ), 
       'url' => 'http://www.magentocommerce.com/img/logo.gif', 
      ), 
      'type' => 'url', 
      'file' => array(
       'filename' => 'files/song.mp3', 
      ), 
      'link_url' => 'http://www.magentocommerce.com/img/logo.gif', 
     ), 
     'sample' => array(
      'title' => 'Test sample url', 
      'type' => 'url', 
      'file' => array(
       'filename' => 'files/image.jpg', 
      ), 
      'sample_url' => 'http://www.magentocommerce.com/img/logo.gif', 
      'sort_order' => '3', 
     ) 
    ) 
); 

$result = true; 
foreach ($items as $item) { 
    foreach ($item as $key => $value) { 
     if ($value['type'] == 'file') { 
      $filePath = $filesPath . '/' . $value['file']['filename']; 
      $value['file'] = array('name' => str_replace('/', '_', $value['file']['filename']), 'base64_content' => base64_encode(file_get_contents($filePath)), 'type' => $value['type']); 
     } 
     if ($value['sample']['type'] == 'file') { 
      $filePath = $filesPath . '/' . $value['sample']['file']['filename']; 
      $value['sample']['file'] = array('name' => str_replace('/', '_', $value['sample']['file']['filename']), 'base64_content' => base64_encode(file_get_contents($filePath))); 
     } 
     if (!$proxy->call(
      $sessionId, 
      'product_downloadable_link.add', 
      array($downloadableProductId, $value, $key) 
     ) 
     ) { 
      $result = false; 
     } 
    } 
} 

source link

,你可以添加自定义属性

from here