diff --git a/app.js b/app.js
index ebdacd6..e9b12a7 100644
--- a/app.js
+++ b/app.js
@@ -73,6 +73,7 @@ app.use((req, res, next) => {
 try {
     const user = require('./doraemon/middleware/user');
     const subDomain = require('./doraemon/middleware/sub-domain');
+    const itemNameHandler = require('./doraemon/middleware/item-name-handler');
     const setYohoData = require('./doraemon/middleware/set-yoho-data');
     const errorHanlder = require('./doraemon/middleware/error-handler');
     const setPageInfo = require('./doraemon/middleware/set-pageinfo');
@@ -81,6 +82,7 @@ try {
 
     // YOHO 前置中间件
     app.use(subDomain());
+    app.use(itemNameHandler);
     app.use(setYohoData());
     app.use(user());
     app.use(seo());
diff --git a/apps/activity/models/coupon.js b/apps/activity/models/coupon.js
index 818fd53..232fd3b 100644
--- a/apps/activity/models/coupon.js
+++ b/apps/activity/models/coupon.js
@@ -40,25 +40,28 @@ const getUserStatus = (param) => {
     var dest = {};
 
     dest.code = param.code;
-    dest.returnCode = param.data.returnCode;
-    dest.mobile = param.data.mobile;
-    if (param.data.returnCode === 0) {
-        dest.geted = true;
-    } else if (param.data.returnCode === 1) {
-        dest.wrongNumb = true;
-    } else if (param.data.returnCode === 2) {
-        dest.newUser = true;
-    } else if (param.data.returnCode === 8) {
-        dest.oldUserAskCouponOnceMore = true;
-    } else if (param.data.returnCode === 5) {
-        dest.vertifyWrong = true;
-    } else {
-        dest.ended = true;
-    }
-    if (param.data.newUser === 1) {
-        dest.newUser = true;
+    dest.returnCode = param && param.data && param.data.returnCode;
+    dest.mobile = param && param.data && param.data.mobile;
+    if (param && param.data) {
+        if (param.data.returnCode === 0) {
+            dest.geted = true;
+        } else if (param.data.returnCode === 1) {
+            dest.wrongNumb = true;
+        } else if (param.data.returnCode === 2) {
+            dest.newUser = true;
+        } else if (param.data.returnCode === 8) {
+            dest.oldUserAskCouponOnceMore = true;
+        } else if (param.data.returnCode === 5) {
+            dest.vertifyWrong = true;
+        } else {
+            dest.ended = true;
+        }
+
+        if (param.data.newUser === 1) {
+            dest.newUser = true;
+        }
+        dest.message = param.data.returnMsg;
     }
-    dest.message = param.data.returnMsg;
 
     // 清空变量,释放内存
     param = {};
diff --git a/apps/activity/views/action/invite/list.hbs b/apps/activity/views/action/invite/list.hbs
index 397f63c..8df12c7 100644
--- a/apps/activity/views/action/invite/list.hbs
+++ b/apps/activity/views/action/invite/list.hbs
@@ -6,7 +6,7 @@
                 <strong class="fz18">现金券</strong>
                 <p class="fz9 bold">CPOUPON</p>
                 <div class="pirbox absolute">
-                    <em class="absolute">¥</em>0
+                    <em class="absolute">&yen;</em>0
                 </div>
             </div>-->
             <div class="coupon-box chit0"></div>
diff --git a/apps/activity/views/action/invite/mycoupons.hbs b/apps/activity/views/action/invite/mycoupons.hbs
index 8dbb820..586405e 100644
--- a/apps/activity/views/action/invite/mycoupons.hbs
+++ b/apps/activity/views/action/invite/mycoupons.hbs
@@ -6,7 +6,7 @@
                 <strong class="fz18">现金券</strong>
                 <p class="fz9 bold">CPOUPON</p>
                 <div class="pirbox absolute">
-                    <em class="absolute">¥</em>{{amount}}
+                    <em class="absolute">&yen;</em>{{amount}}
                 </div>
                 <div class="count-not fz11 absolute"><hr class="fn-left"><hr class="fn-right">已送达您的账户</div>
             </div>
diff --git a/apps/guang/controllers/index.js b/apps/guang/controllers/index.js
index 4e6ae03..ba58251 100644
--- a/apps/guang/controllers/index.js
+++ b/apps/guang/controllers/index.js
@@ -165,16 +165,15 @@ const tag = (req, res, next) => {
         pageHeader: headerData,
         module: 'guang',
         page: 'index-editor',
-        title: tagTitle + ' | Yoho!Buy有货 | 潮流购物逛不停',
-        pageFooter: true
+        title: tagTitle + ' | Yoho!Buy有货 | 潮流购物逛不停'
     };
 
     let param = {
         tag: req.query.query,
         isApp: req.query.app_version || req.query.appVersion || false,
-        gender: req.query.gender || req.cookies._Channel && channels[req.cookies._Channel] || '1,3',
-        uid: req.user.uid,
-        udid: req.user.udid,
+        gender: req.query.gender || '1,3',
+        uid: req.user.uid || 0,
+        udid: req.sessionID,
         type: req.query.type || 0
 
     };
diff --git a/apps/guang/controllers/info.js b/apps/guang/controllers/info.js
index 3ee46ac..216898e 100644
--- a/apps/guang/controllers/info.js
+++ b/apps/guang/controllers/info.js
@@ -295,7 +295,11 @@ const index = (req, res, next) => {
                 };
 
                 // guang双头部的问题 20160601
-                data.guang.author.url = helpers.https(`${detail.getAuthor.url}&openby:yohobuy={"action":"go.h5","params":{"param":{"id":"${detail.getAuthor.author_id}"},"share":"","id":${detail.getAuthor.author_id},"type":0,"islogin":"N","url":"${helpers.urlFormat('/author/index', {}, 'guang')}"}}`);
+                // 正确的URL
+                data.guang.author.url = helpers.https(`${detail.getAuthor.url}&openby:yohobuy={"action":"go.h5","params":{"param":{},"share":"","id":${detail.getAuthor.author_id},"type":0,"islogin":"N","url":"${detail.getAuthor.url}"}}`);
+
+                // 错误的URL
+                // data.guang.author.url = helpers.https(`${detail.getAuthor.url}&openby:yohobuy={"action":"go.h5","params":{"param":{"id":"${detail.getAuthor.author_id}"},"share":"","id":${detail.getAuthor.author_id},"type":0,"islogin":"N","url":"${helpers.urlFormat('/author/index', {}, 'guang')}"}}`);
             }
             let guang = data.guang;
 
diff --git a/apps/guang/controllers/plustar.js b/apps/guang/controllers/plustar.js
index d9a58bc..7838a54 100644
--- a/apps/guang/controllers/plustar.js
+++ b/apps/guang/controllers/plustar.js
@@ -18,29 +18,59 @@ let channels = {
     lifestyle: '4'
 };
 
+let yhChannel = {
+    boys: 1,
+    girl: 2
+};
+
 const getListData = (req, res, next) => {
     let gender = req.query.gender || req.cookies._Channel && channels[req.cookies._Channel] || '1,3';
     let recom = '4';
     let all = '1';
+    let type = req.query.type;
+    let channel = req.cookies._Channel && yhChannel[req.cookies._Channel] || 1;
+    let isRecommend = '0';
+    let starBrand = '2';
+    let originalBrand = '3';
 
-    plustarModel.getListData(gender, recom, all).then((result) => {
+    if (type === '2') {
+        plustarModel.getBrandsData(gender, starBrand, originalBrand, channel, isRecommend).then((result) => {
+            res.render('plustar/list', {
+                module: 'guang',
+                page: 'plustar-list',
+                title: '明星原创',
+                pageHeader: headerModel.setNav({
+                    navTitle: '明星原创'
+                }),
+                pageFooter: true,
+                ps: {
+                    sName: '明星潮品',
+                    pName: '原创潮牌',
+                    star: result.star,
+                    plus: result.plus
+                }
+            });
+        }).catch(next);
+    } else {
+        plustarModel.getListData(gender, recom, all).then((result) => {
 
-        res.render('plustar/list', {
-            module: 'guang',
-            page: 'plustar-list',
-            title: '国际优选',
-            pageHeader: headerModel.setNav({
-                navTitle: '国际优选'
-            }),
-            pageFooter: true,
-            ps: {
-                sName: '设计师',
-                pName: '经典潮牌',
-                star: result.star,
-                plus: result.plus
-            }
-        });
-    }).catch(next);
+            res.render('plustar/list', {
+                module: 'guang',
+                page: 'plustar-list',
+                title: '国际优选',
+                pageHeader: headerModel.setNav({
+                    navTitle: '国际优选'
+                }),
+                pageFooter: true,
+                ps: {
+                    sName: '设计师',
+                    pName: '经典潮牌',
+                    star: result.star,
+                    plus: result.plus
+                }
+            });
+        }).catch(next);
+    }
 };
 
 const getDetailData = (req, res, next) => {
diff --git a/apps/guang/models/index.js b/apps/guang/models/index.js
index 43bc3b7..9a2e343 100644
--- a/apps/guang/models/index.js
+++ b/apps/guang/models/index.js
@@ -142,10 +142,10 @@ const _article = (param) => {
         page: param.page || 1,
         uid: param.uid,
         udid: param.udid,
-        sort_id: param.type === '0' ? param.type : '1',
+        sort_id: 0,
         tag: param.tag ? param.tag : null,
-        author_id: param.authorId ? param.authorId : null,
-        limit: param.limit ? param.limit : null
+        //author_id: param.authorId ? param.authorId : null,
+        //limit: param.limit ? param.limit : null
     }, {
         cache: true,
         code: 200
@@ -279,13 +279,14 @@ const getTagEditor = (param) => {
             }
         };
 
-        if (result && result[0] && result[0].data && result[0].data.list) {
+        if (result && result[0] && result[0].data && result[0].data.list && result[0].data.list.artList) {
 
             let inf = [];
 
             let infoList = result[0].data.list.artList;
 
             infoList.forEach(val => {
+                val.url = helpers.https(`${val.url}&openby:yohobuy={"action":"go.h5","params":{"param":{},"share":"","id":"","type":0,"islogin":"N","url":"${val.url}"}}`);
                 inf.push(guangProcess.formatArticle(val, true, false, true));
             });
 
diff --git a/apps/guang/models/info.js b/apps/guang/models/info.js
index eaf1d23..6bcfe70 100644
--- a/apps/guang/models/info.js
+++ b/apps/guang/models/info.js
@@ -40,7 +40,7 @@ const packageData = (id, isApp) => {
         cache: true
     }).then(data => {
         // 接口要判断一下返回状态是否成功
-        if (data.code !== 200) {
+        if (data === '' && data.code !== 200) {
             result.code = 400;
             return result;
         }
@@ -110,28 +110,43 @@ const packageData = (id, isApp) => {
         }
 
         return Promise.all(promises).then(datas => {
-            let getArticleContent = datas[1].data;
+            if (datas) {
+                if (datas[1]) {
 
-            if (isApp && datas[4].data) {
+                    let getArticleContent = datas[1].data;
 
-                let preCount = 0;
-                let i;
+                    result.getArticleContent = getArticleContent;
 
-                for (i = 0; i < getArticleContent.length; i++) {
-                    if (getArticleContent[i].singleImage || getArticleContent[i].text || getArticleContent[i].smallPic) {
-                        preCount++;
+                }
+
+                if (isApp && datas[4] && datas[4].data) {
+
+                    let preCount = 0;
+                    let i;
+
+                    for (i = 0; i < getArticleContent.length; i++) {
+                        if (getArticleContent[i].singleImage || getArticleContent[i].text || getArticleContent[i].smallPic) {
+                            preCount++;
+                        }
                     }
+
+                    getArticleContent.splice(preCount, 0, {weixinPublic: datas[4].data});
+                }
+                if (datas[0]) {
+                    result.getAuthor = datas[0].data;
                 }
 
-                getArticleContent.splice(preCount, 0, {weixinPublic: datas[4].data});
-            }
 
-            result.getAuthor = datas[0].data;
-            result.getArticleContent = getArticleContent;
-            result.getBrand = datas[2].data;
-            if (datas.length === 5 && isApp || datas.length === 4 && !isApp) {
-                result.getOtherArticle = datas[3].data;
+                if (datas[2]) {
+                    result.getBrand = datas[2].data;
+                }
+                if (datas.length === 5 && isApp || datas.length === 4 && !isApp) {
+                    if (datas[3]) {
+                        result.getOtherArticle = datas[3].data;
+                    }
+                }
             }
+
             return result;
         });
     });
diff --git a/apps/guang/models/plustar.js b/apps/guang/models/plustar.js
index 3d04f47..9ae65fa 100644
--- a/apps/guang/models/plustar.js
+++ b/apps/guang/models/plustar.js
@@ -8,11 +8,9 @@ const helpers = global.yoho.helpers;
 const formaData = (data, gender) => {
     let build = [];
 
-    // console.log(data)
     _.forEach(data, function(val) {
         // 多张图
         if (val.data[1]) {
-
             let imgs = [];
 
             _.forEach(val.data, function(list) {
@@ -33,7 +31,7 @@ const formaData = (data, gender) => {
         }
 
         // 单张图
-        if (val.data[0]) {
+        if (val.data[0] && !val.data[1]) {
             _.forEach(val.data, function(list) {
                 build.push({
                     url: '/guang/plustar/brandinfo?id=' + val.id + '&gender=' + gender,
@@ -47,15 +45,19 @@ const formaData = (data, gender) => {
     return build;
 };
 
+const getContentData = (gender, type, channel, isRecommend) => {
+    let param = {
+        gender: gender,
+        brand_type: type,
+        yh_channel: channel
+    };
 
-const getContentData = (gender, type) => {
+    if (isRecommend) {
+        param.is_recommend = isRecommend;
+    }
 
-    return serviceAPI.get('guang/api/v3/plustar/getlist', {
-        gender: gender,
-        brand_type: type
-    }).then((result) => {
+    return serviceAPI.get('guang/api/v3/plustar/getlist', param).then((result) => {
         if (result && result.code === 200) {
-            // console.log(result)
             return formaData(result.data.data.list[0].data, gender);
         } else {
             logger.error('列表 list data return code is not 200');
@@ -73,6 +75,15 @@ const getListData = (gender, recom, all) => {
     });
 };
 
+const getBrandsData = (gender, starBrand, originalBrand, channel, isRecommend) => {
+    return Promise.all([getContentData(gender, starBrand, isRecommend, channel), getContentData(gender, originalBrand, isRecommend, channel)]).then((result) => {
+        return {
+            star: result[0],
+            plus: result[1]
+        };
+    });
+};
+
 // 新品到着
 const getNewProduct = (brandId, gender, url) => {
 
@@ -96,7 +107,6 @@ const getNewProduct = (brandId, gender, url) => {
                     let obj = {};
                     let price;
 
-                    // console.log(list)
                     if (index <= 5) {
                         let tag = [];
 
@@ -280,5 +290,6 @@ module.exports = {
     getListData,
     getContentData,
     getDetailData,
-    getDetailDataAsync
+    getDetailDataAsync,
+    getBrandsData
 };
diff --git a/apps/guang/views/action/index/list.hbs b/apps/guang/views/action/index/list.hbs
index 43d1218..3955e0f 100644
--- a/apps/guang/views/action/index/list.hbs
+++ b/apps/guang/views/action/index/list.hbs
@@ -22,7 +22,7 @@
         <div class="loading status hide">
             正在加载...
         </div>
-        <span class="no-more status">没有更多啦</span>
+        <span class="no-more status hide">没有更多啦</span>
     </div>
     
     {{#if tag}}
diff --git a/apps/guang/views/action/index/page.hbs b/apps/guang/views/action/index/page.hbs
index 79521f0..a7ad0ff 100644
--- a/apps/guang/views/action/index/page.hbs
+++ b/apps/guang/views/action/index/page.hbs
@@ -13,7 +13,6 @@
         <div class="swiper-pagination"></div>
     </div>
 {{/if}}
-
 {{# infos}}
     {{> index/info}}
 {{/ infos}}
\ No newline at end of file
diff --git a/apps/guang/views/action/info/index.hbs b/apps/guang/views/action/info/index.hbs
index c317036..f2fc1b0 100644
--- a/apps/guang/views/action/info/index.hbs
+++ b/apps/guang/views/action/info/index.hbs
@@ -90,9 +90,9 @@
                                                             <span class="reco-name">{{name}}</span>
                                                         </p>
                                                         <p class="price">
-                                                            <span class="sale-price {{^price}}no-price{{/price}}">¥{{salePrice}}</span>
+                                                            <span class="sale-price {{^price}}no-price{{/price}}">&yen;{{salePrice}}</span>
                                                             {{#price}}
-                                                                <span class="market-price">¥{{.}}</span>
+                                                                <span class="market-price">&yen;{{.}}</span>
                                                             {{/price}}
                                                             <a class="check-detail" href={{url}}>
                                                                 查看详情
diff --git a/apps/home/controllers/address.js b/apps/home/controllers/address.js
index 6a3bf24..1c36320 100644
--- a/apps/home/controllers/address.js
+++ b/apps/home/controllers/address.js
@@ -49,7 +49,8 @@ exports.addressAct = (req, res, next) => {
             module: 'home',
             page: 'address-act',
             pageHeader: headerModel.setNav({
-                navTitle: result.navTitle
+                navTitle: result && result.navTitle,
+                navBtn: false
             }),
             title: result.navTitle
         };
@@ -161,7 +162,8 @@ exports.addressModify = (req, res, next) => {
         module: 'home',
         page: 'address-modify',
         pageHeader: headerModel.setNav({
-            navTitle: '选择地址'
+            navTitle: '选择地址',
+            navBtn: false
         }),
         title: '选择地址',
     };
@@ -184,6 +186,10 @@ exports.addressModify = (req, res, next) => {
  * @param next
  */
 exports.locationList = (req, res, next) => {
+    res.set({
+        'Cache-Control': 'max-age=600'
+    });
+
     addressModel.locationList({
         uid: req.user.uid
     }).then(result => {
diff --git a/apps/home/controllers/help.js b/apps/home/controllers/help.js
index b8ab2ae..99d565e 100644
--- a/apps/home/controllers/help.js
+++ b/apps/home/controllers/help.js
@@ -9,11 +9,12 @@ exports.index = (req, res, next) => {
             module: 'home',
             page: 'help',
             pageHeader: headerModel.setNav({
-                navTitle: '帮助中心'
+                navTitle: '帮助中心',
+                navBtn: false
             }),
             title: '帮助中心',
             pageFooter: true,
-            iHelp: result,
+            iHelp: result
         });
     }).catch(next);
 };
@@ -24,7 +25,8 @@ exports.helpDetail = (req, res, next) => {
             module: 'home',
             page: 'help-detail',
             pageHeader: headerModel.setNav({
-                navTitle: req.query.name
+                navTitle: req.query.name,
+                navBtn: false
             }),
             title: req.query.name,
             pageFooter: true,
diff --git a/apps/home/controllers/myCurrency.js b/apps/home/controllers/myCurrency.js
index 27e9d0f..bd3f75c 100644
--- a/apps/home/controllers/myCurrency.js
+++ b/apps/home/controllers/myCurrency.js
@@ -65,7 +65,7 @@ let ajaxCurrencyDetail = (req, res, next) => {
 
         res.render('ajax-currency-detail', {
             layout: false,
-            coinlist: result.coinlist
+            coinlist: _.get(result, 'coinlist', [])
         });
     }).catch(next);
 };
diff --git a/apps/home/models/favorite.js b/apps/home/models/favorite.js
index 7d2d090..0e87ec7 100644
--- a/apps/home/models/favorite.js
+++ b/apps/home/models/favorite.js
@@ -109,7 +109,7 @@ const favProduct = (uid, page, limit) => {
 
             return resu;
         } else {
-            logger.error('收藏商品 cood 不是 200');
+            logger.error('fav goods code no 200');
             return {
                 total: 0,
             };
@@ -192,7 +192,7 @@ const favfavBrand = (uid, page, limit) => {
 
             return resu;
         } else {
-            logger.error('收藏品牌 cood 不是 200');
+            logger.error('fav brand code no 200');
             return {
                 total: 0,
             };
diff --git a/apps/home/models/myCurrency.js b/apps/home/models/myCurrency.js
index d2b47be..64ca95f 100644
--- a/apps/home/models/myCurrency.js
+++ b/apps/home/models/myCurrency.js
@@ -15,7 +15,7 @@ const yohoCoin = (uid) => {
         if (result && result.code === 200) {
             return camelCase(result.data);
         } else {
-            logger.error('youhocoin cood 不是 200');
+            logger.error('youhocoin code no 200');
         }
     });
 };
@@ -59,6 +59,12 @@ const currencyDetail = (uid, page, limit) => {
         if (result && result.code === 200) {
             let total = parseInt(result.data.page_total, 10) + 1;
 
+            _.forEach(_.get(result, 'data.coinlist', []), perCoin => {
+                if (perCoin.num > 0) {
+                    perCoin.num = '+' + perCoin.num;
+                }
+            });
+
             if (page && page <= total) {
                 return yohoCoin(uid).then(list => {
 
@@ -79,7 +85,7 @@ const currencyDetail = (uid, page, limit) => {
             }
 
         } else {
-            logger.error('youholist cood 不是 200');
+            logger.error('youholist code no 200');
         }
 
     });
diff --git a/apps/home/models/orderDetail.js b/apps/home/models/orderDetail.js
index 8fb3fb8..d4b4a34 100644
--- a/apps/home/models/orderDetail.js
+++ b/apps/home/models/orderDetail.js
@@ -289,7 +289,7 @@ const orderDetailData = (uid, orderCode) => {
 
             // return orderDetail;
         } else {
-            logger.error('详情信息 返回不是200');
+            logger.error('detail info return no 200');
             return {};
         }
 
diff --git a/apps/home/models/suggest.js b/apps/home/models/suggest.js
index ffb1aad..28642b7 100644
--- a/apps/home/models/suggest.js
+++ b/apps/home/models/suggest.js
@@ -7,12 +7,9 @@
 'use strict';
 
 const logger = global.yoho.logger;
-const api = global.yoho.API;
 const serviceAPI = global.yoho.ServiceAPI;
 const camelCase = global.yoho.camelCase;
 const _ = require('lodash');
-const config = global.yoho.config;
-const helpers = global.yoho.helpers;
 
 const suggestData = (udid, page, limit) => {
 
@@ -22,10 +19,10 @@ const suggestData = (udid, page, limit) => {
         limit: limit
     }).then((result) => {
 
-        if (result && result.code === 200) {
+        if (result && result.code === 200 && result.data) {
             _.forEach(result.data.list, function(data) {
 
-                data = _.assign(data, {
+                Object.assign(data, {
                     good: data.is_reliable === 1,
                     bad: data.is_reliable === 2,
                     none: data.is_reliable === 0
@@ -33,7 +30,7 @@ const suggestData = (udid, page, limit) => {
             });
             return camelCase(result.data.list);
         } else {
-            logger.error('收藏商品 cood 不是 200');
+            logger.error('fav goods code no 200');
         }
     });
 };
diff --git a/apps/home/router.js b/apps/home/router.js
index 060b7fe..9c0d784 100644
--- a/apps/home/router.js
+++ b/apps/home/router.js
@@ -52,6 +52,7 @@ router.get('/locationList', auth, addressController.locationList); // 异步获�
 router.get('/orders', auth, orderController.order); // 订单列表
 router.get('/getOrders', auth, orderController.getOrders); // 获取订单列表数据
 router.get('/orderDetail', auth, orderDetailController.orderDetailData); // 订单详情页
+router.get('/orders/detail', auth, orderDetailController.orderDetailData); // 订单详情页兼容老的
 router.get('/delOrder', auth, orderDetailController.delOrder); // 删除订单
 router.get('/readd', auth, orderDetailController.readdData); // 再次购买
 router.get('/cancelOrder', auth, orderDetailController.cancelOrder); // 取消订单
diff --git a/apps/home/views/action/ajax-currency-detail.hbs b/apps/home/views/action/ajax-currency-detail.hbs
index 9b63fe0..47fe501 100644
--- a/apps/home/views/action/ajax-currency-detail.hbs
+++ b/apps/home/views/action/ajax-currency-detail.hbs
@@ -4,7 +4,7 @@
             <p class="title">{{message}}</p>
             <p class="time">{{date}}</p>
             <div class="count">
-                +{{num}}
+                {{num}}
             </div>
         </div>
     </li>
diff --git a/apps/home/views/action/currency-new.hbs b/apps/home/views/action/currency-new.hbs
index b1d09e9..9f38189 100644
--- a/apps/home/views/action/currency-new.hbs
+++ b/apps/home/views/action/currency-new.hbs
@@ -21,7 +21,7 @@
         {{# banner}}
         {{# data}}
         <a href="{{url}}">
-            <img src="{{image src 640 200 2}}" alt="img">
+            <img src="{{image src 640 200}}" alt="img">
         </a>
         {{/ data}}
         {{/ banner}}
diff --git a/apps/home/views/action/favorite/favorite-brand.hbs b/apps/home/views/action/favorite/favorite-brand.hbs
index 3f63eb8..478f856 100644
--- a/apps/home/views/action/favorite/favorite-brand.hbs
+++ b/apps/home/views/action/favorite/favorite-brand.hbs
@@ -23,7 +23,7 @@
                 {{# productList}}
                 <li class="swiper-slide">
                     <a href="{{link}}">
-                        <img class="swiper-lazy" data-src="{{image imgUrl 97 150}}" alt=""/>
+                        <img class="swiper-lazy" data-src="{{image imgUrl 235 314}}" alt=""/>
                     </a>
                     <div class="brand-product">
                         <div class="{{# discount}}price-discount{{/ discount}}">
diff --git a/apps/home/views/action/help.hbs b/apps/home/views/action/help.hbs
index 250ce1d..76be9c5 100644
--- a/apps/home/views/action/help.hbs
+++ b/apps/home/views/action/help.hbs
@@ -1,4 +1,4 @@
-<div class="iHelp">
+<div class="i-help">
 	<ul>
 		{{#iHelp}}
 		<li><a href="//m.yohobuy.com/home/helpDetail?code={{code}}&name={{name}}"><span>{{name}}</span><i class="iconfont num">&#xe604;</i></a></li>
diff --git a/apps/home/views/action/vip-grade/vip-grade.hbs b/apps/home/views/action/vip-grade/vip-grade.hbs
index e5bdfa4..68b64da 100644
--- a/apps/home/views/action/vip-grade/vip-grade.hbs
+++ b/apps/home/views/action/vip-grade/vip-grade.hbs
@@ -7,11 +7,11 @@
         <ul class="cost block">
             <li>
                 年度累计金额:
-                <span>¥{{costOfThisYear}}</span>
+                <span>&yen;{{costOfThisYear}}</span>
             </li>
             <li>
                 历史消费总金额:
-                <span>¥{{sumCost}}</span>
+                <span>&yen;{{sumCost}}</span>
             </li>
         </ul>
 
diff --git a/apps/home/views/partial/vip-grade/basic-info.hbs b/apps/home/views/partial/vip-grade/basic-info.hbs
index 942a96d..35b62ff 100644
--- a/apps/home/views/partial/vip-grade/basic-info.hbs
+++ b/apps/home/views/partial/vip-grade/basic-info.hbs
@@ -7,7 +7,7 @@
         您已升级至最高的等级啦!
     </p>
     <p class="sum-cost">
-        年度累计金额<span> ¥{{costOfThisYear}}</span>
+        年度累计金额<span> &yen;{{costOfThisYear}}</span>
     </p>
     <div class="progresser">
         <div class="outer"></div>
@@ -24,11 +24,11 @@
         <span class="vip-icon vip-2"></span>
     </p>
     <p class="grade-desc">
-        还差<span class="cost-gap">¥{{costGap}}</span>就可以升级为白金会员!
+        还差<span class="cost-gap">&yen;{{costGap}}</span>就可以升级为白金会员!
         <span class="sub-desc">(VIP金额累计需订单成功签收满15天并无退换货)</span>
     </p>
     <p class="sum-cost">
-        年度累计金额<span> ¥{{costOfThisYear}}</span>
+        年度累计金额<span> &yen;{{costOfThisYear}}</span>
     </p>
     <div class="progresser">
         <div class="outer"></div>
@@ -37,7 +37,7 @@
             金卡会员
         </span>
         <span class="beacon beacon-max">白金卡会员</span>
-        <span class="cost-limit">¥5000.00</span>
+        <span class="cost-limit">&yen;5000.00</span>
     </div>
 {{/if}}
 
@@ -47,11 +47,11 @@
         <span class="vip-icon vip-1"></span>
     </p>
     <p class="grade-desc">
-        还差<span class="cost-gap">¥{{costGap}}</span>就可以升级为金卡会员!
+        还差<span class="cost-gap">&yen;{{costGap}}</span>就可以升级为金卡会员!
         <span class="sub-desc">(VIP金额累计需订单成功签收满15天并无退换货)</span>
     </p>
     <p class="sum-cost">
-        年度累计金额<span> ¥{{costOfThisYear}}</span>
+        年度累计金额<span> &yen;{{costOfThisYear}}</span>
     </p>
     <div class="progresser">
         <div class="outer"></div>
@@ -60,7 +60,7 @@
             银卡会员
         </span>
         <span class="beacon beacon-max">金卡会员</span>
-        <span class="cost-limit">¥2000.00</span>
+        <span class="cost-limit">&yen;2000.00</span>
     </div>
 {{/if}}
 
@@ -70,11 +70,11 @@
         <span>普通会员</span>
     </p>
     <p class="grade-desc">
-        还差<span class="cost-gap">¥{{costGap}}</span>就可以升级为银卡会员!
+        还差<span class="cost-gap">&yen;{{costGap}}</span>就可以升级为银卡会员!
         <span class="sub-desc">(VIP金额累计需订单成功签收满15天并无退换货)</span>
     </p>
     <p class="sum-cost">
-        年度累计金额<span> ¥{{costOfThisYear}}</span>
+        年度累计金额<span> &yen;{{costOfThisYear}}</span>
     </p>
     <div class="progresser">
         <div class="outer"></div>
@@ -83,6 +83,6 @@
             普通
         </span>
         <span class="beacon beacon-max">银卡会员</span>
-        <span class="cost-limit">¥600.00</span>
+        <span class="cost-limit">&yen;600.00</span>
     </div>
 {{/if}}
diff --git a/apps/passport/models/back-api.js b/apps/passport/models/back-api.js
index 82733fb..056ec6e 100644
--- a/apps/passport/models/back-api.js
+++ b/apps/passport/models/back-api.js
@@ -34,7 +34,7 @@ const getAreaDataAsync = () => {
 
             return result;
         } else {
-            logger.error('获取地区数据返回 code 不是 200');
+            logger.error('获取地区数据返回 code no 200');
             return [];
         }
     });
diff --git a/apps/product/models/consult-comment.js b/apps/product/models/consult-comment.js
index 1aa6c58..c0ad419 100644
--- a/apps/product/models/consult-comment.js
+++ b/apps/product/models/consult-comment.js
@@ -178,7 +178,7 @@ let consults = (params) => {
             data.consults = result[1].list;
         }
 
-        data.showReadMore = result[1].list.length > 2;
+        data.showReadMore = _.get(result[1], 'list.length', 0) > 2;
 
         return data;
     });
diff --git a/apps/product/models/detail.js b/apps/product/models/detail.js
index 90f49ac..93df5f1 100644
--- a/apps/product/models/detail.js
+++ b/apps/product/models/detail.js
@@ -1772,7 +1772,7 @@ let _detailDataPkgAsync = (origin, uid, vipLevel, ua) => {
             colors: _.toArray(colorGroup),
             sizes: sizeGroup
         });
-        
+
         // 限购商品
         if (origin.isLimitBuy) {
             return api.get('', {
@@ -1858,6 +1858,52 @@ let _detailDataPkgAsync = (origin, uid, vipLevel, ua) => {
         dest.goodsId = origin.goods_id;
         return Promise.resolve(dest);
     }
+
+    return api.get('', {
+        method: 'app.shop.queryShopsByBrandId',
+        brand_id: _.toString(brandId)
+    }, {
+        cache: true
+    }).then(shops => {
+        if (shops && shops.code === 200) {
+            return _processShopsInfo(shops.data);
+        }
+
+        return [];
+    });
+};
+
+let _getPromotionInfo = (skn) => {
+    return api.get('', {
+        method: 'app.product.promotion',
+        product_skn: _.toString(skn)
+    }, {
+        code: 200,
+        cache: true
+    }).then((result) => {
+        return result && result.data;
+    });
+};
+
+/**
+ * 获取默认咨询列表
+ */
+const _getCommonConsult = () => {
+    let params = {
+        method: 'app.consult.common'
+    };
+
+    return api.get('', params, {
+        code: 200
+    }).then(result => {
+        let data = {};
+
+        if (result.data) {
+            data = result.data;
+        }
+
+        return data;
+    });
 };
 
 
diff --git a/apps/product/models/list.js b/apps/product/models/list.js
index 7f7f3ef..54d37f2 100644
--- a/apps/product/models/list.js
+++ b/apps/product/models/list.js
@@ -596,8 +596,7 @@ const getBrandIntro = (brandId, uid) => {
         method: 'app.brand.getBrandIntro',
         brand_id: brandId
     }, param), {
-        code: 200,
-        cache: true
+        code: 200
     }).then(result => {
         if (result && result.data) {
             let list = result.data;
diff --git a/apps/product/models/recom.js b/apps/product/models/recom.js
index b61d899..60179c9 100644
--- a/apps/product/models/recom.js
+++ b/apps/product/models/recom.js
@@ -1,6 +1,7 @@
 'use strict';
 
 const api = global.yoho.API;
+const logger = global.yoho.logger;
 const utils = '../../../utils';
 const productProcess = require(`${utils}/product-process`);
 
@@ -27,7 +28,8 @@ const mayLike = (uid, page, limit, gender, udid, recPos, channel) => {
                     return false;
                 }
             }
-
+        } else {
+            logger.error('mayLike code no 200');
         }
     });
 };
@@ -51,6 +53,8 @@ const mayLikeKids = (page, limit, channel) => {
                 return productProcess.processProductList(result.data.product_list);
 
             }
+        } else {
+            logger.error('mayLikeKids code no 200');
         }
     });
 };
diff --git a/apps/product/router.js b/apps/product/router.js
index 755d5e7..f6f1750 100644
--- a/apps/product/router.js
+++ b/apps/product/router.js
@@ -95,6 +95,7 @@ router.get('/search/search', search.search);
 
 // 品类
 router.get('/index/index', list.category);
+router.get('/list/index', list.category); // 兼容 PC 的链接
 
 // 品牌 | 店铺
 router.get('/index/brand', list.brand);
@@ -113,6 +114,7 @@ router.get('/opt/favoriteBrand', list.favoriteBrand);
 
 // 新品到着
 router.get('/new', news.newGoods);
+router.get('/list/new', news.newGoods); // 兼容 PC 的链接
 router.get('/new/selectNewSale', news.selectNewSale);
 router.get('/new/filter', news.filter);
 
diff --git a/apps/product/views/action/detail/preference.hbs b/apps/product/views/action/detail/preference.hbs
index 9bf3ba1..7800472 100644
--- a/apps/product/views/action/detail/preference.hbs
+++ b/apps/product/views/action/detail/preference.hbs
@@ -9,7 +9,7 @@
             </div>
             <div class="price">
                 <span class="sale-price {{^price}}no-price{{/price}}">¥{{salePrice}}</span>
-                {{#price}}<span class="old-price">¥{{.}}</span>{{/price}}
+                {{#price}}<span class="old-price">&yen;{{.}}</span>{{/price}}
             </div>
             <div class="swiper-lazy-preloader"></div>
         </a>
diff --git a/config/common.js b/config/common.js
index 346b707..997b6d8 100644
--- a/config/common.js
+++ b/config/common.js
@@ -17,10 +17,10 @@ module.exports = {
     siteUrl: '//m.yohobuy.com',
     assetUrl: '//localhost:5001',
     domains: {
-        api: 'http://api.yoho.cn/',
-        service: 'http://service.yoho.cn/',
-        liveApi: 'http://api.live.yoho.cn/',
-        singleApi: 'http://single.yoho.cn/',
+        api: 'http://api.yoho.yohoops.org/',
+            service: 'http://service.yoho.yohoops.org/',
+            liveApi: 'http://api.live.yoho.cn/',
+            singleApi: 'http://single.yoho.cn/'
 
         // api: 'http://api-test1.yohops.com:9999/',
         // service: 'http://service-test1.yohops.com:9999/',
diff --git a/doraemon/middleware/error-handler.js b/doraemon/middleware/error-handler.js
index f0a7d4f..71851ae 100644
--- a/doraemon/middleware/error-handler.js
+++ b/doraemon/middleware/error-handler.js
@@ -59,6 +59,6 @@ exports.serverError = () => {
                 isErr: true
             });
         }
-        next();
+        next(err);
     };
 };
diff --git a/doraemon/middleware/item-name-handler.js b/doraemon/middleware/item-name-handler.js
new file mode 100644
index 0000000..03ebc36
--- /dev/null
+++ b/doraemon/middleware/item-name-handler.js
@@ -0,0 +1,12 @@
+/**
+ * 商品详情页部分商品名称重置,防止express内部decodeURIComponent不能解析url出错
+ * @author: xuqi<qi.xu@yoho.cn>
+ * @date: 2016/8/23
+ */
+
+module.exports = function(req, res, next) {
+    if (/^\/product\/pro_/.test(req.url)) {
+        req.url = req.url.replace(/\/pro_([\d]+)_([\d]+)\/(.*)/, '/pro_$1_$2/yoho-replace.html');
+    }
+    next();
+};
diff --git a/doraemon/middleware/set-yoho-data.js b/doraemon/middleware/set-yoho-data.js
index a98ad63..757743b 100644
--- a/doraemon/middleware/set-yoho-data.js
+++ b/doraemon/middleware/set-yoho-data.js
@@ -5,6 +5,7 @@
  */
 
 'use strict';
+const helpers = global.yoho.helpers;
 
 module.exports = () => {
     return (req, res, next) => {
@@ -31,6 +32,8 @@ module.exports = () => {
             res.set('Access-Control-Allow-Origin', '*');
         }
 
+        res.locals.cartUrl = helpers.urlFormat('/cart/index/index');
+
         next();
     };
 };
diff --git a/doraemon/views/partial/common/suspend-cart.hbs b/doraemon/views/partial/common/suspend-cart.hbs
index b3082f5..c99a0f0 100644
--- a/doraemon/views/partial/common/suspend-cart.hbs
+++ b/doraemon/views/partial/common/suspend-cart.hbs
@@ -1,6 +1,6 @@
 <div id="suspend-cart" class="suspend-cart">
-    <a href={{cartUrl}}>
+    <a href="{{@root.cartUrl}}">
         <span class="iconfont">&#xe62c;</span>
     </a>
     <span class="cart-count hide">0</span>
-</div>
\ No newline at end of file
+</div>
diff --git a/doraemon/views/partial/header.hbs b/doraemon/views/partial/header.hbs
index 4e3c15d..6cc6ac6 100644
--- a/doraemon/views/partial/header.hbs
+++ b/doraemon/views/partial/header.hbs
@@ -14,13 +14,13 @@
             <a href="{{url}}" class="nav-sub-right">{{text}}</a>
     {{/shopPage}}
     {{#currencyPage}}
-    <a href="/home/helpDetail?code=20151230-102233&caption=有货币介绍" class="iconfont nav-home">&#xe639;</a>
+    <a href="/home/helpDetail?code=20151230-102233&caption=有货币介绍&name=有货币介绍" class="iconfont nav-home">&#xe639;</a>
     {{/currencyPage}}
     {{#currencyDetailPage}}
-    <a href="/home/helpDetail?code=20111130-152530&caption=如何使用有货币支付" class="iconfont nav-home">&#xe639;</a>
+    <a href="/home/helpDetail?code=20111130-152530&caption=如何使用有货币支付&name=如何使用有货币支付" class="iconfont nav-home">&#xe639;</a>
     {{/currencyDetailPage}}
     {{#installmentPage}}
-    <a href="/home/helpDetail?code=20151230-102233&caption=有货分期" class="iconfont nav-home">&#xe639;</a>
+    <a href="/home/helpDetail?code=20151230-102233&caption=有货分期&name=有货分期" class="iconfont nav-home">&#xe639;</a>
     {{/installmentPage}}
     {{#navPhone}}
     <a href="{{.}}" class="iconfont nav-home">&#xe641;</a>
diff --git a/public/js/channel/cate.page.js b/public/js/channel/cate.page.js
index 9b62f1a..746efb5 100644
--- a/public/js/channel/cate.page.js
+++ b/public/js/channel/cate.page.js
@@ -78,6 +78,10 @@ $categoryContainer.on('touchend', function(e) {
         $subLevel.not('.hide').addClass('hide');
         $subLevel.eq(index).removeClass('hide');
     }
+
+    if ($this.find('a').attr('href')) {
+        location.href = $this.find('a').attr('href');
+    }
 });
 
 $categoryContainer.find('.primary-level').on('touchstart touchend touchcancel', 'li', function() {
diff --git a/public/js/channel/maybe-like.js b/public/js/channel/maybe-like.js
index ec15a85..408fbbb 100644
--- a/public/js/channel/maybe-like.js
+++ b/public/js/channel/maybe-like.js
@@ -127,12 +127,10 @@ module.exports = function(specificGender) {
             success: function(data) {
                 var PRDID = [];
                 if (data === ' ' || data === '') {
+                    searching = true;
 
-                    searching = false;
                     loading.hideLoadingMask();
 
-                    $('.maybe-like').hide();
-
                     // 有货币页面不加载底部
                     if (gender && !specificGender) {
                         gender = gender.substr(0, 3);
diff --git a/public/js/common.js b/public/js/common.js
index aee13e0..f916dc4 100644
--- a/public/js/common.js
+++ b/public/js/common.js
@@ -195,7 +195,7 @@ function reMarginFooter(fixedElement) {
     a.async = 1;
     a.src = j;
     m.parentNode.insertBefore(a, m);
-})(window, document, 'script', (document.location.protocol === 'https:' ? 'https' : 'http') + '://cdn.yoho.cn/yas-jssdk/1.0.17/yas.js', '_yas');
+}(window, document, 'script', (document.location.protocol === 'https:' ? 'https' : 'http') + '://cdn.yoho.cn/yas-jssdk/1.0.17/yas.js', '_yas'));
 
 (function() {
     var uid = getUid();
diff --git a/public/js/guang/info-common.js b/public/js/guang/info-common.js
index fefb3cb..761b21a 100644
--- a/public/js/guang/info-common.js
+++ b/public/js/guang/info-common.js
@@ -215,7 +215,7 @@ function loadMore($container, opt, url) {
         success: function(data) {
             var $newItems;
 
-            if (data === ' ') {
+            if (data === '') {
                 opt.end = true;
                 searching = false;
 
diff --git a/public/js/home/address-act.page.js b/public/js/home/address-act.page.js
index fcfd104..1bf19e5 100644
--- a/public/js/home/address-act.page.js
+++ b/public/js/home/address-act.page.js
@@ -193,6 +193,7 @@ function bindAddressListEvent(html) {
 if (window.localStorage && window.localStorage.getItem) {
     chinaAddressList = window.localStorage.getItem('chinaAddressList');
 }
+
 if (chinaAddressList) {
     bindAddressListEvent(chinaAddressList);
 } else {
@@ -201,12 +202,14 @@ if (chinaAddressList) {
     $.ajax({
         method: 'GET',
         url: '/home/locationList',
-        timeout: 60000
+        timeout: 60000,
+        cache: true
     }).then(function(html) {
         bindAddressListEvent(html);
-        if (window.localStorage && window.localStorage.setItem) {
-            window.localStorage.setItem('chinaAddressList', html);
-        }
+
+        // if (window.localStorage && window.localStorage.setItem) {
+        //     window.localStorage.setItem('chinaAddressList', html);
+        // }
     }).fail(function() {
         tip.show('获取省市区列表失败');
     });
diff --git a/public/js/home/currency-detail.page.js b/public/js/home/currency-detail.page.js
index f987f40..5dff510 100644
--- a/public/js/home/currency-detail.page.js
+++ b/public/js/home/currency-detail.page.js
@@ -3,6 +3,8 @@ var $ = require('yoho-jquery'),
 var page = 1;
 var flag = true;
 
+require('../common');
+
 loading.showLoadingMask();
 
 function ajaxCurrencyDetail(curPage) {
diff --git a/public/js/home/currency-new.page.js b/public/js/home/currency-new.page.js
index 232f7e0..a618c9c 100644
--- a/public/js/home/currency-new.page.js
+++ b/public/js/home/currency-new.page.js
@@ -13,3 +13,7 @@ function getGender() {
 }
 
 require('../channel/maybe-like')(getGender());
+
+if ($('#goods-list').length === 0) {
+    $('.maybe-like').hide();
+}
diff --git a/public/scss/home/_ihelp.css b/public/scss/home/_ihelp.css
index 2c9a569..625b3a6 100644
--- a/public/scss/home/_ihelp.css
+++ b/public/scss/home/_ihelp.css
@@ -1,4 +1,4 @@
-.iHelp {
+.i-help {
     width: 100%;
     height: auto;
     overflow: hidden;
@@ -29,7 +29,7 @@
             }
 
             span {
-                width: 85%;
+                width: 92%;
                 height: 100%;
                 overflow: hidden;
                 float: left;
diff --git a/public/scss/layout/_header.css b/public/scss/layout/_header.css
index 305f544..25655a4 100644
--- a/public/scss/layout/_header.css
+++ b/public/scss/layout/_header.css
@@ -223,7 +223,7 @@
                 height: auto;
                 color: #fff;
                 line-height: 40px;
-                font-size: 14px;
+                font-size: 14PX;
             }
         }
     }
diff --git a/public/scss/me/_browse-record.css b/public/scss/me/_browse-record.css
index dd12704..380b7a5 100644
--- a/public/scss/me/_browse-record.css
+++ b/public/scss/me/_browse-record.css
@@ -30,7 +30,7 @@
 
     .price {
         margin: 0.3rem 0;
-        font-size: 16px;
+        font-size: 16PX;
     }
 
     .sale-price {
diff --git a/public/scss/me/_fav.css b/public/scss/me/_fav.css
index d299ea4..2104dee 100644
--- a/public/scss/me/_fav.css
+++ b/public/scss/me/_fav.css
@@ -107,7 +107,7 @@
                 font-size: 24px;
                 border-bottom: 1px solid #e0e0e0;
                 padding-bottom: 20px;
-                height: 120px;
+                height: 140px;
                 overflow: hidden;
                 position: relative;
 
@@ -288,7 +288,7 @@
                 margin: 0 30px;
 
                 .swiper-slide {
-                    width: 225px;
+                    width: 255px;
                     height: 100%;
                     float: left;
                     padding-right: 30px;
diff --git a/public/scss/me/_home.css b/public/scss/me/_home.css
index 753f8d2..0fb218f 100644
--- a/public/scss/me/_home.css
+++ b/public/scss/me/_home.css
@@ -307,6 +307,7 @@
         .num {
             color: #e0e0e0;
             float: right;
+            font-size: 16PX;
         }
     }
 }
diff --git a/public/scss/me/_suggest.css b/public/scss/me/_suggest.css
index f93a036..cf7cbfd 100644
--- a/public/scss/me/_suggest.css
+++ b/public/scss/me/_suggest.css
@@ -124,14 +124,13 @@
     .create-new-suggest {
         display: block;
         width: 100%;
-        height: 88px;
+        height: 150px;
         line-height: 88px;
         text-align: center;
         font-size: 30px;
         border-top: 30px solid #f0f0f0;
         border-bottom: 30px solid #f0f0f0;
         position: relative;
-        height: 88px;
 
         .list-item {
             padding: 0 35px;