Prestashop 1.6 Webservices:如何获取产品的附件?



http://doc.prestashop.com/display/PS16/Web+service+reference 没有列出任何"附件"或"product_attachments"等资源。此外,由于列表中存在的相应资源,我已经测试了获取产品,产品不包含附件的任何引用 ID,以 JSON 格式命名附件对象。

那么如何获取产品附件呢?至少可能吗?

它没有,或者至少我可以找到它。

您可以通过覆盖核心Product类来添加它。

  1. 添加新方法

    public function getWsProductAttachments()
    {
    $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(
    'SELECT pa.`id_attachment` AS id, a.file, a.file_name
    FROM `' . _DB_PREFIX_ . 'product_attachment` pa
    LEFT JOIN `' . _DB_PREFIX_ . 'attachment` a ON (a.id_attachment = pa.id_attachment)
    ' . Shop::addSqlAssociation('attachment', 'a') . '
    WHERE pa.`id_product` = ' . (int) $this->id
    );
    return $result;
    }
    
  2. 将下一个元素添加到$webserviceParameters['associations']属性:

    'attachments' => array(
    'resource' => 'product',
    'api' => 'products',
    'getter' => 'getWsProductAttachments',
    'fields' => array(
    'id' => array('required' => true),
    'file' => array(),
    'file_name' => array(),
    ),
    ),
    

现在,您的products/{id}请求将返回类似

<attachments nodeType="product" api="products">
<product>
<id><![CDATA[1]]></id>
<file><![CDATA[cc046998a333a9bffaa23ce292f2da43edb37065]]></file>
<file_name><![CDATA[bbb.yml]]></file_name>
</product>
<product>
<id><![CDATA[2]]></id>
<file><![CDATA[b04566afd74cdaa54c921c8907c7efd489a2eec0]]></file>
<file_name><![CDATA[aaa.csv]]></file_name>
</product>
</attachments>

您可以下载附件,例如my.shop/download/cc046998a333a9bffaa23ce292f2da43edb37065

相关内容

  • 没有找到相关文章

最新更新