2017-09-08 1 views
11

제 자신의 repricer를 만들었지 만 Amazon의 가격이 업데이트되지 않았습니다.XML이 Amazon MWS에 제대로 제출되었지만 가격이 업데이트되지 않았습니다.

내 코드는 제출 한 후 아마존의 응답을 기반으로 잘 작동하는 것 같습니다. 나는 여기 누군가가 실제로 가격을 업데이 트하지 않는 이유에 대해 더 많이 알고 있기를 바라고있다. Heres는 응답

<?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') 

나는 아마존에서 성공적인 반응을 얻을 수 있기 때문에 내 코드를 보여주는 것은이 경우에 도움이 될 것입니다 알고하지 않습니다

여기에 제출 된 XML입니다. 여기에 관계없이입니다 :

... 

# 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 

답변

0

아마존 API 지원팀에 연락을 마치고 가격이 변경되는 데 최대 15 분이 걸리는 것으로 나타났습니다. 또한 새 제품을 업로드하고 기존 제품의 재고를 & 가격으로 업데이트 한 다른 스크립트가 있습니다.이 스크립트는 제 repricing 스크립트와 경쟁하고있었습니다.

두 번째 스크립트가 기존 제품의 가격을 업데이트하는 방법을 변경하여 문제를 해결했습니다.

+0

이 질문을 닫으십시오. –

0

내가 파이썬 모르지만 당신의 XML은 여기서 확인을 보이는 내가 지난 5 년간 가격 변화를 수행하는 데 사용하는 내 PHP 코드와 그것을 잘 작동합니다. 이것이 PHP처럼 도움이되는지 나는 모른다.

1 아마존은 그들이 말하는 것보다 값을 업데이트 할 수 느립니다 :

$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

는 가능성의 순서로 약 나열 가능한 몇 가지 이유가 있습니다. 피드가 성공적 이었지만 아마존에 변경 사항이 반영되기까지는 아직 일정 기간이 걸릴 수 있습니다 (SellerCentral의 값을 변경하는 경우에도 즉시 발생하지 않는다는 메시지가 표시 될 수 있음).
잠시 후 변경 사항이 결국 표시되는지 확인하십시오.


2. 당신은 대체 재평가 서비스가 여전히 활성있을 수 있습니다. 현재이 SKU에 대해 다른 repricer를 사용중인 경우 시도와 경쟁하고 자체 규칙 집합을 기반으로 가격을 되돌릴 수 있습니다.
GetFeedSubmissionList 호출을 사용하여 다른 _POST_PRODUCT_PRICING_DATA_ 피드가 제출 된 후에 볼 수 있습니다 (제출 된 콘텐츠를 볼 수는 없지만).


3. 외부 허용의 가격 SKU를에 최대 (당신이 그들을 설정 여부)와 충돌, 당신은 설정하려고 가격이있을 수 있습니다입니다 범위. 이는 아마존의 정책 중 하나에 새롭고 업데이트 된 SKU가 기본 설정을 사용하거나 기본 기준을 사용하도록 요구 한 결과입니다.

2015 년 1 월 14 일부터 판매자에게 가격 오류 위험을 줄이고 잠재적 인 부정적인 고객 경험을 피하기위한 노력의 일환으로 판매자 센트럴 환경 설정을 사용하여 담요 선택 "opt- 모든 잠재적 인 낮은 가격 및 높은 가격 오류 규칙에서 "제외"할 수 있습니다. 대신 Amazon의 기본 잠재적 가격 오류 규칙을 해당 제품에 적용하지 않으려면 인벤토리의 각 제품에 대한 최소 및 최대 허용 판매 가격을 설정해야합니다.

나는 그래서 이메일되었을 수도 있지만,이 피드 다시 성공적으로보고 그 상황에서 forums

에 같은 인용이에 발표 페이지를 찾을 수 없습니다

(때문에 그것의 참조/형식이 맞다), 가격 범위는 설정되어 있기 때문에 조용히 실패 할 것이다.
판매자 센트럴 인벤토리 관리 페이지에서 SKU를 보면이 문제가 맞는지 확인할 수 있습니다. 해당 페이지에 대한 기본 설정에 따라 현재 값을 보려면 최소/최대 열을 켜야 할 수 있습니다. 나는 아마존 판매자로부터 샤론 오전

친애하는 판매자,

:

불행히도이 사전에 문제가 될 것입니다 알고 재고 항목에 최소/최대 가격을 끌어 할 방법이 없습니다 지원과 함께 오늘 당신의 관심사를 도와 드리겠습니다.
이메일의 내용에서 '최소 가격'및 '최대 가격'에 대한 보고서를 다운로드 할 수있는 보고서가 있다면 걱정됩니다.
현재 이용 가능한 보고서는 'standard_price'및 'list_price'에 대한 정보 만 제공한다는 사실을 유감스럽게 생각합니다.
실망 스럽지만 인벤토리 보고서에 '최소 가격'과 '최대 가격'을 포함시키지 않았으므로 귀하에게 불편을 끼쳐 드려 죄송합니다. 이 점에서. 아마존 MWS 팀에 지원 티켓, 7월 3일를 통해

,


4. 아마존 피드 활성 증진 동안 가격을 업데이트 할 수 없습니다 가능할 수 2016. "가격"열이 녹색으로 경계가 표시되는 SellerCentral Manage Inventory 페이지를보고 항목이 판매 중인지 확인할 수 있어야합니다.
"Sale"요소와 함께 "StandardPrice"요소를 제공해야하지만 아마존의 "Automate Pricing"도구는 해당 도구가 실패한 경우 possible reason으로 나열합니다.


5. 당신은 잘못된 시장에 가격 업데이트를 적용하고 있습니다.
전화 번호 MarketplaceIdList=[MARKETPLACE_ID],에서 제공되는 ID가 확인중인 마켓과 다른 마켓 플레이스의 ID 인 경우 가격 변경이 표시되지 않습니다.
액세스 권한이없는 마켓 플레이스에 제출하면 아마존은 피드 제출 요청에 실패하므로 하나의 마켓 플레이스 만있는 경우 문제가되지 않을 수 있습니다.


6. 당신은 잘못된 자리에 새로운 가격을 찾고 있습니다.
SellerCentral 인벤토리 관리 페이지에서 찾고있는 경우 "최저 가격"열이 아닌 "가격"열을보고 있는지 확인하십시오.
제품 세부 정보 또는 제공 페이지 (Amazon의 상점 정면)를보고있는 경우 제안 사항을 확인하십시오.세부 정보 페이지에 표시된 주요 제안이나 오퍼 목록 페이지에 표시된 최고 제안이 아닐 수도 있습니다.
물론 SKU/ASIN이 올바른지 확인하십시오.


7.이 다른 피드이지만, 아마존 그냥 재전송하기 위해 공급을 필요로하는, 때로는 정보를 업데이트하지 않는 user has reported.


는 가격 정보 _POST_FLAT_FILE_INVLOADER_DATA_를 업데이트 사용해 볼 수 있습니다 대체 사료가 있지만, 그래서 당신의 XML 스키마가 이전되지 것입니다 플랫 파일 형식 (탭으로 구분)입니다. 문제가 사용중인 특정 피드와 관련이 있다고 생각하는 경우에만 시도해 볼 가치가 있습니다.

관련 문제