phpclassic / php-shopify

PHP SDK for Shopify API
Apache License 2.0
571 stars 210 forks source link

Metafield on Product post #323

Open Lollichkeit opened 6 months ago

Lollichkeit commented 6 months ago

My Code:

...
$metafield = [
        'namespace' => "custom",
        'key' => "message",
        'value' => $message,
        'owner_resource' => "product",
        'owner_id' => $product_id,
        'value_type' => 'single_line_text_field',
];

$metafields = shopify->Product($product_id)->Metafield->post($metafield);
...

My Error: Fatal error: Uncaught PHPShopify\Exception\ApiException: Not Found in /.../phpclassic/php-shopify/lib/ShopifyResource.php:540 Stack trace: #0 /home/svsqauxl/vendor/phpclassic/php-shopify/lib/ShopifyResource.php(419): PHPShopify\ShopifyResource->processResponse(Array, 'metafield') #1 /... .php(213): PHPShopify\ShopifyResource->post(Array) #2 /... .php(126): PHPProduct->updateMetaProducte() #3 {main} thrown in /.../phpclassic/php-shopify/lib/ShopifyResource.php on line 540

Please help me to upload the metadata.

rossvor commented 5 months ago

The type of error you are getting (Not Found) suggests that likely $product_id does not match any product on the store, so double check that you using the correct value there.

Also, provided metafield fields don't look right. Should be something like this:

$metafield = [
        'namespace' => "custom",
        'key' => "message",
        'value' => $message,
        'type' => 'single_line_text_field',
];

Check the Shopify reference here

ankesh4040 commented 2 months ago

@rossvor @Lollichkeit Did it helped ? I am getting error Request failed with HTTP Code 400

ankesh4040 commented 2 months ago
$metafieldv = 
     [     
    'namespace' => "custom",
    'key' => "features",
    'value' => "API updated",
    'type' => 'single_line_text_field'
     ]
;

$metafields = $shopify->Product('7713539269680')->Metafield->post($metafieldv);