Join the social network of Tech Nerds, increase skill rank, get work, manage projects...
 
  • How to show orders history from shopify store ?

    • 1
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 823
    Comment on it

    This is our last blog on shopify where we will show listing of orders history of particular customer.
    With this api you can track all orders in your webview by passing only order number.

    1. Fetch orders in your main activity like this :

    1. private void fetchCustomerOrdersWithCallback(final Customer customer) {
    2.  
    3. SampleApplication.getBuyClient().getOrders(new Callback<List<Order>>() {
    4. @Override
    5. public void success(final List<Order> orders) {
    6. if(orders.size()>0) {
    7. OrderListAdapter orderListAdapter = new OrderListAdapter(MyOrderListActivity.this, orders, MyOrderListActivity.this);
    8. rvOrderList.setAdapter(orderListAdapter);
    9. }else
    10. {
    11. Toast.makeText(MyOrderListActivity.this, AppConstant.sNoOrder, Toast.LENGTH_LONG).show();
    12.  
    13. }
    14. }
    15.  
    16. @Override
    17. public void failure(final BuyClientError error) {
    18. System.out.println("fetchCustomerOrdersWithCallback failure" + error.toString());
    19.  
    20. }
    21. });
    22. }

    Note : getOrder() is a callback method of shopify this will return list of orders :

    1. CancellableTask getOrders(Callback<List<Order>> callback);

    2. Set adapter for your list :

    1. public class OrderListAdapter extends RecyclerView.Adapter<OrderListAdapter.MyViewHolder> {
    2.  
    3. private List<Order> orderList;
    4. private Activity mActivity;
    5. private OrderListClickInterface orderListClickListner;
    6.  
    7. public OrderListAdapter(Activity aActivity, List<Order> orderList, OrderListClickInterface orderListClickListner) {
    8. this.orderList = orderList;
    9. this.orderListClickListner = orderListClickListner;
    10. mActivity = aActivity;
    11. }
    12.  
    13. public static class MyViewHolder extends RecyclerView.ViewHolder {
    14. TextView tvOrderedWineName, tvOrderDeliveryDate, getTvOrderDeliverystatus, tvDeliveryText;
    15. LinearLayout linearLayoutOrderedWineRow;
    16. ImageView ivOrderedWine;
    17. ProgressBar progressBarOrderList;
    18.  
    19. public MyViewHolder(View itemView) {
    20. super(itemView);
    21. this.tvDeliveryText = (TextView) itemView.findViewById(tv_DeliveryText);
    22. this.tvOrderedWineName = (TextView) itemView.findViewById(tvWineNameOrderList);
    23. this.tvOrderDeliveryDate = (TextView) itemView.findViewById(R.id.tvDeliveryDate);
    24. this.getTvOrderDeliverystatus = (TextView) itemView.findViewById(R.id.tvDeliveryState);
    25. this.progressBarOrderList = (ProgressBar) itemView.findViewById(R.id.wineLoadProgressBarOrderList);
    26. this.ivOrderedWine = (ImageView) itemView.findViewById(R.id.imgOrderedWine);
    27. this.progressBarOrderList.setVisibility(View.GONE);
    28. this.linearLayoutOrderedWineRow = (LinearLayout) itemView.findViewById(R.id.ll_ordered_wine_row);
    29. this.ivOrderedWine.setVisibility(View.GONE);
    30. }
    31. }
    32.  
    33. @Override
    34. public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    35. View view = LayoutInflater.from(parent.getContext())
    36. .inflate(R.layout.order_list_item, parent, false);
    37. MyViewHolder myViewHolder = new MyViewHolder(view);
    38. return myViewHolder;
    39. }
    40.  
    41. @Override
    42. public void onBindViewHolder(final MyViewHolder holder, final int listPosition) {
    43. Date date =orderList.get(listPosition).getProcessedAt();
    44. String dateString = new SimpleDateFormat("dd-MM-yyyy").format(date);
    45. // String dateString=orderList.get(listPosition).getProcessedAt().toString();
    46.  
    47.  
    48. List<LineItem> fulfillmentLineItem = orderList.get(listPosition).getFulfilledLineItems();
    49. List<LineItem> UnfulfillMentLineItem = orderList.get(listPosition).getUnfulfilledLineItems();
    50. holder.tvOrderDeliveryDate.setText(dateString+"");
    51.  
    52. final String statusUrl=orderList.get(listPosition).getOrderStatusUrl();
    53. if (fulfillmentLineItem.size() > 0) {
    54. holder.tvOrderedWineName.setText(fulfillmentLineItem.get(0).getTitle());
    55. holder.getTvOrderDeliverystatus.setText("Delivered");
    56. } else if (UnfulfillMentLineItem.size() > 0) {
    57. holder.tvOrderedWineName.setText(UnfulfillMentLineItem.get(0).getTitle());
    58. holder.getTvOrderDeliverystatus.setText("Pending");
    59. }
    60. holder.linearLayoutOrderedWineRow.setOnClickListener(new View.OnClickListener() {
    61. @Override
    62. public void onClick(View view) {
    63. if (Utills.isConnectingToInternet(mActivity)) {
    64. orderListClickListner.OrderItemClicked(statusUrl);
    65. } else {
    66.  
    67. Toast.makeText(mActivity, AppConstant.sNotConnected, Toast.LENGTH_LONG).show();
    68. }
    69. }
    70. });
    71. }
    72.  
    73. @Override
    74. public int getItemCount() {
    75. return orderList.size();
    76. }
    77. }

    Note : Here we are setting click listener on list item using interface and we are getting order url to show that in webview.

    3. implement onItem clicked in your main activity :

    1. @Override
    2. public void OrderItemClicked(String url) {
    3. Intent intent = new Intent(MyOrderListActivity.this, OrderTrackDetailActivity.class);
    4. intent.putExtra("URL", url);
    5. startActivity(intent);
    6. }

    4. Activity to show order tracking details only you have to set some webview in layout file:

    1. String url = getIntent().getStringExtra("URL");
    1. webView.loadUrl(url);

 0 Comment(s)

Sign In
                           OR                           
                           OR                           
Register

Sign up using

                           OR                           
Forgot Password
Reset Password
Fill out the form below and reset your password: