diff --git a/Habitica/res/layout/row_shopitem.xml b/Habitica/res/layout/row_shopitem.xml
new file mode 100644
index 000000000..2310d9358
--- /dev/null
+++ b/Habitica/res/layout/row_shopitem.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/Habitica/res/values/strings.sidebar.xml b/Habitica/res/values/strings.sidebar.xml
index c6bad659a..a59cc13ae 100644
--- a/Habitica/res/values/strings.sidebar.xml
+++ b/Habitica/res/values/strings.sidebar.xml
@@ -16,4 +16,5 @@
News
Settings
About
+ Shops
diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index 6e722ff22..7fb638cc2 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -348,4 +348,7 @@ To start, which parts of your life do you want to improve?
Are you sure you want to change your class? This will cost 3 gems.
Message from %1$s
Confirm
+ Market
+ Time Travelers
+ Seasonal Shop
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java b/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java
index 03384aa2d..1f4a1450e 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java
@@ -25,6 +25,8 @@ import com.habitrpg.android.habitica.ui.fragments.inventory.equipment.EquipmentD
import com.habitrpg.android.habitica.ui.fragments.inventory.equipment.EquipmentOverviewFragment;
import com.habitrpg.android.habitica.ui.fragments.inventory.items.ItemRecyclerFragment;
import com.habitrpg.android.habitica.ui.fragments.inventory.items.ItemsFragment;
+import com.habitrpg.android.habitica.ui.fragments.inventory.shops.ShopFragment;
+import com.habitrpg.android.habitica.ui.fragments.inventory.shops.ShopsFragment;
import com.habitrpg.android.habitica.ui.fragments.inventory.stable.MountDetailRecyclerFragment;
import com.habitrpg.android.habitica.ui.fragments.inventory.stable.PetDetailRecyclerFragment;
import com.habitrpg.android.habitica.ui.fragments.inventory.stable.StableFragment;
@@ -150,4 +152,8 @@ public interface AppComponent {
void inject(InboxFragment inboxFragment);
void inject(InboxMessageListFragment inboxMessageListFragment);
+
+ void inject(ShopsFragment shopsFragment);
+
+ void inject(ShopFragment shopFragment);
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ShopRecyclerAdapter.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ShopRecyclerAdapter.java
new file mode 100644
index 000000000..ad3f6e4c4
--- /dev/null
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ShopRecyclerAdapter.java
@@ -0,0 +1,232 @@
+package com.habitrpg.android.habitica.ui.adapter.inventory;
+
+import com.habitrpg.android.habitica.R;
+import com.habitrpg.android.habitica.databinding.ItemItemBinding;
+import com.habitrpg.android.habitica.events.ReloadContentEvent;
+import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils;
+import com.habitrpg.android.habitica.ui.viewHolders.SectionViewHolder;
+import com.magicmicky.habitrpgwrapper.lib.models.Shop;
+import com.magicmicky.habitrpgwrapper.lib.models.ShopCategory;
+import com.magicmicky.habitrpgwrapper.lib.models.ShopItem;
+
+import org.greenrobot.eventbus.EventBus;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.databinding.DataBindingUtil;
+import android.support.annotation.NonNull;
+import android.support.v4.content.ContextCompat;
+import android.support.v7.app.AlertDialog;
+import android.support.v7.widget.RecyclerView;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+public class ShopRecyclerAdapter extends RecyclerView.Adapter {
+
+ private List