2015-06-18 9 views
6

Sto scrivendo uno script automatico per elencare i prodotti sul mercato Amazon, Funziona benissimo per il 95% dei prodotti che sto cercando di elencare, ma sto avendo problemi con oggetti particolari, come come elenchi "bulk deal" o "pack of X".Codice a barre di Amazon sul mercato alla quantità di prodotto

Per esempio, ho un prodotto con un codice a barre EAN di 7613032631703, e posso interrogare l'API Amazon per informazioni sui prodotti con un codice a barre con qualcosa di simile

$amazon_api = new MarketplaceWebServiceProducts_Client(
    AWS_ACCESS_KEY_ID, 
    AWS_SECRET_ACCESS_KEY, 
    APPLICATION_NAME, 
    APPLICATION_VERSION, 
    [ 
     'ServiceURL' => 'https://mws-eu.amazonservices.com/Products/2011-10-01', 
     'ProxyHost' => null, 
     'ProxyPort' => -1, 
     'ProxyUsername' => null, 
     'ProxyPassword' => null, 
     'MaxErrorRetry' => 3, 
    ] 
); 

$list = new MarketplaceWebServiceProducts_Model_IdListType(); 
$list->setId('7613032631703'); 

$request = new MarketplaceWebServiceProducts_Model_GetMatchingProductForIdRequest(); 
$request->setSellerId(SELLER_ID); 
$request->setIdType('EAN'); 
$request->setMarketplaceId(MARKETPLACE_ID); 
$request->setIdList($list); 
$response = $amazon_api->getMatchingProductForId($request); 

che poi mi restituisce un oggetto MarketplaceWebServiceProducts_Model_GetMatchingProductForIdResponse , che posso usare bene.

Ma i tutti i risultati Amazon ha restituiti sono di elenchi di prodotti di bulk buys for this product, che, per quanto posso dire significa Amazon hanno sbagliato, come in questo esempio, il codice a barre EAN 7613032631703 si traduce in un unico pacchetto di x12 di questo prodotto, dove Amazon sta dicendo che è lo stesso prodotto, ma in un multipack da 4 (quindi 48 pacchetti in totale).

Ovviamente non voglio impostare il mio prodotto sullo stesso ASIN degli elenchi "bulk deal", poiché li sto vendendo singolarmente.

C'è un modo per impedirlo? Non riesco a trovare da nessuna parte nei documenti dell'API di Amazon la menzione di una "quantità di inserzioni" o di "valori di relazione stock" o qualcosa che potrei usare per identificare quando usano un codice a barre singolare per gli elenchi che sono effettivamente multipercorsi.

Mille grazie per le idee che chiunque può darmi.

Edit:

Dopo aver guardato ulteriormente in questo, io sono al punto in cui non credo che sia possibile. In poche parole, ci sono inserzioni errate su Amazon e non ci si può fidare delle informazioni che Amazon offre per essere in grado di automatizzare ogni elenco.

La più alta speranza che ho avuto era un attributo sul risultato di MarketplaceWebServiceProducts_Model_ListMatchingProductsRequest, se si scava in AttributeSets è possibile trovare PackageQuantity per l'elenco. Nell'esempio che ho dato per il codice a barre 7613032631703 alcune delle inserzioni restituite hanno uno PackageQuantity di 4, che sarebbe corretto! E potresti quindi utilizzare nell'automazione di questo processo. Ma diversi altri elenchi per lo stesso prodotto hanno uno PackageQuantity di 1, uno di loro ha uno PackageQuantity di 48 .... i dati forniti da Amazon sono solo imprecisi (non è proprio colpa loro se questi annunci sono sbagliati, chiunque ha creato l'annuncio in il primo posto ha sbagliato, ma penso che dovrebbero sorvegliare e sistemare meglio questi elenchi).

Sono davvero interessato se qualcuno ha trovato una soluzione solida che consente l'automazione, ma se qualcun altro è qui con lo stesso problema, non penso che sia probabile, e sconsiglio di provare ad automatizzarlo come i potenziali errori che potrebbe fare sono enormi.

risposta

0

Ho fatto questo per un cliente. Ho finito per dover raschiare la pagina che ti lasciavano vedere. Non sono sicuro di dove lo trovi ma esiste. L'ho fatto circa un anno fa e come te ero come, è impossibile. Ma avevo un cliente che mi lanciava enormi quantità di denaro per capirlo, quindi l'ho fatto accadere.

Mi ci sono volute ore per codificare l'algoritmo per lo scraping in quanto era così complicato ottenere esattamente ciò di cui avevo bisogno e anche richieste di chiamate all'API in mezzo. Sono sicuro che questa è stata una sorta di violazione dei loro TOS, quindi lasciatemi smentire dicendo che è possibile, ma questo è solo a scopo informativo. Non dovresti violare i TOS.

Spero che questo aiuti. :)