#php #amazon-web-services #amz-sp-api
Вопрос:
Я хочу изменить изображение продукта с помощью API партнера по продажам amazon, но на этапе создания я получаю ошибку!
О среде разработки
Платформа Laravel 8.49.1 pkg jlevers/продажа-партнер-api : 3.1
Я японец, так что в тексте может быть какой-то странный английский. Мне жаль.
Я хочу использовать канал создания sp api для изменения изображений моих зарегистрированных продуктов на Amazon, но на этапе создания канала возникает ошибка.
Однако на этапе создания ленты возникает ошибка. Создание документа до создания ленты не создает ошибку и возвращает 200.
Сам код почти полностью взят из jlevers/selling-partner-api, а инструкции следуют официальному руководству github. Я японец, так что в тексте может быть какой-то странный английский.
Содержание Ошибки
[400] {"errors": [{"code": "InvalidInput","message": "Invalid request parameters","details": ""}]
В дополнение к этому api я также использую api отчетов, который работает без каких-либо особых ошибок, поэтому я не думаю, что это ошибка с необходимыми параметрами, такими как идентификатор клиента, но в сообщении об ошибке четко не указано, какие параметры неверны, и я застрял здесь на два дня, и я схожу с ума…
Я попытался выполнить поиск на английском, японском и китайском языках, но было не так много людей с подобными ошибками, и проблемы на 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" => SellingPartnerApiEndpoint::FE,
]);
$feedType = FeedType::POST_PRODUCT_IMAGE_DATA;
$feedsApi = new FeedsApi($config);
// Create feed document
Log::debug("before create feed document");
$createFeedDocSpec = new FeedsCreateFeedDocumentSpecification(['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 SellingPartnerApiDocument($feedDocumentInfo, $feedType);
$docToUpload->upload($feedContents);
$body = new FeedsCreateFeedSpecification([
'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 диск.
Приведенная выше ссылка ведет на Google диск.
Наконец, я хотел бы знать, есть ли какая-либо информация, которой мне не хватает для решения этой проблемы, чтобы я мог немедленно ее исправить.
Ответ №1:
не уверен, что у вас все еще возникают проблемы, но эта ошибка распространена (хотя и сбивает с толку), когда учетные записи продавцов неактивны / деактивированы, а обновление способа оплаты и ожидание 48 часов могут помочь. Также можно позвонить в службу поддержки продавцов Amazon, чтобы перепроверить или создать обращение в журнале обращений в центре продаж.
Комментарии:
1. Спасибо. Я совершенно забыл, что задал этот вопрос там. Я уже решил эту проблему. Вы были правы, это была ошибка, которая возникла из-за того, что моя учетная запись Amazon была неактивна. Я связался с Amazon и активировал свою учетную запись, и это решило проблему! тнх