web-services - Web 服务添加/更新组合 Prestashop

标签 web-services combinations prestashop

我阅读、我尝试、我查看有关如何在 Presta 1.5.3 中通过网络服务添加/更新组合的信息,但我仍然不知道该怎么做。

有人可以帮助我吗?

最佳答案

通过 Web 服务将组合分配给产品是一个多步骤操作(与 CSV 导入不同)。

  • 给定一个带有 id_product 的产品
  • 添加产品选项(BO 属性名称)
  • 将 product_option_values(BO 属性值)添加到 product_options
  • 在指定 id_product 时添加组合

首先使用 DEBUG=true 初始化 PrestaShopWebservice:

$api = new PrestaShopWebservice($psShopUrl, $psAuthKey, $psDebug);

不是从头开始构建 XML,而是像这样为您需要的资源获取模板:

$sxml = $api->get(array('url' => $psShopUrl.'api/'.$resource.'?schema=blank'));

响应是一个比 DOM 更容易操作的 SimpleXMLElement。

注意:响应包含所有包装器节点,您必须在请求中发回相同的节点,即 PSWebServiceLibrary 不会为您重新创建它们。

<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<combination>
...
</combination>
</prestashop>

SXML 操作示例:

$schema = $api->get(array('url' => $psShopUrl.'api/product_options?schema=blank'));
$data = $schema->children()->children();
$data->is_color_group = false;
$data->group_type = $group_type;   // radio, select
$data->name->language[0] = 'attribute private name';
$data->public_name->language[0] = 'attribute public name';
$xml = $schema->asXML();    // all of it!
$ret = $api->add(array('resource' => 'product_options', 'postXml' => $xml));
$id_attribute_group = (int)$ret->children()->children()->id;    // save for next step

然后从上一步获取product_option_values 架构、设置数据和id_attribute_group。等等。

除了您将通过 id 获取资源然后编辑之外,更新是相同的:

$sxml = $api->get(array('resource' => $resource, 'id' => $id));
...
$ret = $api->edit(array('resource' => $resource, 'id' => $id, 'putXml' => $xml));

至于将多个 id 值添加到 combinations 资源中的 product_option_values 节点,您可以使用 array_push 快捷方式 []:

$data->associations->product_option_values->product_option_values[]->id = 123;
$data->associations->product_option_values->product_option_values[]->id = 456;

关于web-services - Web 服务添加/更新组合 Prestashop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14788800/

相关文章:

ruby-on-rails - 尝试从 ruby​​ 使用 Digest Auth 调用服务的错误请求

xcode - XE2 FireMonkey - 连接到 iOS 应用程序中的 Web 服务

通过 Jersey 发送请求时出现 javax.ws.rs.ProcessingException

php 从给定数组生成所有组合

python-3.x - 递归地从 N 中选择 K 个项目,直到为空

iphone - Ios Sharepoint 集成 [sharepoint 作为后端]

python - 使用随机数列表和所有简单的数学运算符计算所有可能的组合以达到给定目标

php - 如何在 prestashop Controller 中使用翻译?

php - 添加 jquery 时,即使使用文字标签,tpl 文件也不起作用

mysql - Prestashop mysql 导出旧数据