我想使用亚马逊销售合作伙伴应用编程接口更改产品的形象,但在createFeed阶段遇到错误!
关于开发环境
Laravel Framework 8.49.1 pkg jlevers/selling partner-api: 3.1
我是日本人,所以课文中可能有一些奇怪的英语。对不起。
我想使用sp api的create feed来更改我在Amazon上注册的产品的图像,但是在create feed阶段发生了一个错误。
但是,在创建摘要阶段会发生错误。create feed之前的create document没有生成错误,并返回200。
代码本身几乎全部取自jlevers/selling-partner-api,说明遵循官方github指南。我是日本人,所以课文中可能有一些奇怪的英语。
错误内容
[400] {"errors": [{"code": "InvalidInput","message": "Invalid request parameters","details": ""}]除了这个api,我还使用了report api,它的工作没有任何特定的错误,所以我不认为这是一个错误,需要的参数,如客户端ID,但它没有在错误消息中明确说明哪些参数是错误的,我已经被困在这里两天了,我快疯了……
我试着用英文、日文和中文进行搜索,但出现类似错误的人并不多,github上的问题也没有解决这个问题,所以我找不到。
我想知道是否有人能告诉我这是什么。
代码
$config = new Configuration([
"lwaClientId" => config('client_id'),
"lwaClientSecret" => config('secret_id'),
"lwaRefreshToken" => config('refresh_token'),
"awsAccessKeyId" => config('aws_key'),
"awsSecretAccessKey" => config('aws_secret'),
"endpoint" => SellingPartnerApi\Endpoint::FE,
]);
$feedType = FeedType::POST_PRODUCT_IMAGE_DATA;
$feedsApi = new FeedsApi($config);
// Create feed document
\Log::debug("before create feed document");
$createFeedDocSpec = new Feeds\CreateFeedDocumentSpecification(['content_type' => $feedType['contentType']]);
$feedDocumentInfo = $feedsApi->createFeedDocument($createFeedDocSpec);
$feedDocumentId = $feedDocumentInfo->getFeedDocumentId();
$feedContents = <<<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>****</MerchantIdentifier>
</Header>
<MessageType>ProductImage</MessageType>
<Message>
<MessageID>1</MessageID>
<OperationType>Update</OperationType>
<ProductImage>
<SKU>*********</SKU>
<ImageType>Main</ImageType>
<ImageLocation>http://***/***.jpg</ImageLocation>
</ProductImage>
</Message>
</AmazonEnvelope>
EOD;
$docToUpload = new SellingPartnerApi\Document($feedDocumentInfo, $feedType);
$docToUpload->upload($feedContents);
$body = new Feeds\CreateFeedSpecification([
'feed_type' => $feedType["name"],
"marketplace_ids" => ["A1VC38T7YXB528"],
"input_feed_document_id" => $feedDocumentId,
]);
$apiInstance = new FeedsApi($config);
try {
$result = $apiInstance->createFeed($body);
print_r($result);
} catch (Exception $e) {
$res = "";
\Log::debug('Exception when calling SellersApi->getMarketplaceParticipations: '. $e->getMessage());
}抱歉,我情不自禁地发布了代码,所以我将其上传到了google drive。上面的链接指向google驱动器。
最后,我想知道我是否遗漏了任何信息来解决这个问题,以便我可以立即更正它。
发布于 2021-10-08 11:13:50
不确定您是否仍然遇到问题,但当卖家帐户处于非活动/停用状态时,这是常见的错误(尽管令人困惑),更新您的收费方法并等待48小时可能会起到作用。还可以致电Amazon销售商支持人员,以在销售商中心的案例日志中复查或创建案例。
https://stackoverflow.com/questions/69143278
复制相似问题