Php 如何从Magento外部更新产品信息

Php 如何从Magento外部更新产品信息,php,magento2,Php,Magento2,我想以编程方式更新产品信息,如数量、价格等。 (从Magento源目录外部。) 我该怎么做呢?Magento很容易引导。如果您想要一个可以访问所有函数的独立脚本,只需在PHP文件顶部添加以下内容: 之后,您可以加载所有模型。要更新您的产品,我建议您采用两种方式。常规的: Mage::getModel('catalog/product')->setStoreId($myStoreId)->load($myProductId) ->设定价格(50) ->save(); 或API模型用法: Ma

我想以编程方式更新产品信息,如数量、价格等。 (从Magento源目录外部。)


我该怎么做呢?

Magento很容易引导。如果您想要一个可以访问所有函数的独立脚本,只需在PHP文件顶部添加以下内容:

之后,您可以加载所有模型。要更新您的产品,我建议您采用两种方式。常规的:

Mage::getModel('catalog/product')->setStoreId($myStoreId)->load($myProductId)
->设定价格(50)
->save();
或API模型用法:


Magento很容易引导。如果您想要一个可以访问所有函数的独立脚本,只需在PHP文件顶部添加以下内容:

之后,您可以加载所有模型。要更新您的产品,我建议您采用两种方式。常规的:

Mage::getModel('catalog/product')->setStoreId($myStoreId)->load($myProductId)
->设定价格(50)
->save();
或API模型用法:


我强烈建议利用M2x中可用的RESTAPI来创建/更新产品及其属性。
注意:您可以选择在Magento 2中使用OAuth或承载令牌来验证/授权API调用

您可以在此处找到有关Magento 2.1中提供的所有API的其他信息-

在标题为
catalogProductRepositoryV1

  • 使用搜索/筛选条件获取产品信息->
    Get/V1/products
  • 获取特定产品的信息->
    Get/V1/products/{sku}
  • 创建新产品->
    POST/V1/products
  • 创建/更新特定产品->
    PUT/V1/products/{sku}
我还没有测试代码,但我认为类似这样的东西应该可以做到:

    $BEARER_TOKEN_TO_USE_FOR_TRANSACTION = 'XYZ';

    $REQUEST_HEADER = array( 
                        "Authorization => Bearer ". $BEARER_TOKEN_TO_USE_FOR_TRANSACTION , 
                        "cache-control: no-cache",
                        "content-type: application/json"
                        ); 
    $REQUEST_URL='INSTANCE_URL/rest/V1/products';

    $PRODUCT_DATA_TO_USE ='{
      "product": {
        ENTER_PRODUCT_ATTRIBUTES_AS_JSON
    } }';

    $CURL_OBJ = curl_init($REQUEST_URL); 

    $CURL_OPTIONS_ARRAY_TO_USE = array (
        CURLOPT_HTTPHEADER => $REQUEST_HEADER,
        CURLOPT_CUSTOMREQUEST => "POST",
        CURLOPT_POSTFIELDS => $PRODUCT_DATA_TO_USE,
        CURLOPT_URL => $REQUEST_URL,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
    );

    curl_setopt_array($CURL_OBJ, $CURL_OPTIONS_ARRAY_TO_USE);
    $result = curl_exec($CURL_OBJ);
    $result =  json_decode($result);
    echo 'Output -> " . $result;

我强烈建议利用M2x中可用的RESTAPI来创建/更新产品及其属性。
注意:您可以选择在Magento 2中使用OAuth或承载令牌来验证/授权API调用

您可以在此处找到有关Magento 2.1中提供的所有API的其他信息-

在标题为
catalogProductRepositoryV1

  • 使用搜索/筛选条件获取产品信息->
    Get/V1/products
  • 获取特定产品的信息->
    Get/V1/products/{sku}
  • 创建新产品->
    POST/V1/products
  • 创建/更新特定产品->
    PUT/V1/products/{sku}
我还没有测试代码,但我认为类似这样的东西应该可以做到:

    $BEARER_TOKEN_TO_USE_FOR_TRANSACTION = 'XYZ';

    $REQUEST_HEADER = array( 
                        "Authorization => Bearer ". $BEARER_TOKEN_TO_USE_FOR_TRANSACTION , 
                        "cache-control: no-cache",
                        "content-type: application/json"
                        ); 
    $REQUEST_URL='INSTANCE_URL/rest/V1/products';

    $PRODUCT_DATA_TO_USE ='{
      "product": {
        ENTER_PRODUCT_ATTRIBUTES_AS_JSON
    } }';

    $CURL_OBJ = curl_init($REQUEST_URL); 

    $CURL_OPTIONS_ARRAY_TO_USE = array (
        CURLOPT_HTTPHEADER => $REQUEST_HEADER,
        CURLOPT_CUSTOMREQUEST => "POST",
        CURLOPT_POSTFIELDS => $PRODUCT_DATA_TO_USE,
        CURLOPT_URL => $REQUEST_URL,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
    );

    curl_setopt_array($CURL_OBJ, $CURL_OPTIONS_ARRAY_TO_USE);
    $result = curl_exec($CURL_OBJ);
    $result =  json_decode($result);
    echo 'Output -> " . $result;
    $BEARER_TOKEN_TO_USE_FOR_TRANSACTION = 'XYZ';

    $REQUEST_HEADER = array( 
                        "Authorization => Bearer ". $BEARER_TOKEN_TO_USE_FOR_TRANSACTION , 
                        "cache-control: no-cache",
                        "content-type: application/json"
                        ); 
    $REQUEST_URL='INSTANCE_URL/rest/V1/products';

    $PRODUCT_DATA_TO_USE ='{
      "product": {
        ENTER_PRODUCT_ATTRIBUTES_AS_JSON
    } }';

    $CURL_OBJ = curl_init($REQUEST_URL); 

    $CURL_OPTIONS_ARRAY_TO_USE = array (
        CURLOPT_HTTPHEADER => $REQUEST_HEADER,
        CURLOPT_CUSTOMREQUEST => "POST",
        CURLOPT_POSTFIELDS => $PRODUCT_DATA_TO_USE,
        CURLOPT_URL => $REQUEST_URL,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
    );

    curl_setopt_array($CURL_OBJ, $CURL_OPTIONS_ARRAY_TO_USE);
    $result = curl_exec($CURL_OBJ);
    $result =  json_decode($result);
    echo 'Output -> " . $result;