最近我使用prestashop创建了一个eshop网站
https://www.prestashop.com/en/
因为我要为它构建Android应用程序。应用程序中包含的内容只是一些基本功能
e.g。创建客户帐户/列表产品/订单产品/支付/查看订单等。常见的eshop功能...
问题是似乎周围的资源很少。是否有任何库/官方库/或者我需要从stratch开始创建API?
读 http://doc.prestashop.com/display/PS16/Developer+Guide有一段时间但不知道我到目前为止需要做什么。
这是一个相当抽象的问题,但由于社区不是那么受欢迎且资源有限,我希望这可以从对方的经验中学习,并帮助其他人提出相同的要求。
非常感谢您的帮助
答案 0 :(得分:8)
问题是似乎周围的资源很少。是否有任何库/官方库/或者我需要从stratch开始创建API?
与您的问题的评论之一相反,Prestashop 实际上提供了REST服务。在文档中,它是由" web服务"。
引用的快速链接:
有一些open source API implementations可用,但没有专门用于Android / Java。您可能会发现它们可用作指南。
需要注意的一些事项:
默认情况下,Web服务功能似乎已禁用。因此,为了使用它,您必须首先在后台启用它。复制自文档:
启用网络服务功能
进入PrestaShop后台,打开" Webservice"页面下 "高级参数"菜单,然后选择"是"对于"启用 PrestaShop的网络服务"。保存您的更改:您已完成!
与Web服务通信需要API密钥。您必须再次使用后台办公室为您的Android应用生成一个:
创建访问密钥
打开" Webservice" "高级下的页面 参数"菜单,然后单击"添加新的"按钮访问 帐户配置部分。出现一个长形式:
- 的键即可。 API密钥 作为您的Web服务帐户的主要标识符 创建。点击"生成"按钮以获得唯一身份验证 键。您也可以创建自己的(必须长度为32个字符), 但使用生成的密钥可以防止错误的行为者猜测您的密钥 太容易了使用此密钥,您和其他选定的用户将能够使用此密钥 访问Web服务。
密钥说明。帮助你记住你是谁 创建了该密钥,分配给它的访问权限等等。 描述不公开,但请确保放置所有关键字 与用户有关,以便您可以更快地找到他们的密钥。
状态即可。您可以随时禁用任何密钥。
- 的权限即可。这个部分 非常重要,因为它使您可以为每个分配权限 您希望为此密钥提供的资源。的确,你可能会 希望用户对某些资源具有读写权限,但仅限于此 读取他人的访问权限 - 并且无法访问更重要的访问权限。在 权限列表,左侧最复选框使您可以 定义给定资源的所有权限。同样,复选框位于 每列的顶部使您可以选择右侧(查看, 修改等所有资源。确保只选择 使用该密钥所需的权利。不要给予所有权利 对于任何密钥的所有资源,只保留给您和您的。店 协会。这仅出现在多线模式下。它使您能够 选择密钥所有者应该访问哪些商店。
如果 您选择使用自定义密钥而不是生成密钥 确定它是非常安全的,它的权利是有限的 - 而且它是 是32个字符长!
最后,要概述API方法:
从浏览器访问网络服务
商店的终点 webservice位于您的根目录的
/api/
文件夹中 安装Prestashop:
- 如果PrestaShop安装在根目录下 您的服务器,您可以在此处访问API:http://example.com/api/
- 如果 PrestaShop安装在服务器的子文件夹中,您可以访问 这里的API:http://example.com/prestashop/api/
要访问它,你 需要在请求时提供您的API密钥。没有密码, 提供API密钥就足够了 - 因此关键应该是 用户保密!您可以键入API端点地址 然后直接输入您的API密钥,或在。中指明您的API密钥 地址。这是一个示例,
UCCLLQ9N2ARSHWCXLT74KUKSSK34BFKX
是API密钥。
- 在服务器的根目录: http://UCCLLQ9N2ARSHWCXLT74KUKSSK34BFKX@example.com/api/
- 在一个 服务器的子文件夹: http://UCCLLQ9N2ARSHWCXLT74KUKSSK34BFKX@example.com/prestasshop/api/
您可以使用任何支持XML的浏览器对此进行测试。如果没有许可 已经为密钥设置,然后浏览器会一直询问你 无限期地输入密钥。
结果应该看起来像这样(对于PrestaShop的1.5.4.1版本):
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<api shop_name="MYSHOP">
<addresses>...</addresses>
<carriers>...</carriers>
<cart_rules>...</cart_rules>
<carts>...</carts>
<categories>...</categories>
<combinations>...</combinations>
<configurations>...</configurations>
<contacts>...</contacts>
<content_management_system>...</content_management_system>
<countries>...</countries>
<currencies>...</currencies>
<customer_messages>...</customer_messages>
<customer_threads>...</customer_threads>
<customers>...</customers>
<deliveries>...</deliveries>
<employees>...</employees>
<groups>...</groups>
<guests>...</guests>
<image_types>...</image_types>
<images>...</images>
<languages>...</languages>
<manufacturers>...</manufacturers>
<order_carriers>...</order_carriers>
<order_details>...</order_details>
<order_discounts>...</order_discounts>
<order_histories>...</order_histories>
<order_invoices>...</order_invoices>
<order_payments>...</order_payments>
<order_states>...</order_states>
<orders>...</orders>
<price_ranges>...</price_ranges>
<product_feature_values>...</product_feature_values>
<product_features>...</product_features>
<product_option_values>...</product_option_values>
<product_options>...</product_options>
<product_suppliers>...</product_suppliers>
<products>...</products>
<search >...</search>
<shop_groups>...</shop_groups>
<shops>...</shops>
<specific_price_rules>...</specific_price_rules>
<specific_prices>...</specific_prices>
<states>...</states>
<stock_availables>...</stock_availables>
<stock_movement_reasons>...</stock_movement_reasons>
<stock_movements>...</stock_movements>
<stocks>...</stocks>
<stores>...</stores>
<suppliers>...</suppliers>
<supply_order_details>...</supply_order_details>
<supply_order_histories>...</supply_order_histories>
<supply_order_receipt_histories>...</supply_order_receipt_histories>
<supply_order_states>...</supply_order_states>
<supply_orders>...</supply_orders>
<tags>...</tags>
<tax_rule_groups>...</tax_rule_groups>
<tax_rules>...</tax_rules>
<taxes>...</taxes>
<translated_configurations>...</translated_configurations>
<warehouse_product_locations>...</warehouse_product_locations>
<warehouses>...</warehouses>
<weight_ranges>...</weight_ranges>
<zones>...</zones>
</api>
<api shop_name="MYOTHERSHOP">...</api>
<api shop_name="YETANOTHERSHOP">...</api>
</prestashop>
由于您提及您主要对支持Android应用中的基本/核心功能感兴趣,我倾向于说这可能符合您的需求。 :)
答案 1 :(得分:2)
如果您不是在寻找原生应用,可以尝试使用自适应mobile template addon或paid themes。如果您需要原生应用并希望重复使用prestashop商店中的API,则必须create an access至Prestashop REST webservices
要测试您是否已正确配置对网络服务的访问权限,请转到页面http://mypasskey@mystore.com/api/,其中“mypasskey”已被您的密钥替换。