使用 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)