我在Shopify中创建了一个试用帐户,并添加了一些产品。我正在尝试在我的Android应用程序上显示这些并购买它们。这些产品是“新闻文章”类型的东西,用户可以购买一次,并在他们希望的时候阅读。
https://insightmy.myshopify.com/products.json(他们有虚拟内容,仅用于学习目的)
final ID id = new ID("72355741740");
Storefront.QueryRootQuery query2 = Storefront.query(new
Storefront.QueryRootQueryDefinition() {
@Override
public void define(Storefront.QueryRootQuery _queryBuilder) {
_queryBuilder.node(id, new Storefront.NodeQueryDefinition() {
@Override
public void define(NodeQuery _queryBuilder) {
_queryBuilder.onProduct(new Storefront.ProductQueryDefinition() {
@Override
public void define(Storefront.ProductQuery _queryBuilder) {
_queryBuilder.title();
}
});
}
});
}
});
QueryGraphCall call = cl.queryGraph(query2);
call.enqueue(new GraphCall.Callback<Storefront.QueryRoot>() {
@Override
public void onResponse(@NonNull GraphResponse<Storefront.QueryRoot> response) {
***//I could not cast this as shown in github***
// Log.v("shop","boby : " + Storefront.Product)response.data()));
}
@Override
public void onFailure(@NonNull GraphError error) {}});
我不知道如何获取价格并检查是否已经购买,如果没有,继续购买。没有关于查询和检索方法的详细文档。
答案 0 :(得分:0)
您可以使用此查询来获取产品详细信息和价格:
String productId = "your-product-id"
Storefront.ProductQueryDefinition query = q -> q
.title()
.descriptionHtml()
.tags()
.collections(quw -> quw.first(1),
args -> args.edges(collectionEdge ->
collectionEdge.node(collectionQuery ->
collectionQuery.title()
)
)
)
.images(args -> args.first(250), imageConnection -> imageConnection
.edges(imageEdge -> imageEdge
.node(Storefront.ImageQuery::src)
)
)
.options(option -> option
.name()
.values()
)
.variants(args -> args.first(250), variantConnection -> variantConnection
.edges(variantEdge -> variantEdge
.node(variant -> variant
.title()
.availableForSale()
.image(Storefront.ImageQuery::src)
.selectedOptions(selectedOption -> selectedOption
.name()
.value()
)
.price()
)
)
);
mGraphClient.queryGraph(Storefront.query(
root -> root
.node(new ID(productId), node -> node
.onProduct(query)
)
)
).enqueue(new GraphCall.Callback<Storefront.QueryRoot>() {
@Override
public void onResponse(@NonNull GraphResponse<Storefront.QueryRoot> response) {
final Storefront.Product product = (Storefront.Product) response.data().getNode();
}
@Override
public void onFailure(@NonNull GraphError error) {
}
});
如果您想知道用户是否已经购买了您的产品,您需要将其保存在您的服务器上,或者为使用移动支付sdk(here)进行购买的用户创建客户帐户可以获取用户的订单(here)