Giter Site home page Giter Site logo

samarthagarwal / woocommerce_dart Goto Github PK

View Code? Open in Web Editor NEW
88.0 11.0 49.0 7.05 MB

A dart package to interact with the WooCommerce REST API.

License: BSD 3-Clause "New" or "Revised" License

Dart 89.44% Java 5.27% Objective-C 5.29%
flutter dart dartlang woocommerce-api flutter-package

woocommerce_dart's People

Contributors

nicuz avatar samarthagarwal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

woocommerce_dart's Issues

Same error

Launching lib\main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
Gradle task 'assembleDebug'...
Built build\app\outputs\apk\debug\app-debug.apk.
Installing build\app\outputs\apk\app.apk...
Syncing files to device Android SDK built for x86...
D/ (23443): HostConnection::get() New Host Connection established 0xe6d70dc0, tid 23472
D/EGL_emulation(23443): eglMakeCurrent: 0xe7226e60: ver 2 0 (tinfo 0xe7250a10)
I/flutter (23443): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (23443): The following NoSuchMethodError was thrown building:
I/flutter (23443): The method '[]' was called on null.
I/flutter (23443): Receiver: null
I/flutter (23443): Tried calling:
I/flutter (23443):
I/flutter (23443): When the exception was thrown, this was the stack:
I/flutter (23443): #0 Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:50:5)
I/flutter (23443): #1 _MyHomePageState.build.. (package:woocom/main.dart:78:55)
I/flutter (23443): #2 SliverChildBuilderDelegate.build (package:flutter/src/widgets/sliver.dart:397:15)
I/flutter (23443): #3 SliverMultiBoxAdaptorElement._build. (package:flutter/src/widgets/sliver.dart:1000:67)
I/flutter (23443): #4 _HashMap.putIfAbsent (dart:collection/runtime/libcollection_patch.dart:143:29)
I/flutter (23443): #5 SliverMultiBoxAdaptorElement._build (package:flutter/src/widgets/sliver.dart:1000:26)
I/flutter (23443): #6 SliverMultiBoxAdaptorElement.createChild. (package:flutter/src/widgets/sliver.dart:1013:55)
I/flutter (23443): #7 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2266:19)
I/flutter (23443): #8 SliverMultiBoxAdaptorElement.createChild (package:flutter/src/widgets/sliver.dart:1006:11)
I/flutter (23443): #9 RenderSliverMultiBoxAdaptor._createOrObtainChild. (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:274:23)
I/flutter (23443): #10 RenderObject.invokeLayoutCallback. (package:flutter/src/rendering/object.dart:1730:58)
I/flutter (23443): #11 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:799:15)
I/flutter (23443): #12 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1730:13)
I/flutter (23443): #13 RenderSliverMultiBoxAdaptor._createOrObtainChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:263:5)
I/flutter (23443): #14 RenderSliverMultiBoxAdaptor.addInitialChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:341:5)
I/flutter (23443): #15 RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:78:12)
I/flutter (23443): #16 RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter (23443): #17 RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:182:11)
I/flutter (23443): #18 RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter (23443): #19 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:405:13)
I/flutter (23443): #20 RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1316:12)
I/flutter (23443): #21 RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1234:20)
I/flutter (23443): #22 RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter (23443): #23 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (23443): #24 RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter (23443): #25 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (23443): #26 RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter (23443): #27 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (23443): #28 RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter (23443): #29 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (23443): #30 RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter (23443): #31 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (23443): #32 RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter (23443): #33 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (23443): #34 RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter (23443): #35 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (23443): #36 RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter (23443): #37 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (23443): #38 RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter (23443): #39 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:142:11)
I/flutter (23443): #40 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:339:7)
I/flutter (23443): #41 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:212:7)
I/flutter (23443): #42 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:356:14)
I/flutter (23443): #43 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1509:7)
I/flutter (23443): #44 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:768:18)
I/flutter (23443): #45 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:281:19)
I/flutter (23443): #46 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:677:13)
I/flutter (23443): #47 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:219:5)
I/flutter (23443): #48 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
I/flutter (23443): #49 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)
I/flutter (23443): #50 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:842:5)
I/flutter (23443): #51 _invoke (dart:ui/hooks.dart:154:13)
I/flutter (23443): #52 _drawFrame (dart:ui/hooks.dart:143:3)
I/flutter (23443): ════════════════════════════════════════════════════════════════════════════════════════════════════

Update param

can update param page, per_page ... ??? it only 10 item now

Version compatibility

Ive got error like this

[salesapp] flutter packages get
Running "flutter packages get" in salesapp...
The current Dart SDK version is 2.1.0-dev.0.0.flutter-be6309690f.

Because salesapp depends on woocommerce_api any which requires SDK version >=1.23.0 <2.0.0, version solving failed.
pub get failed (1)
exit code 1

Still Not Working

Still showing the same Loading.. text while my api is working fine on postpan
Image of Prob

The following NoSuchMethodError was thrown during performLayout()

Using Exactly Your Code I Got This Error

I/flutter (13726): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter (13726): The following NoSuchMethodError was thrown during performLayout():
I/flutter (13726): The method '[]' was called on null.
I/flutter (13726): Receiver: null
I/flutter (13726): Tried calling:
I/flutter (13726):
I/flutter (13726): When the exception was thrown, this was the stack:
I/flutter (13726): #0 Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:48:5)
I/flutter (13726): #1 _MyHomePageState.build.. (file:///C:/Projects/flutter/woo_commerce/lib/main.dart:78:55)
I/flutter (13726): #2 SliverChildBuilderDelegate.build (package:flutter/src/widgets/sliver.dart:258:20)
I/flutter (13726): #3 SliverMultiBoxAdaptorElement._build. (package:flutter/src/widgets/sliver.dart:783:67)
I/flutter (13726): #4 _HashMap.putIfAbsent (dart:collection/runtime/libcollection_patch.dart:143:29)
I/flutter (13726): #5 SliverMultiBoxAdaptorElement._build (package:flutter/src/widgets/sliver.dart:783:26)
I/flutter (13726): #6 SliverMultiBoxAdaptorElement.createChild. (package:flutter/src/widgets/sliver.dart:796:55)
I/flutter (13726): #7 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2235:19)
I/flutter (13726): #8 SliverMultiBoxAdaptorElement.createChild (package:flutter/src/widgets/sliver.dart:789:11)
I/flutter (13726): #9 RenderSliverMultiBoxAdaptor._createOrObtainChild. (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:254:23)
I/flutter (13726): #10 RenderObject.invokeLayoutCallback. (package:flutter/src/rendering/object.dart:1727:58)
I/flutter (13726): #11 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:796:15)
I/flutter (13726): #12 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1727:13)
I/flutter (13726): #13 RenderSliverMultiBoxAdaptor._createOrObtainChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:243:5)
I/flutter (13726): #14 RenderSliverMultiBoxAdaptor.addInitialChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:321:5)
I/flutter (13726): #15 RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:78:12)
I/flutter (13726): #16 RenderObject.layout (package:flutter/src/rendering/object.dart:1631:7)
I/flutter (13726): #17 RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:182:11)
I/flutter (13726): #18 RenderObject.layout (package:flutter/src/rendering/object.dart:1631:7)
I/flutter (13726): #19 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:405:13)
I/flutter (13726): #20 RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1320:12)
I/flutter (13726): #21 RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1238:20)
I/flutter (13726): #22 RenderObject.layout (package:flutter/src/rendering/object.dart:1631:7)
I/flutter (13726): #23 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:108:13)
I/flutter (13726): #24 RenderObject.layout (package:flutter/src/rendering/object.dart:1631:7)
I/flutter (13726): #25 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:108:13)
I/flutter (13726): #26 RenderObject.layout (package:flutter/src/rendering/object.dart:1631:7)
I/flutter (13726): #27 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:108:13)
I/flutter (13726): #28 RenderObject.layout (package:flutter/src/rendering/object.dart:1631:7)
I/flutter (13726): #29 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:108:13)
I/flutter (13726): #30 RenderObject.layout (package:flutter/src/rendering/object.dart:1631:7)
I/flutter (13726): #31 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:108:13)
I/flutter (13726): #32 RenderObject.layout (package:flutter/src/rendering/object.dart:1631:7)
I/flutter (13726): #33 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:108:13)
I/flutter (13726): #34 RenderObject.layout (package:flutter/src/rendering/object.dart:1631:7)
I/flutter (13726): #35 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:108:13)
I/flutter (13726): #36 RenderObject.layout (package:flutter/src/rendering/object.dart:1631:7)
I/flutter (13726): #37 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:108:13)
I/flutter (13726): #38 RenderObject.layout (package:flutter/src/rendering/object.dart:1631:7)
I/flutter (13726): #39 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:141:11)
I/flutter (13726): #40 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:338:7)
I/flutter (13726): #41 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:211:7)
I/flutter (13726): #42 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:355:14)
I/flutter (13726): #43 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1506:7)
I/flutter (13726): #44 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:765:18)
I/flutter (13726): #45 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:270:19)
I/flutter (13726): #46 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:654:13)
I/flutter (13726): #47 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:208:5)
I/flutter (13726): #48 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
I/flutter (13726): #49 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)
I/flutter (13726): #50 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:842:5)
I/flutter (13726): #51 _invoke (dart:ui/hooks.dart:128:13)
I/flutter (13726): #52 _drawFrame (dart:ui/hooks.dart:117:3)
I/flutter (13726):
I/flutter (13726): The following RenderObject was being processed when the exception was fired:
I/flutter (13726): RenderSliverList#8c35f relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-PAINT
I/flutter (13726): creator: SliverList ← MediaQuery ← SliverPadding ← Viewport ← _ScrollableScope ←
I/flutter (13726): IgnorePointer-[GlobalKey#4e1f0] ← Semantics ← Listener ← _GestureSemantics ←
I/flutter (13726): RawGestureDetector-[LabeledGlobalKey#99210] ←
I/flutter (13726): _ScrollSemantics-[GlobalKey#e1260] ← RepaintBoundary ← ⋯
I/flutter (13726): parentData: paintOffset=Offset(0.0, 0.0) (can use size)
I/flutter (13726): constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle,
I/flutter (13726): scrollOffset: 0.0, remainingPaintExtent: 603.4, crossAxisExtent: 411.4, crossAxisDirection:
I/flutter (13726): AxisDirection.right, viewportMainAxisExtent: 603.4, remainingCacheExtent: 853.4 cacheOrigin: 0.0 )
I/flutter (13726): geometry: null
I/flutter (13726): no children current live
I/flutter (13726): This RenderObject has no descendants.
I/flutter (13726): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter (13726): Another exception was thrown: NoSuchMethodError: The getter 'scrollOffsetCorrection' was called on null.
I/flutter (13726): Another exception was thrown: NoSuchMethodError: The method 'debugAssertIsValid' was called on null.
I/flutter (13726): Another exception was thrown: NoSuchMethodError: The getter 'visible' was called on null.

The stock_status parameter does not work

I'm trying to get all the products in a category that have stock_status=instock but that parameter doesn't work.
The same api consumed from PHP does work, so something in flutter is wrong. I've tried all the ways but I can't get it to work.
Any help?

Future getProduct(int idCategory) async {
    WooCommerceAPI wooCommerceAPI = WooCommerceAPI(
        url: "xxx/",
        consumerKey: "xxx",
        consumerSecret: "xxx");

    var productos = await wooCommerceAPI
        .getAsync("products?stock_status='instock'&per_page=100");
    
    return productos;
  }

Security concern on saving secret in app

Hi I am new to mobile development, sorry if I asked a dumb question.

Isn't that saving consumer secret in the app is a bad practice and potentially lead to security breach?

The method '[]' was called on null

Getting following error:-

The method '[]' was called on null.
Receiver: null
Tried calling: []("images")

When the exception was thrown, this was the stack
#0      Object.noSuchMethod  (dart:core-patch/object_patch.dart:51:5)
#1      _MyOrderPageState.build.<anonymous closure>.<anonymous closure> 
package:apps/order.dart:80
#2      SliverChildBuilderDelegate.build 
package:flutter/…/widgets/sliver.dart:442
#3      SliverMultiBoxAdaptorElement._build.<anonymous closure> 
package:flutter/…/widgets/sliver.dart:1153
#4      _HashMap.putIfAbsent  (dart:collection-patch/collection_patch.dart:137:29)

Here is the code:-

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:woocommerce_api/woocommerce_api.dart';


class OrderPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new MyOrderPage(title: 'WooCommerce API Demo'),
    );
  }
}

class MyOrderPage extends StatefulWidget {
  MyOrderPage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyOrderPageState createState() => _MyOrderPageState();
}

class _MyOrderPageState extends State<MyOrderPage> {

  List<Widget> products = [];

  Future getProducts() async {

    /// Initialize the API
    WooCommerceAPI wcApi = WooCommerceAPI(
        "https://panahgah.com",
        "*****************************************************",
        "*****************************************************"
    );
    
    /// Get data using the endpoint
    var p = await wcApi.getAsync("products");
    return p;
  }


  @override
  void initState() {
    super.initState();
  }
  

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      
      appBar: new AppBar(
        title: new Text(widget.title),
      ),
      
      body: FutureBuilder(
        future: getProducts(),
        builder: (_, s){

          if(s.data == null){
            return Container(
              child: Center(
                child: Text("Loading..."),
              ),
            );
          }

          return ListView.builder(
            itemCount: s.data.length,
            itemBuilder: (_, index){
            
            /// create a list of products
              return ListTile(
                leading: CircleAvatar(
                  child: Image.network(s.data[index]["images"][0]["src"]),
                ), 
                title: Text(s.data[index]["name"]),
                subtitle: Text("Buy now for \$ " + s.data[index]["price"]),
              );

            }
          );
        },
      ),
    );
  }
}

My JSON is working fine. Here is the output from my website:-

[
{
"id": 24,
"name": "Ginger",
"slug": "ginger",
"permalink": "https://panahgah.com/product/ginger/",
"date_created": "2019-11-30T17:57:51",
"date_created_gmt": "2019-11-30T17:57:51",
"date_modified": "2019-11-30T17:57:55",
"date_modified_gmt": "2019-11-30T17:57:55",
"type": "simple",
"status": "publish",
"featured": false,
"catalog_visibility": "visible",
"description": "",
"short_description": "",
"sku": "",
"price": "30",
"regular_price": "30",
"sale_price": "",
"date_on_sale_from": null,
"date_on_sale_from_gmt": null,
"date_on_sale_to": null,
"date_on_sale_to_gmt": null,
"price_html": "<span class=\"woocommerce-Price-amount amount\"><span class=\"woocommerce-Price-currencySymbol\">&#8360;</span>30.00</span>",
"on_sale": false,
"purchasable": true,
"total_sales": 4,
"virtual": false,
"downloadable": false,
"downloads": [],
"download_limit": -1,
"download_expiry": -1,
"external_url": "",
"button_text": "",
"tax_status": "taxable",
"tax_class": "",
"manage_stock": false,
"stock_quantity": null,
"stock_status": "instock",
"backorders": "no",
"backorders_allowed": false,
"backordered": false,
"sold_individually": false,
"weight": "",
"dimensions": {
"length": "",
"width": "",
"height": ""
},
"shipping_required": true,
"shipping_taxable": true,
"shipping_class": "",
"shipping_class_id": 0,
"reviews_allowed": false,
"average_rating": "0.00",
"rating_count": 0,
"related_ids": [
22,
21
],
"upsell_ids": [],
"cross_sell_ids": [],
"parent_id": 0,
"purchase_note": "",
"categories": [
{
"id": 22,
"name": "Vegetables",
"slug": "vegetables"
}
],
"tags": [],
"images": [],
"attributes": [
{
"id": 1,
"name": "Unit",
"position": 0,
"visible": true,
"variation": false,
"options": [
"1/4 KG"
]
}
],
"default_attributes": [],
"variations": [],
"grouped_products": [],
"menu_order": 0,
"meta_data": [],
"_links": {
"self": [
{
"href": "https://panahgah.com/wp-json/wc/v3/products/24"
}
],
"collection": [
{
"href": "https://panahgah.com/wp-json/wc/v3/products"
}
]
}
},
]

P.S: I have hidden Consumer Key and Consumer Secret for this post

Authentication

I copied your code but my app is stuck on Loading text its not fetching products

here's my code

`import 'dart:async';

import 'package:flutter/material.dart';
import 'package:woocommerce_api/woocommerce_api.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
@OverRide
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
theme: new ThemeData(
primarySwatch: Colors.blue,
),
home: new MyHomePage(title: 'WooCommerce API Demo'),
);
}
}

class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);

final String title;

@OverRide
_MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State {

List products = [];

Future getProducts() async {

/// Initialize the API
WooCommerceAPI wc_api = new WooCommerceAPI(
    "http://localhost/ropaarmario/wp-json/wc/v2/products",
    "ck_87f26757f5b65a28f50b9fb5b460793abb6f1d93",
    "cs_fa87963767fbe06b60fa23da38f31d514c51e2a3"
);

/// Get data using the endpoint
var p = await wc_api.getAsync("products");
return p;

}

@OverRide
void initState() {
super.initState();
}

@OverRide
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text(widget.title),
),
body: FutureBuilder(
future: getProducts(),
builder: (_, s){

      if(s.data == null){
        return Container(
          child: Center(
            child: Text("Loading..."),
          ),
        );
      }

      return ListView.builder(
          itemCount: s.data.length,
          itemBuilder: (_, index){

            /// create a list of products
            return ListTile(
              leading: CircleAvatar(
                child: Image.network(s.data[index]["images"][0]["src"]),
              ),
              title: Text(s.data[index]["name"]),
              subtitle: Text("Buy now for \$ " + s.data[index]["price"]),
            );

          }
      );
    },
  ),
);

}
}
`
i checked on postman its working through oauth authentication method

Error

Because query_string 1.0.4 requires SDK version >=0.8.10+6 <2.0.0 and no versions of query_string match >1.0.4 <2.0.0, query_string ^1.0.4 is forbidden.
So, because helo_words depends on woocommerce_api ^0.0.3 which depends on query_string ^1.0.4, version solving failed.
pub get failed (1)
exit code 1

How get anothers pages of products?

Hi.
The example lists the first 10 items of the virtual store. How would you, in the end, pull the second page of the woocommerce pagination?

type 'List<dynamic>' is not a subtype of type 'String'

Here is the the code line which is causing error:-

subtitle: Text("Rs. " + s.data[index]["price"] + "/" + s.data[index]["tags"]),

Following is the error:-

type 'List<dynamic>' is not a subtype of type 'String'

When trying to display data from Tags, Categories above error is displayed.

Old API version (V2)

Although the API's are working fine but V3 parameters are not supported by this package. Inside the package I found that it uses V2 version of woocommerce API's

Still maintained?

Just wondering if this repository is still maintained and active. Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.