Задать вопрос
  • Как добавить новый продукт в Magento через REST API?

    @antonza86 Автор вопроса
    @xmeoff Тоже пробовал, ничего не выдаёт. хотя если запрашиваю на примую API 127.0.0.1/magento/api/rest/products?type=rest то выдаёт полный список продуктов имеющихся в Magento
  • Как добавить новый продукт в Magento через REST API?

    @antonza86 Автор вопроса
    @xmeoff Да я и хотел убрать, но все равдо для тестирования и все локально делаю)
  • Как добавить новый продукт в Magento через REST API?

    @antonza86 Автор вопроса
    @xmeoff выстовил код, может разрешение каким то файлом нужно дать?
  • Как добавить новый продукт в Magento через REST API?

    @antonza86 Автор вопроса
    Использовал пример с оффициального сайта:

    <?php
    /**
    * Example of simple product POST using Admin account via Magento REST API. OAuth authorization is used
    */
    $callbackUrl = "http://127.0.0.1/magento/oauth_admin.php";
    $temporaryCredentialsRequestUrl = "http://127.0.0.1/magento/index.php/oauth/initiate?oauth_callback=" . urlencode($callbackUrl);
    $adminAuthorizationUrl = 'http://127.0.0.1/magento/index.php/oauth/authorize';
    $accessTokenRequestUrl = 'http://127.0.0.1/magento/index.php/oauth/token';
    $apiUrl = 'http://127.0.0.1/magento/api/rest';
    $consumerKey = '323cbc15529241f0682423eba99281af';
    $consumerSecret = '3ddbaf8e14e49578b8cf3e549c4e897c';
    
    session_start();
    if (!isset($_GET['oauth_token']) && isset($_SESSION['state']) && $_SESSION['state'] == 1) {
        $_SESSION['state'] = 0;
    }
    try {
        $authType = ($_SESSION['state'] == 2) ? OAUTH_AUTH_TYPE_AUTHORIZATION : OAUTH_AUTH_TYPE_URI;
        $oauthClient = new OAuth($consumerKey, $consumerSecret, OAUTH_SIG_METHOD_HMACSHA1, $authType);
        $oauthClient->enableDebug();
    
        if (!isset($_GET['oauth_token']) && !$_SESSION['state']) {
            $requestToken = $oauthClient->getRequestToken($temporaryCredentialsRequestUrl);
            $_SESSION['secret'] = $requestToken['oauth_token_secret'];
            $_SESSION['state'] = 1;
            header('Location: ' . $adminAuthorizationUrl . '?oauth_token=' . $requestToken['oauth_token']);
            exit;
        } else if ($_SESSION['state'] == 1) {
            $oauthClient->setToken($_GET['oauth_token'], $_SESSION['secret']);
            $accessToken = $oauthClient->getAccessToken($accessTokenRequestUrl);
            $_SESSION['state'] = 2;
            $_SESSION['token'] = $accessToken['oauth_token'];
            $_SESSION['secret'] = $accessToken['oauth_token_secret'];
            header('Location: ' . $callbackUrl);
            exit;
        } else {
            $oauthClient->setToken($_SESSION['token'], $_SESSION['secret']);
            $resourceUrl = "$apiUrl/products";
            $productData = json_encode(array(
                'type_id'           => 'simple',
                'attribute_set_id'  => 4,
                'sku'               => 'simple' . uniqid(),
                'weight'            => 1,
                'status'            => 1,
                'visibility'        => 4,
                'name'              => 'Simple Product',
                'description'       => 'Simple Description',
                'short_description' => 'Simple Short Description',
                'price'             => 99.95,
                'tax_class_id'      => 0,
            ));
            $headers = array('Content-Type' => 'application/json');
            $oauthClient->fetch($resourceUrl, $productData, OAUTH_HTTP_METHOD_POST, $headers);
            print_r($oauthClient->getLastResponseInfo());
        }
    } catch (OAuthException $e) {
        print_r($e);
    }