使用 Mobile-Buy-SDK 在 Shopify 中查询产品 Android
Query Products in Shopify using Mobile-Buy-SDK Android
我在 Shopify 中创建了一个试用帐户并添加了一些 products.I 我正在尝试在我的 android 应用程序上显示并购买它们。这些产品是 "News Article" 种东西,用户可以购买一次并在需要时阅读它们。
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) {}});
我不确定如何获取价格并检查是否已购买,如果没有,请继续purchase.There没有关于查询和检索方法的详细文档。
您可以使用此查询获取产品详细信息和价格:
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) and later you can fetch the user's order(here)
我在 Shopify 中创建了一个试用帐户并添加了一些 products.I 我正在尝试在我的 android 应用程序上显示并购买它们。这些产品是 "News Article" 种东西,用户可以购买一次并在需要时阅读它们。
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) {}});
我不确定如何获取价格并检查是否已购买,如果没有,请继续purchase.There没有关于查询和检索方法的详细文档。
您可以使用此查询获取产品详细信息和价格:
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) and later you can fetch the user's order(here)