如何在Prestashop 1.6中通过Web服务设置制造商?

时间:2014-09-08 14:14:22

标签: prestashop prestashop-1.6

这似乎是一个愚蠢的问题,但我需要通过网络服务,我的产品,数量和制造商来设置。 网上没有关于此的文档。

当我通过网络服务将产品插入prestashop时,重要的是声明:

unset($resources->position_in_category);
unset($resources->manufacturer_name);
unset($resources->quantity);

只有这样,它才有效。 现在,我找到了一个设定数量的解决方案,但没有关于制造商。

有人能帮助我吗?

感谢。

1 个答案:

答案 0 :(得分:1)

获取制造商ID并在产品资源中,通过以下方式分配:

$resources-> id_manufacturer = MANUFACTURER_ID

按名称获取制造商ID的示例

function GetManufacturerID($name) {
    try {
        $webService = new PrestaShopWebservice($url, PS_WS_AUTH_KEY, DEBUG);
        $opt = array(
            'resource' =>'manufacturers',
            'display'  => '[id]',
            'filter[name]'  => $name);      
        $xml = $webService->get($opt);          
        return $xml->children()->children()->manufacturer->id;
    }   catch (PrestaShopWebserviceException $e)    {       
            $trace = $e->getTrace();
    }   
}

添加新制造商的示例

function AddManufacturer($manu_name) {  
    $webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
    $xml = $webService->get(array('resource' => 'manufacturers?schema=synopsis'));
    $resources = $xml->children()->children();
    $resources->name = $manu_name;  
    $resources->active = 1; 
    unset($resources -> link_rewrite);

    $webService->add(
        array(
        'resource' => 'manufacturers',
        'active' => array(),
        'postXml' => $xml->asXML()
        )
    );
}