Check all the ARGOS stores in one click, and get and find the stock levels fast!
Argos Stock Checker has found for Terraria Xbox 360 Game 377/6276 - 57 have the item instore.
|
| Item Number | 3776276 |
ENLARGE
|
Description | Terraria Xbox 360 Game |
Price (at last stock search) | £9.49 (when checked last) |
Last Price Update: | over 1 week ago |
Please look at each store individually to see when it was updated. If the store isn't below it hasn't been checked To update, sort by distance of your postcode, then select the radius to search. By clicking "update now" next to any store, it will update that store and the ones very local to that store. |
Description view/hide |
For ages 12 years and over. EAN: 8023171033433. 31 reviewsOverall rating (4. 6)4. 6CloseCustomer ReviewsReview breakdown4. 6/5 from 31 reviews5 stars (19)4 stars (11)3 stars (1)2 stars (0)1 stars (0)CloseDifficultyGraphicsEntertainment value100% would recommend to a friend8 November 20165 / 5DifficultyGraphicsEntertainment valueit was a great present to giveI have it to my son for getting a great report at school. He loves it. Yes, I recommend this productHelpful?Yes (0)No (0)cazLocation:Chester-le-Street, Chester le Street DH3, UKAge:25 to 34Gender:Female5 October 20165 / 5DifficultyGraphicsEntertainment valueGreat game a must buyI have not stopped playing this game apart from going to bed and writing this reviewYes, I recommend this productHelpful?Yes (0)No (0)AndrewLocation:Exeter, UKAge:35 to 44Gender:Male28 September 20165 / 5DifficultyGraphicsEntertainment valueMy kids love this gameIs good game for kids. They enjoy it very much and could play all day long. Yes, I recommend this productHelpful?Yes (0)No (0)MomOfHappyKidsRead more reviewsRead reviews31 reviewsNewestOldestMost HelpfulHighest RatingLowest Rating1234Page 1 of 4Back to ProductQuestions & answersBe the first to ask a question!Ask a questionBoring but important info*Prices correct as displayed but are subject to change. var br_related_rid = R9tkhjyrmyxzs1jvgxos3-uf,r1,m1;var br_iuid = aHR0cDovL3d3dy5hcmdvcy5jby51ay9yZXMvc3RhdGljL1Byb2R1Y3QvcGFydE51bWJlci8zNzc2Mjc2Lmh0bQ==;Related Products
Buy Turtle Beach Titanfall Ear Force Atlas Headset
Engage in fast-paced, vertical warfare with the Titanfallâ„¢ . . .
More details. . .
Buy HCC Wired Mono Gaming Headset for Xbox
The Gioteck HCC Wired Mono Chat Headset for . . .
More details. . .
Buy Ninja Turtles Mutants in Manhatten Xbox 360
Battle alongside your brothers through the sewers, subways, . . .
More details. . .
Related Searches. . . customers also searched for
Related Searches
turtle beach headsets
digital hdmi cable
xbox 360 nintendo wii
x rocker black comfortable chair
pedestal gaming chair
wii gaming chair
view productEssential InformationCustomer ServicesPrivacy policyCookie policyTerms & conditionsSite mapSecure online shoppingEmail sign upShopping at ArgosHelp getting onlineArgos gift cardHome deliveryCheck & ReserveOrder trackingReturns & refundsQuick shopStore locatorProduct informationBuying guidesProduct careArgos CardArgos Credit & InsuranceA – Z indexFeatures & articlesProduct RecallProduct SupportAbout ArgosAbout usAffiliate programArgos for BusinessPress enquiriesOther sitesSainsbury'sArgos CareersArgos. ieArgos SparesArgos app for:iPhone |iPad |Android© Argos Limited 2016. All Rights Reserved. Store LocatorCustomer ServicesArgos CardPrivacy PolicyCookie PolicyTerms & ConditionsSainsbury'sMy Account© Argos Limited 2016. All Rights Reserved. window. App={context:{dispatcher:{stores:{RouteStore:{currentUrl:u002Fproductu002F3776276,currentNavigate:{transactionId:5077707127522540,url:u002Fproductu002F3776276},currentNavigateError:null,isNavigateComplete:true,routes:null},ProductStore:{name:Terraria Xbox 360 Game. ,attributes:{fastTrack:true,catentryId:1254714,freeDelivery:false,description:u003Culu003Eu003Cliu003EFor ages 12 years and over. u003Cu002Fliu003Eu003Cliu003EEAN: 8023171033433. u003Cu002Fliu003Eu003Cu002Fulu003E,deliverable:true,excludedFromMoneyBack:false,deliveryPrice:3. 95,variableDeliveryPrice:false,name:Terraria Xbox 360 Game. ,collectable:true,partNumber:3776276,brand:,maximumQuantity:10,price:{flashText:,now:9. 49}},relationships:{breadcrumb:{links:{self:http:u002Fu002Fpro-eben-1va7ylod6drde. phuqpfkunw. eu-west-1. elasticbeanstalk. comu002Fproductu002F3776276u002Frelationshipsu002Fbreadcrumb,related:http:u002Fu002Fpro-eben-1va7ylod6drde. phuqpfkunw. eu-west-1. elasticbeanstalk. comu002Fproductu002F3776276u002Fbreadcrumb},data:{type:breadcrumb,id:3776276}},legalText:{links:{self:http:u002Fu002Fpro-eben-1va7ylod6drde. phuqpfkunw. eu-west-1. elasticbeanstalk. comu002Fproductu002F3776276u002Frelationshipsu002FlegalText,related:http:u002Fu002Fpro-eben-1va7ylod6drde. phuqpfkunw. eu-west-1. elasticbeanstalk. comu002Fproductu002F3776276u002FlegalText},data:{type:legalTexts,id:3776276}},variants:{links:{self:http:u002Fu002Fpro-eben-1va7ylod6drde. phuqpfkunw. eu-west-1. elasticbeanstalk. comu002Fproductu002F3776276u002Frelationshipsu002Fvariants,related:http:u002Fu002Fpro-eben-1va7ylod6drde. phuqpfkunw. eu-west-1. elasticbeanstalk. comu002Fproductu002F3776276u002Fvariants},data:{type:variants,id:3776276}},media:{links:{self:http:u002Fu002Fpro-eben-1va7ylod6drde. phuqpfkunw. eu-west-1. elasticbeanstalk. comu002Fproductu002F3776276u002Frelationshipsu002Fmedia,related:http:u002Fu002Fpro-eben-1va7ylod6drde. phuqpfkunw. eu-west-1. elasticbeanstalk. comu002Fproductu002F3776276u002Fmedia},data:{type:media,id:3776276}},price:{links:{self:http:u002Fu002Fpro-eben-1va7ylod6drde. phuqpfkunw. eu-west-1. elasticbeanstalk. comu002Fproductu002F3776276u002Frelationshipsu002Fprice,related:http:u002Fu002Fpro-eben-1va7ylod6drde. phuqpfkunw. eu-west-1. elasticbeanstalk. comu002Fproductu002F3776276u002Fprice},data:{type:prices,id:3776276}}},err:null,productId:3776276,pricing:{type:prices,id:3776276,attributes:{flashText:,now:9. 49},relationships:{},links:{self:http:u002Fu002Fpro-eben-1va7ylod6drde. phuqpfkunw. eu-west-1. elasticbeanstalk. comu002Fpricesu002F3776276}},productNotFound:false,variants:{type:variants,id:3776276,attributes:{variants:[]},relationships:{},links:{self:http:u002Fu002Fpro-eben-1va7ylod6drde. phuqpfkunw. eu-west-1. elasticbeanstalk. comu002Fvariantsu002F3776276}},breadcrumb:[{attributes:{name:Technology,path:u002Fu002Fwww. argos. co. uku002Fstaticu002FBrowseu002FID72u002F33016251u002Fc_1u002F1|category_root|Technology|33006169. htm,id:33006169}},{attributes:{name:Video games and consoles,path:u002Fu002Fwww. argos. co. uku002Fstaticu002FBrowseu002FID72u002F33016251u002Fc_1u002F1|category_root|Technology|33006169u002Fc_2u002F2|33006169|Video+games+and+consoles|33008137. htm,id:33008137}},{attributes:{name:Xbox 360,path:u002Fu002Fwww. argos. co. uku002Fstaticu002FBrowseu002FID72u002F33016251u002Fc_1u002F1|category_root|Technology|33006169u002Fc_2u002F2|33006169|Video+games+and+consoles|33008137u002Fc_3u002F3|33008137|Xbox+360|33016918. htm,id:33016918}},{attributes:{name:Xbox 360 games,path:u002Fu002Fwww. argos. co. uku002Fstaticu002FBrowseu002FID72u002F33016251u002Fc_1u002F1|category_root|Technology|33006169u002Fc_2u002F2|33006169|Video+games+and+consoles|33008137u002Fc_3u002F3|33008137|Xbox+360|33016918u002Fc_4u002F4|33016918|Xbox+360+games|33025996. htm,id:33025996}}],legalText:{displaySwatchMessage:false},altView:false,media:{images:[http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z001A,http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z002A,http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z003A,http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z004A,http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z005A,http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z006A,http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z007A,http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z008A,http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z009A,http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z010A,http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z011A],pdfs:[],threesixty:[],meta:{http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z009A:{width:1382,height:700},http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z011A:{width:1000,height:563},http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z002A:{width:1000,height:563},http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z004A:{width:1000,height:563},http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z010A:{width:1000,height:563},http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z001A:{width:766,height:1079},http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z003A:{width:1000,height:563},http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z008A:{width:1000,height:563},http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z006A:{width:1000,height:563},http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z005A:{width:1000,height:563},http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F3776276_R_Z007A:{width:1000,height:563}},videos:[]},offers:[]},ApplicationStore:{currentPageName:null,currentPage:null,pages:{pdp_0:{path:u002Fstaticu002FProductu002FpartNumberu002F:partNumber. htm,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_1:{path:u002Fresu002Fstaticu002FProductu002FpartNumberu002F:partNumber. htm,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_2:{path:u002Fmu002Fstaticu002FProductu002FpartNumberu002F:partNumber. htm,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_3:{path:u002Fresu002Fmu002Fstaticu002FProductu002FpartNumberu002F:partNumber. htm,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_4:{path:u002Fstaticu002FSearchu002FsearchTermu002F:partNumber([0-9]+). htm,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_5:{path:u002Fresu002Fstaticu002FSearchu002FsearchTermu002F:partNumber([0-9]+). htm,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_6:{path:u002Fmu002Fstaticu002FSearchu002FsearchTermu002F:partNumber([0-9]+). htm,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_7:{path:u002Fresu002Fmu002Fstaticu002FSearchu002FsearchTermu002F:partNumber([0-9]+). htm,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_8:{path:u002Fwebappu002Fwcsu002Fstoresu002Fservletu002FProductDisplay,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_9:{path:u002Fwebappu002Fwcsu002Fstoresu002Fservletu002FProductDisplayMobileView,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_10:{path:u002Fresu002Fwebappu002Fwcsu002Fstoresu002Fservletu002FProductDisplay,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_11:{path:u002Fresu002Fwebappu002Fwcsu002Fstoresu002Fservletu002FProductDisplayMobileView,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_12:{path:u002Fresu002Fmu002Fstaticu002FProductu002FpartNumberu002F:partNumberu002FsearchTermu002F:searchTerm. htm,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_13:{path:u002Fmu002Fstaticu002FProductu002FpartNumberu002F:partNumberu002FsearchTermu002F:searchTerm. htm,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_14:{path:u002Fresu002Fstaticu002FProductu002FpartNumberu002F:partNumberu002FsearchTermu002F:searchTerm. htm,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_15:{path:u002Fstaticu002FProductu002FpartNumberu002F:partNumberu002FsearchTermu002F:searchTerm. htm,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_16:{path:u002Fresu002Fmu002Fstaticu002FProductu002FpartNumberu002F:partNumberu002FfromPageu002FSpecialOfferBuilder. htm,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_17:{path:u002Fmu002Fstaticu002FProductu002FpartNumberu002F:partNumberu002FfromPageu002FSpecialOfferBuilder. htm,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},pdp_18:{path:u002Fproductu002F:partNumber,method:get,page:pdp,title:PDP,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber || payload. query. partNumber;
var start = Date. now();
if (payload. query. alt === true) {
context. dispatch(PDP_ALT_VIEW, true);
}
debug(Executing productPageAction, partNumber);
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, productPageAction read);
if (err || response && response. status !== 200) {
if (!err) {
err = {};
}
if (err && err. message === Not Found || response && response. status === 404) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PRODUCT_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, productPageAction 404 Error);
break;
default:
context. dispatch(PDP_PRODUCT_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, productPageAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(QUANTIY_CHANGE, 1);
context. dispatch(PDP_PRODUCT, response. data);
var getReviews = new Promise(function (resolve, reject) {
context. executeAction(_bazaarvoiceAction2. default, {
partNumber: partNumber. toString()
}, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
if (global. window) {
(0, _taggingSerializer2. default)(context. getStore, null, a variant was selected);
(0, _taggingSerializer. doTrack)(pdp_variant);
}
resolve();
});
});
var getSpecialOffers = new Promise(function (resolve, reject) {
context. executeAction(_fetchSpecialOffersAction2. default, partNumber, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
var getBloomReach = new Promise(function (resolve, reject) {
context. executeAction(_fetchBloomReachAction2. default, { partNumber: partNumber. toString() }, function (err) {
if (err) {
reject(err);
throw new Error(err);
}
resolve();
});
});
Promise. all([getReviews, getSpecialOffers, getBloomReach]). then(function () {
debug(Execution complete of productPageAction, partNumber);
done();
}, function (reason) {
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: reason }, Non-handled rejection error in pdpAction meaning we will never repsond);
done();
});
});
}},specialoffers:{path:u002Fproductu002F:partNumberu002Fspecialoffersu002F:promotionId,method:get,page:specialoffers,title:PDP Special Offers Bundle Creator,handler:function StoreConnector(props, context) {
React. Component. apply(this, arguments);
this. state = this. getStateFromStores();
this. _onStoreChange = null;
this. _isMounted = false;
},action:function (context, payload, done) {
var _arguments = arguments;
var partNumber = payload. params. partNumber;
var promotionId = payload. params. promotionId;
var start = Date. now();
debug(Executing specialOffersCreatorAction, partNumber);
var getProductInformation = new Promise(function (resolve, reject) {
context. service. read(pdp-service, { partNumber: partNumber }, context. config, function (err, response) {
response. data = JSON. parse(response. text). data;
response. data. included = JSON. parse(response. text). included;
context. dispatch(SPECIAL_OFFERS_SET_BREADCRUMB, response. data);
resolve();
});
});
context. service. read(pdp-special-offers-service, { partNumber: partNumber, promotionId: promotionId }, context. config, function (err, response) {
var end = Date. now();
logger. debug(apiLogger, { params: payload. params, responseTime: end - start, partNumber: partNumber }, specialOffersCreatorAction read);
if (err) {
if (err. message === Not Found) {
err. status = 404;
}
if (err. code === ECONNREFUSED || err. code === ECONNABORTED) {
err. status = 503;
}
switch (err. status) {
case 404:
context. dispatch(PDP_PROMOTION_NOT_FOUND, {});
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: 404 }, specialOffersCreatorAction 404 Error);
break;
default:
context. dispatch(PDP_PROMOTION_SERVICE_ERR, { status: err. status || 500 });
logger. error(apiLogger, { arguments: _arguments, responseTime: end - start, error: err. status || 500 }, specialOffersCreatorAction + err. status || 500 + Error);
break;
}
done();
return;
}
response. data = (typeof response === undefined ? undefined : _typeof(response)) === object ? response. data : JSON. parse(response. text). data;
response. data. attributes. targetPartNumber = partNumber;
context. dispatch(PDP_PROMOTION, response. data);
getProductInformation. then(function () {
return done();
});
});
}},error:{path:*,method:get,page:error,title:404 Not Found,handler:function ErrorPage() {
_classCallCheck(this, ErrorPage);
return _possibleConstructorReturn(this, (ErrorPage. __proto__ || Object. getPrototypeOf(ErrorPage)). apply(this, arguments));
}}},pageTitle:Terraria Xbox 360 Game. },BazaarVoiceReviewStore:{reviews:[{id:74712856,type:review,attributes:{secondaryRatings:{Difficulty:3,Graphics:5,Entertainment value:5},productReviewed:{name:Terraria Xbox 360 Game. ,id:3776276},profile:{name:caz,location:Chester-le-Street, Chester le Street DH3, UK,contextAttributes:{Age:25 to 34,Gender:Female},badges:[]},overallRating:5,text:I have it to my son for getting a great report at school. He loves it. ,helpfulness:{helpful:0,unhelpful:0},title:it was a great present to give,submitted:8 November 2016,recommended:true,recommendedProducts:[],syndication:null}},{id:72365542,type:review,attributes:{secondaryRatings:{Difficulty:5,Graphics:5,Entertainment value:5},productReviewed:{name:Terraria Xbox 360 Game. ,id:3776276},profile:{name:Andrew,location:Exeter, UK,contextAttributes:{Age:35 to 44,Gender:Male},badges:[]},overallRating:5,text:I have not stopped playing this game apart from going to bed and writing this review,helpfulness:{helpful:0,unhelpful:0},title:Great game a must buy,submitted:5 October 2016,recommended:true,recommendedProducts:[],syndication:null}},{id:72102065,type:review,attributes:{secondaryRatings:{Difficulty:3,Graphics:5,Entertainment value:5},productReviewed:{name:Terraria Xbox 360 Game. ,id:3776276},profile:{name:MomOfHappyKids,location:null,contextAttributes:{Age:25 to 34,Gender:Female},badges:[]},overallRating:5,text:Is good game for kids. They enjoy it very much and could play all day long. ,helpfulness:{helpful:0,unhelpful:0},title:My kids love this game,submitted:28 September 2016,recommended:true,recommendedProducts:[],syndication:null}},{id:69236886,type:review,attributes:{secondaryRatings:{Difficulty:3,Graphics:3,Entertainment value:4},productReviewed:{name:Terraria Xbox 360 Game. ,id:3776276},profile:{name:Peekiki Boo,location:Shropshire, UK,contextAttributes:{Age:25 to 34,Gender:Female},badges:[]},overallRating:4,text:I bought this for my daughters 9th birthday. She loves it. A good game at good value. ,helpfulness:{helpful:0,unhelpful:1},title:Terraria,submitted:28 July 2016,recommended:true,recommendedProducts:[],syndication:null}},{id:67604514,type:review,attributes:{secondaryRatings:{Difficulty:5,Graphics:5,Entertainment value:5},productReviewed:{name:Terraria Xbox 360 Game. ,id:3776276},profile:{name:Cheryl,location:Fife, UK,contextAttributes:{Age:25 to 34},badges:[]},overallRating:5,text:Christmas present my son will love it,helpfulness:{helpful:1,unhelpful:0},title:null,submitted:15 June 2016,recommended:true,recommendedProducts:[],syndication:null}},{id:67348444,type:review,attributes:{secondaryRatings:{Difficulty:5,Graphics:5,Entertainment value:5},productReviewed:{name:Terraria Xbox 360 Game. ,id:3776276},profile:{name:Trish,location:Northern Ireland,contextAttributes:{Age:65 or over,Gender:Female},badges:[]},overallRating:5,text:My Grandson of 9 loves this game. He has to use his imagination so that's great!,helpfulness:{helpful:1,unhelpful:0},title:Great creatìve game for 7 - 11 year olds. ,submitted:8 June 2016,recommended:true,recommendedProducts:[],syndication:null}},{id:67346441,type:review,attributes:{secondaryRatings:{Difficulty:4,Graphics:3,Entertainment value:5},productReviewed:{name:Terraria Xbox 360 Game. ,id:3776276},profile:{name:abcde,location:East Sussex, UK,contextAttributes:{Age:25 to 34,Gender:Female},badges:[]},overallRating:4,text:My son really enjoys this game,helpfulness:{helpful:0,unhelpful:0},title:A good game for my 9 year old boy,submitted:8 June 2016,recommended:true,recommendedProducts:[],syndication:null}},{id:67018181,type:review,attributes:{secondaryRatings:{Difficulty:4,Graphics:5,Entertainment value:5},productReviewed:{name:Terraria Xbox 360 Game. ,id:3776276},profile:{name:Finagin,location:Teignmouth, Devon, UK,contextAttributes:{Age:25 to 34,Gender:Female},badges:[]},overallRating:5,text:Bought for my son and he loves it not only single play but online aswell, very happy boy,helpfulness:{helpful:0,unhelpful:0},title:null,submitted:1 June 2016,recommended:true,recommendedProducts:[],syndication:null}},{id:67002333,type:review,attributes:{secondaryRatings:{Difficulty:5,Graphics:5,Entertainment value:5},productReviewed:{name:Terraria Xbox 360 Game. ,id:3776276},profile:{name:nikki,location:Wakefield, West Yorkshire, UK,contextAttributes:{Age:25 to 34,Gender:Female},badges:[]},overallRating:5,text:My boys love this game,helpfulness:{helpful:0,unhelpful:0},title:great product,submitted:1 June 2016,recommended:true,recommendedProducts:[],syndication:null}},{id:66784174,type:review,attributes:{secondaryRatings:{Difficulty:3,Graphics:4,Entertainment value:4},productReviewed:{name:Terraria Xbox 360 Game. ,id:3776276},profile:{name:Craig 33,location:Hamilton, Scotland,contextAttributes:{Age:35 to 44,Gender:Male},badges:[]},overallRating:4,text:Bought it for my daughter's birthday she was very pleased as she still has Xbox 360 and plays on it every day the content was apropate for her age,helpfulness:{helpful:0,unhelpful:0},title:null,submitted:27 May 2016,recommended:true,recommendedProducts:[],syndication:null}}],stats:{id:3776276,type:reviewStatistics,attributes:{overallRating:4. 5806,reviewCount:31,secondaryRatings:{Difficulty:3. 903226,Graphics:4. 193548,Entertainment value:4. 580645},recommendationPercentage:100,ratingDistribution:[{Count:1,RatingValue:3},{Count:11,RatingValue:4},{Count:19,RatingValue:5}]}}},BazaarVoiceQuestionAnswerStore:{questions:[],stats:{attributes:{questionCount:0,answerCount:0}}},AlternativeProductStore:{products:[],bloomReachData:{alsoSearchedFor:u003Cdiv class=r-sf-widget\u003Eu003Cdiv class=r-sf-widget-merchant-cont\u003Eu003Cdiv id=r1 class=item\u003E
u003Cdiv class=r-sf-widget-merchant-img\u003E
u003Ca href=http:u002Fu002Fwww. argos. co. uku002Fproductu002F1946383\u003Eu003Cimg src=http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F1946383_R_SET?$Listers$\u003Eu003Cu002Fau003E
u003Cu002Fdivu003E
u003Cdiv class=r-sf-widget-merchant-title\u003E
u003Ca href=http:u002Fu002Fwww. argos. co. uku002Fproductu002F1946383\u003EBuy Turtle Beach Titanfall Ear Force Atlas Headsetu003Cu002Fau003E
u003Cu002Fdivu003E
u003Cdiv class=r-sf-widget-merchant-desc\u003E
Engage in fast-paced, vertical warfare with the Titanfallâ„¢ . . .
u003Cu002Fdivu003E
u003Cdiv class=r-sf-widget-merchant-qv\u003E
u003Ca href=javascript:void(0); u003EMore details. . . u003Cu002Fau003E
u003Cu002Fdivu003E
u003Cu002Fdivu003Eu003Cu002Fdivu003Eu003Cu002Fdivu003Eu003Cdiv class=r-sf-widget\u003Eu003Cdiv class=r-sf-widget-merchant-cont\u003Eu003Cdiv id=r2 class=item\u003E
u003Cdiv class=r-sf-widget-merchant-img\u003E
u003Ca href=http:u002Fu002Fwww. argos. co. uku002Fproductu002F5204825\u003Eu003Cimg src=http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F5204825_R_SET?$Listers$\u003Eu003Cu002Fau003E
u003Cu002Fdivu003E
u003Cdiv class=r-sf-widget-merchant-title\u003E
u003Ca href=http:u002Fu002Fwww. argos. co. uku002Fproductu002F5204825\u003EBuy HCC Wired Mono Gaming Headset for Xboxu003Cu002Fau003E
u003Cu002Fdivu003E
u003Cdiv class=r-sf-widget-merchant-desc\u003E
The Gioteck HCC Wired Mono Chat Headset for . . .
u003Cu002Fdivu003E
u003Cdiv class=r-sf-widget-merchant-qv\u003E
u003Ca href=javascript:void(0); u003EMore details. . . u003Cu002Fau003E
u003Cu002Fdivu003E
u003Cu002Fdivu003Eu003Cu002Fdivu003Eu003Cu002Fdivu003Eu003Cdiv class=r-sf-widget\u003Eu003Cdiv class=r-sf-widget-merchant-cont\u003Eu003Cdiv id=r3 class=item\u003E
u003Cdiv class=r-sf-widget-merchant-img\u003E
u003Ca href=http:u002Fu002Fwww. argos. co. uku002Fproductu002F5498727\u003Eu003Cimg src=http:u002Fu002Fargos. scene7. comu002Fisu002Fimageu002FArgosu002F5498727_R_SET?$Listers$\u003Eu003Cu002Fau003E
u003Cu002Fdivu003E
u003Cdiv class=r-sf-widget-merchant-title\u003E
u003Ca href=http:u002Fu002Fwww. argos. co. uku002Fproductu002F5498727\u003EBuy Ninja Turtles Mutants in Manhatten Xbox 360u003Cu002Fau003E
u003Cu002Fdivu003E
u003Cdiv class=r-sf-widget-merchant-desc\u003E
Battle alongside your brothers through the sewers, subways, . . .
u003Cu002Fdivu003E
u003Cdiv class=r-sf-widget-merchant-qv\u003E
u003Ca href=javascript:void(0); u003EMore details. . . u003Cu002Fau003E
u003Cu002Fdivu003E
u003Cu002Fdivu003Eu003Cu002Fdivu003Eu003Cu002Fdivu003E,relatedSearches:
u003Cdiv class=r-related-heading\u003ERelated Searchesu003Cu002Fdivu003E
u003Cdiv class=r-related-query\u003E
u003Ca class=r-related-query-link href=\u002Fstaticu002FBrowseu002FID72u002F33014232u002Fc_1u002F1|category_root|Technology|33006169u002Fc_2u002F2|33006169|Video+games+and+consoles|33008137u002Fc_3u002F3|cat_33008137|Headsets|33014232u002Fr_001u002F4|Type|Microphone|1. htm\u003Eturtle beach headsetsu003Cu002Fau003E
u003Cu002Fdivu003E
u003Cdiv class=r-related-query\u003E
u003Ca class=r-related-query-link href=\u002Fproductu002F5196658\u003Edigital hdmi cableu003Cu002Fau003E
u003Cu002Fdivu003E
u003Cdiv class=r-related-query\u003E
u003Ca class=r-related-query-link href=\u002Fstaticu002FBrowseu002FID72u002F33008137u002Fc_1u002F2|33006169|Technology|33006169u002Fc_2u002F2|33006169|Video+games+and+consoles|33008137. htm\u003Exbox 360 nintendo wiiu003Cu002Fau003E
u003Cu002Fdivu003E
u003Cdiv class=r-related-query\u003E
u003Ca class=r-related-query-link href=\u002Fproductu002F5668942\u003Ex rocker black comfortable chairu003Cu002Fau003E
u003Cu002Fdivu003E
u003Cdiv class=r-related-query\u003E
u003Ca class=r-related-query-link href=\u002Fproductu002F4345802\u003Epedestal gaming chairu003Cu002Fau003E
u003Cu002Fdivu003E
u003Cdiv class=r-related-query\u003E
u003Ca class=r-related-query-link href=\u002Fproductu002F2626561\u003Ewii gaming chairu003Cu002Fau003E
u003Cu002Fdivu003E
,scripts:[var br_related_rid = R9tkhjyrmyxzs1jvgxos3-uf,r1,m1;,var br_iuid = aHR0cDovL3d3dy5hcmdvcy5jby51ay9yZXMvc3RhdGljL1Byb2R1Y3QvcGFydE51bWJlci8zNzc2Mjc2Lmh0bQ==;]}}}},plugins:{FetchrPlugin:{xhrPath:u002Fproduct-api,xhrTimeout:3000,corsPath:null}}},plugins:{}}_satellite. pageBottom()window. _bvapiq = window. _bvapiq || []
*Prices correct as displayed but are subject to change. |
|
|