[英]Laravel + Shopify Osiset productVariantUpdate GraphQL
I want update the prices of product variants in bulk using "osiset/Basic-Shopify-API" package.我想使用“osiset/Basic-Shopify-API”package 批量更新产品变体的价格。
This query works perfectly:此查询完美运行:
$variant['input']['id'] = "gid://shopify/ProductVariant/31576237899799";
$variant['input']['price'] = 1;
$productVariant = $api->graph('
mutation productVariantUpdate($input: ProductVariantInput!)
{productVariantUpdate(input: $input) {userErrors { field message }}}
',$variant);
Now I want to pass many product variants to mutation.现在我想将许多产品变体传递给突变。
I found this GraphQL query:我找到了这个 GraphQL 查询:
mutation{
ProductVariant1: productVariantUpdate(input: {
id: "gid://shopify/ProductVariant/27868413755001",
price: 34.97
}){
productVariant{ id, price }
}
ProductVariant2: productVariantUpdate(input: {
id: "gid://shopify/ProductVariant/27868413788000",
price: 34.97
}){
productVariant{ id, price }
}
}
So it should be possible to set variables to query like ProductVariant1:
and pass arrays.所以应该可以设置变量来像ProductVariant1:
并传递arrays。
How could I do it?我该怎么做?
I found a soloution.我找到了一个解决方案。 Maybe it helps anyone.也许它可以帮助任何人。
$variants[0]['id'] = "gid://shopify/ProductVariant/1";
$variants[0]['price'] = 1;
$variants[1]['id'] = "gid://shopify/ProductVariant/2";
$variants[1]['price'] = 2;
//build query
$query = '';
$countRun = 1;
foreach($variants as $variant)
{
if($countRun == 1)
{
$query = 'mutation{
ProductVariant'.$countRun.': productVariantUpdate(input: {
id: "'.$variant['id'].'",
price: '.$variant['price'].'
}){
productVariant{ id, price }
}
';
}
else{
$query = $query.'ProductVariant'.$countRun.': productVariantUpdate(input: {
id: "'.$variant['id'].'",
price: '.$variant['price'].'
}){
productVariant{ id, price }
}
';
}
$countRun++;
}
$query = $query.'}';
$runQuery = $api->graph($query);
return $runQuery;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.