2017-09-08 9 views
11

Kendi repricer'larımı oluşturdum ancak Amazon'un fiyatında güncelleme yapılamıyor.XML, Amazon MWS'ye çok iyi bir şekilde gönderildi ancak fiyat güncellenemedi

Kodum, gönderildikten sonra Amazon'dan gelen yanıt temelinde gayet iyi çalışıyor gibi görünüyor. Buradaki birisinin fiyatın gerçekte neden güncellenmediği hakkında daha fazla bilgi sahibi olmasını umuyorum. İşte yanıtı

<?xml version="1.0" encoding="utf-8" ?> 
<AmazonEnvelope 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"> 
    <Header> 
     <DocumentVersion>1.01</DocumentVersion> 
     <MerchantIdentifier>MERCHANTID</MerchantIdentifier> 
    </Header> 
    <MessageType>Price</MessageType> 
    <Message> 
     <MessageID>1</MessageID> 
     <Price> 
      <SKU>mysku</SKU> 
      <StandardPrice currency="USD">350.50</StandardPrice> 
     </Price> 
    </Message> 
</AmazonEnvelope> 

:

GetFeedSubmissionResultResponse{}(ResponseMetadata: <Element_?/ResponseMetadata_0x7fee61f74248>, GetFeedSubmissionResultResult: <Element_?/GetFeedSubmissionResultResult_0x7fee61f74248>, AmazonEnvelope: 
{'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:noNamespaceSchemaLocation': 'amzn-envelope.xsd'}, DocumentVersion: '1.02', MerchantIdentifier: 'M_EXAMPLE_1234', Header: '\n\t', MessageType: 'ProcessingReport', MessageID: '1', DocumentTransactionID: '4200000000', StatusCode: 'Complete', MessagesProcessed: '1', MessagesSuccessful: '1', MessagesWithError: '0', MessagesWithWarning: '0', ProcessingSummary: '\n\t\t\t', ProcessingReport: '\n\t\t', Message: '\n\t') 

Ben Amazon başarılı yanıt almak beri benim kodunu gösteren bu durumda yardımcı olacaktır bilmiyorum

İşte sunulan XML var. İşte bakılmaksızın geçerli:

... 

# Provide credentials. 
conn = MWSConnection(
    aws_access_key_id=AWS_ACCESS_KEY_ID, 
    aws_secret_access_key=AWS_SECRET_ACCESS_KEY, 
    Merchant=AMZ_SELLER_ID 
) 

# Get the service resource 
sqs = boto3.resource('sqs') 

# Get the queue 
queue = sqs.get_queue_by_name(QueueName=SQS_QUEUE_NAME) 

for index, message in enumerate(queue.receive_messages(MaxNumberOfMessages=10)): 

    ... 

    import time 
    from jinja2 import Environment, PackageLoader 

    env = Environment(loader=PackageLoader('repricer', 'xml_templates'), trim_blocks=True, lstrip_blocks=True) 
    template = env.get_template('_POST_PRODUCT_PRICING_DATA_.xml') 

    class Message(object): 
     def __init__(self, s, price): 
      self.SKU = s 
      self.PRICE = round(price, 2) 
      self.CURRENCY = USD_CURRENCY 

    feed_messages = [ 
     Message(sku.sku, new_price), 
    ] 

    namespace = dict(MerchantId=AMZ_SELLER_ID, FeedMessages=feed_messages) 
    feed_content = template.render(namespace).encode('utf-8') 

    print(feed_content) 

    feed = conn.submit_feed(
     FeedType='_POST_PRODUCT_PRICING_DATA_', 
     PurgeAndReplace=False, 
     MarketplaceIdList=[MARKETPLACE_ID], 
     content_type='text/xml', 
     FeedContent=feed_content 
    ) 

    feed_info = feed.SubmitFeedResult.FeedSubmissionInfo 
    print('Submitted product feed: ' + str(feed_info)) 

    while True: 
     submission_list = conn.get_feed_submission_list(
      FeedSubmissionIdList=[feed_info.FeedSubmissionId] 
     ) 
     info = submission_list.GetFeedSubmissionListResult.FeedSubmissionInfo[0] 
     submission_id = info.FeedSubmissionId 
     status = info.FeedProcessingStatus 
     print('Submission Id: {}. Current status: {}'.format(submission_id, status)) 

     if status in ('_SUBMITTED_', '_IN_PROGRESS_', '_UNCONFIRMED_'): 
      print('Sleeping and check again....') 
      time.sleep(60) 
     elif status == '_DONE_': 
      feedResult = conn.get_feed_submission_result(FeedSubmissionId=submission_id) 
      print(feedResult) 
      break 
     else: 
      print("Submission processing error. Quit.") 
      break 

cevap

0

Amazon API desteğiyle iletişime geçtim ve fiyatın değişmesi 15 dakika kadar sürdüğünü öğrendiler. Ayrıca yeni ürünler yükleyen ve mevcut ürünler için envanter & fiyatını güncelleyen başka bir scriptim vardı ... bu script, repricing script'imle yarışıyordu.

İkinci komut dosyasının mevcut ürünler için fiyatı nasıl güncelleştirdiğini değiştirerek bu sorunu çözdüm.

+0

lütfen bu soruyu kapatın –

0

Python bilmiyorum ama XML burada ok görünüyor ben son 5 yıldır fiyat değişikliği yapmak için kullandıkları benim PHP kodu olduğunu ve gayet iyi çalışıyor. Bunun PHP olarak size yardımcı olup olmadığını bilmiyorum.

1. Amazon olduklarını söyledikleri daha değerlerini güncellemek için yavaştır:

$feed = <<< EOD 
<?xml version="1.0" encoding="utf-8"?> 
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"> 
<Header> 
<DocumentVersion>1.01</DocumentVersion> 
<MerchantIdentifier>$merchant_token</MerchantIdentifier> 
</Header> 
<MessageType>Price</MessageType> 
<Message> 
    <MessageID>1</MessageID> 
    <Price> 
    <SKU>$sku</SKU> 
    <StandardPrice currency="$currency">$new_price</StandardPrice> 
    </Price> 
</Message> 
</AmazonEnvelope> 
EOD; 
    $feed = trim($feed); 

    $feedHandle = @fopen('php://temp', 'rw+'); 
    fwrite($feedHandle, $feed); 
    rewind($feedHandle); 
    $parameters = array(
     'Merchant' => $MERCHANT_ID, 
     'MarketplaceIdList' => $marketplaceIdArray, 
     'FeedType' => '_POST_PRODUCT_PRICING_DATA_', 
     'FeedContent' => $feedHandle, 
     'PurgeAndReplace' => false, //Leave this PurgeAndReplace to false so that it want replace whole product in amazon inventory 
     'ContentMd5' => base64_encode(md5(stream_get_contents($feedHandle), true)) 
    ); 
    rewind($feedHandle); 

    $request = new MarketplaceWebService_Model_SubmitFeedRequest($parameters); 
    $return_feed = invokeSubmitFeed($service, $request, $price_change_info_log); 

    fclose($feedHandle); 
4

olasılığının sırayla kabaca listelenmiş olası birkaç nedeni vardır. Beslemenin başarılı olmasına rağmen, bu değişikliğin Amazon'da yansıtılmasından önce bir süre geçmesi mümkündür (SellerCentral'den gelen değerler bile, anlık olmayan bir mesajla birlikte gelir).
Birkaç dakika bekleyin ve değişikliğin ortaya çıkıp çıkmadığını görün.


2. Sen alternatif yeniden fiyatlama hizmeti hala etkin olabilir. Şu anda bu SKU için başka bir repricer kullanıyor iseniz, girişimlerinizle yarışıyor olabilir ve fiyatı kendi kural kümesine göre geri alabilirsiniz.
Başka bir _POST_PRODUCT_PRICING_DATA_ feed'inizin gönderilip gönderilmediğini görmek için GetFeedSubmissionList çağrısını kullanabilirsiniz (ancak gönderilen içeriği görüntülemenin bir yolu yoktur).


3. dışında izin ait fiyatları SKU'sunda dakika ve max (bunları ayarlamak veya olmasın) ile bir çakışma ve ayarlamak çalıştı fiyat da olabilir olduğunu aralık. Bu, Amazon'un yeni ve güncellenmiş SKU'ları bu kümelere sahip olmasını gerektiren veya varsayılan bir ölçüt kullandığı politikalarından birinin sonucudur.

satıcılara fiyat hata risklerini azaltmak ve 14 Ocak 2015 tarihinde başlayan olumsuz müşteri deneyimleri önlemek amacıyla devam eden çaba

, bir battaniye “OPT seçmek için Merkez tercihlerinizi Satıcı kullanmak mümkün olmayacaktır Tüm potansiyel düşük ve yüksek fiyatlandırma hata kurallarından. Bunun yerine, Amazon’un varsayılan potansiyel fiyatlandırma hatası kurallarının söz konusu ürüne uygulanmasını istemiyorsanız, envanterinizdeki her ürün için minimum ve maksimum izin verilen satış fiyatı belirlemeniz gerekir.

Ben bu yüzden email olmuş olabilir, ama geri besleme başarılı bildirir Bu şartlar altında forums

böyle diye anılır, bu konuda bir duyuru sayfayı bulamıyor

(çünkü referansları/formatı doğrudur), ancak ayarlanan fiyat aralığı sınırları nedeniyle fiyat değişikliği sessizce başarısız olur.
Sorunuzun bu olup olmadığını SatıcıSentral Yönetimi Envanteri sayfasındaki SKU'yu görüntüleyerek doğrulayabilirsiniz. Bu sayfaya ayarlanan tercihlerinize bağlı olarak mevcut değerleri görüntülemek için min/max sütunlarını açmanız gerekebilir. Ben Amazon Seller dan Sharon duyuyorum

Sevgili Seller,

:

Ne yazık ki, bu vaktinden bir sorunu olacaksa bilmek envanter öğeleri min/max fiyatları çekmek için bir yol yoktur Destek ve ben size endişenizle bugün yardımcı olacağım.
E-postanızın içeriğinden, 'Minimum Fiyat' ve 'Maksimum Fiyat' için raporu indirebileceğiniz herhangi bir rapor olup olmadığından endişe duyduğunuzu anlıyorum.
Şu an itibariyle mevcut olan raporların sadece 'standard_price' ve 'list_price' için bilgi sağlayacağını size bildirmek isterim.
Bunun sizin için bir hayal kırıklığı olduğunu anlıyorum, ancak envanter raporlarında 'Minimum Fiyat' ve 'Maksimum Fiyat'ın dahil edilmesinin bu özelliği içermediğini ve neden olduğu tüm rahatsızlıklardan dolayı içtenlikle özür dilediğimizi lütfen anlayın. bu konuda. Amazon MWS ekibine destek çağrısına, Tem 03 üzeri

,


4. O Amazon besleme aktif promosyon sırasında bir fiyat güncellemek için izin vermez mümkün olabilir 2016. "Fiyat" sütununun yeşille sınırlanacağı, SatıcıMerkezi Yönetim Envanteri sayfasını görüntüleyerek bir ürünün satışa sunulup sunulmadığını kontrol etmelisiniz.
"Satış" öğesiyle birlikte sağlanacak "Standart Fiyat" öğesine gereksinim duyması muhtemel görünmüyor, ancak Amazon'un "Otomatikleştirme Fiyatlandırması" aracı, aracın başarısız olması için bunu possible reason olarak listeliyor.


5. Yanlış pazara fiyat güncellemesini uygulamaktadırlar.
MarketplaceIdList=[MARKETPLACE_ID], altındaki çağrıya verilen kimlik, kontrol ettiğiniz üründen farklı bir pazar içinse, fiyat değişikliğini göremezsiniz.
Amazon, erişiminiz olmayan bir pazara gönderirseniz, feed gönderim isteğinde başarısız olur, bu nedenle yalnızca bir pazarınız varsa bu sorun olmayabilir.


6. Yanlış yerde yeni fiyatın arıyoruz.
SellerCentral Manage Inventory sayfasının altına bakarsanız, "Fiyat" sütununa değil "En Düşük Fiyat" sütununa baktığınızdan emin olun.
Ürünün detaylarını veya tekliflerini (Amazon'un mağazasında) arıyorsanız, teklifinize baktığınızdan emin olun.Ayrıntı sayfasında gösterilen ana teklif veya teklif girişi sayfasında gösterilen en iyi teklif olmayabilir.
Ve tabi ki, doğru SKU/ASIN olduğundan emin olun.


7. Bu farklı besleme için, ancak Amazon sadece yeniden gönderilmesinin beslemeyi gerektiren, bazen bilgileri güncellemek olmayan bir user has reported.


Eğer fiyat bilgilerini _POST_FLAT_FILE_INVLOADER_DATA_ güncelleştirmeye kullanmayı deneyebilirsiniz alternatif besleme vardır, ama o kadar XML şema üzerinde aktarmak olmaz bir düz dosya tipi (sınırlandırılmış sekme) 'dir. Muhtemelen, sorunun, kullandığınız belirli feed ile ilgili olduğunu düşünüyorsanız denemeye değer.

İlgili konular