Я прочитал это и несколько других дерьмовых руководств, которые не помогли. Я люблю Amazon, но мне очень трудно использовать их API и заставить Amazon принять XML-запрос listItem. Я не могу вернуть returnString из Amazon, и я не уверен, почему. Вот мой код:
$post_string = '<?xml version="1.0" ?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amznenvelope.xsd">
<Header>
<DocumentVersion>1.01</DocumentVersion>
<MerchantIdentifier>' . $merchantID . '</MerchantIdentifier>
</Header>
<MessageType>Product</MessageType>
<PurgeAndReplace>true</PurgeAndReplace>
<Message>
<MessageID>' . rand(1,1000) . '</MessageID>
<OperationType>Update</OperationType>
<Product>
<SKU>'. $product->getSKU() .'</SKU>
<ProductTaxCode>A_GEN_TAX</ProductTaxCode>
<LaunchDate>'.date('Y-m-d') . 'T' . date('H:i:sO');'.</LaunchDate>
<DescriptionData>
<Title>'. $product->getName().'</Title>
<Brand>'.$product->getBrand.'</Brand>
<Description>' . $product->getDescription() . '</Description>
<SearchTerms></SearchTerms>
<SearchTerms></SearchTerms>
<ItemType>flat-sheets</ItemType>
<IsGiftWrapAvailable>false</IsGiftWrapAvailable>
<IsGiftMessageAvailable>false</IsGiftMessageAvailable>
</DescriptionData>i
<ProductData>
<Home>
<Parentage>variation-parent</Parentage>
<VariationData>
<VariationTheme>Size-Color</VariationTheme>
</VariationData>
<Material></Material>
<ThreadCount>500</ThreadCount>
</Home>
</ProductData>
</Product>
</Message>
<Message>
</AmazonEnvelope>';
$header = "POST HTTP/1.0 \r\n";
$header .= "Content-type: text/xml \r\n";
$header .= "Content-length: ". strlen($post_string) ."\r\n";
$header .= "Content-transfer-encoding: text \r\n";
$header .= "Connection: close \r\n\r\n";
$header .= $post_string;
// Create a curl instance
$amazon_api = curl_init();
curl_setopt($amazon_api, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($amazon_api, CURLOPT_URL, "https://".$hosti."/");#."?$query_string" );
curl_setopt($amazon_api, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($amazon_api, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($amazon_api, CURLOPT_POST, 1);
curl_setopt($amazon_api, CURLOPT_USERAGENT, 'OutdoorOutlet/1.0 (Language=PHP; Host=www.outdooroutlet.com)');
$returnString = trim(curl_exec($amazon_api));
Любое предложение о том, как сделать это более простым способом или если есть какие-то модули для php, которые я мог бы использовать, чтобы упростить листинг. Если вам нужно больше кода или объяснение того, что я делаю, просто дайте мне знать. Я действительно не знаю, каким должен быть мой следующий шаг :( Спасибо за помощь!