如何将PrestaShop与Android集成?

8

最近我使用prestashop创建了一个eshop网站。

https://www.prestashop.com/en/

由于我将要为它构建Android应用程序,该应用程序只包含一些基本功能,例如:创建客户帐户/列出产品/订购产品/支付/查看订单等常见的eshop功能...

问题是似乎没有太多资源可用。已经有任何库/官方API可以使用吗?还是我需要从头开始创建API?

阅读http://doc.prestashop.com/display/PS16/Developer+Guide一段时间,但目前仍不清楚从哪里开始。

这是一个比较抽象的问题,但由于社区并不那么流行,资源也很有限,希望可以从他人的经验中学习,并帮助其他有同样请求的人。

非常感谢您的帮助。


1
编写API意味着您正在针对包括API构建在内的本机应用程序,我希望prestashop提供此类选项。最不常见的方法是使您的网站响应式并创建自定义Webview应用程序(Phonegap可用于多个平台)。 - Murtaza Khursheed Hussain
我查看了文档,显然Prestashop没有任何SOAP/REST/XML/JSON类型的API,这是移动应用程序集成所需的。开发这种深度应用程序的API需要大量的工作。如果Prestashop提供某种集成API,他们的产品可能会增加很多兴趣。在今天的世界中,无法将应用程序扩展为平台不是一个选项。 - kris larson
你好,目前Prestashop没有API可用。您需要从头开始创建一个API来将您的应用程序集成到其中。Contus mcomm已经建立了一个准备上线的Prestashop API。该API进行了多次更新,使其比以前更快、更高效。自动同步功能可以自动将网站后端所做的更改反映到应用程序中。 - user2549268
我想上面的用户关于从头开始创建应用程序是正确的。在我的检查中,该API仍然不可用。最好选择一家专业服务公司以定制的方式创建它。http://www.contus.com/prestashop-mobile-app.php - Shadow
正如一些用户已经评论的那样,目前Prestashop没有API。如果您正在寻找一个即插即用的解决方案,您可以尝试Apphitect的M-Comm。它是一个现成的解决方案,可以立即启动。它具有自动同步、店内聊天、深度链接和其他一些您期望在prestashop api中看到的功能。http://www.apphitect.ae/mobile-commerce-app.php - Sivakumar
2个回答

8
问题在于似乎没有多少资源可用。是否已经有任何库存在/官方的/或者我需要从头开始创建API?
与您问题中的某个评论不同,Prestashop实际上确实提供REST服务。在文档中,它被称为“Web服务”。
快速链接:
- Prestashop Web服务使用 - Web服务单页文档 - Web服务教程 有一些开源API实现可用,但没有专门针对Android / Java。但您可能会发现它们作为指南很有用。
需要注意以下几点:

网页服务功能似乎默认情况下是禁用的。因此,为了使用它,您必须首先在后台启用它。摘自文档:

启用网页服务功能

进入PrestaShop后台,在“高级参数”菜单下打开“Webservice”页面,然后选择“Yes”以启用PrestaShop的网页服务。保存更改:完成!

与Web服务通信需要API密钥。您需要再次使用后台为Android应用程序生成一个API密钥:

创建访问密钥
在“高级参数”菜单下打开“Webservice”页面,然后单击“添加新项”按钮以访问帐户配置部分。会出现一个长表单:
- 密钥。API密钥用作您正在创建的Webservice帐户的主要标识符。单击“生成”按钮以获取唯一的身份验证密钥。您也可以创建自己的(必须为32个字符长),但使用生成的密钥可以防止恶意用户轻易猜测到您的密钥。使用此密钥,您和其他选定的用户将能够访问Webservice。 - 密钥描述。帮助您记住为谁创建了该密钥,分配了哪些访问权限等。描述不是公开的,但请确保放置与用户相关的所有关键字,以便更快地找到其密钥。 - 状态。您可以随时禁用任何密钥。 - 权限。此部分非常重要,因为它使您能够为要向此密钥提供的每个资源分配权限。实际上,您可能希望用户对某些资源具有读写访问权限,但仅对其他资源具有读取权限,并且无法访问更重要的资源。在权限列表中,最左边的复选框使您能够定义给定资源的所有权限。同样,每列顶部的复选框使您能够将选择权(查看、修改等)赋予所有资源。确保仅选择使用该密钥的用途所需的权限。不要为任何密钥提供所有资源的所有权限,只保留给自己的密钥和您自己的密钥。商店关联。这仅在多商店模式下出现。它使您能够选择密钥所有者应访问哪些商店。
如果您选择使用自定义通行证而不是生成的通行证,请确保它非常安全并且其权限受到限制 - 并且长度为32个字符!
最后,要获取API方法的概述:

从浏览器访问webservice

您商店的webservice端点位于Prestashop安装根目录下的/api/文件夹中:

要访问它,您需要在请求时提供API密钥。没有密码,只需提供API密钥即可 - 因此用户应保密该密钥!您可以直接键入API端点地址然后输入API密钥,或在地址中指示API密钥。这是一个例子,其中UCCLLQ9N2ARSHWCXLT74KUKSSK34BFKX是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应用程序中的基本/核心功能,我倾向于说这可能符合您的需求。:)


感谢您的杰出努力,这意味着Perstrashop已经提供了REST服务,我所需做的就是获取这些API链接并从中发送/获取数据。 - user782104
@MH,您能指导我如何从Android中进行服务调用吗?当我传递密钥时,我会收到401错误 :(。 - Rat-a-tat-a-tat Ratatouille
@Rat-a-tat-a-tatRatatouille:我建议您在SO上开一个新的问题。没有任何实现细节,我们就无法确定可能出了什么问题。 - MH.
@MH - 谢谢。我会这样做,并在这里发布我的链接,这样你就可以帮忙了。 - Rat-a-tat-a-tat Ratatouille
@MH. - 从Android连接到PrestaShop Web服务时出现401错误 - Rat-a-tat-a-tat Ratatouille

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接