As for the first question about MCC & MCA logins, I have no idea. Tyler should be able to help with that one.
As for the second, here is some code I've used, that you should be able to adapt:
// ===============================================================================
// Get item prices from shopping account
// ===============================================================================
function getItemPricesNames(merchants) {
var pageToken;
var pageNum = 1;
var maxResults = 250;
// List all the products for a given merchant.
var itemPricesNames = {};
for (var account in merchants) {
do {
var products = ShoppingContent.Products.list(account, {
pageToken: pageToken,
maxResults: maxResults
});
//Logger.log('Page ' + pageNum);
if (products.resources) {
for (var i = 0; i < products.resources.length; i++) {
itemPricesNames[products.resources[i].offerId] = {};
itemPricesNames[products.resources[i].offerId]['price'] = products.resources[i].price.value;
itemPricesNames[products.resources[i].offerId]['name'] = products.resources[i].title;
itemPricesNames[products.resources[i].offerId]['account'] = merchants[account];
// Logger.log('Item [' + products.resources[i].offerId + '] ==> ' + itemPrices[products.resources[i].offerId].price);
}
} else {
Logger.log('No more products in ' + merchants[account]);
}
pageToken = products.nextPageToken;
pageNum++;
} while (pageToken);
}
return itemPricesNames;
} // getItemPricesNames
// ==============================================================
This creates an object {offerId : { price : xxxxx, name : yyyyy, account : zzzzz}}. You should be able to modify it to grab name and url (look in products.resources[i].link).
I use this on an account with 10,000 items and it runs in around 1 minute. If you have considerably more, you can look at creating a Google Sheet with the offerIds and url, and then read that sheet and create the object you need. It should be faster that way.
Thanks,
Andy