Вы были бы благодарны много за, кто смог ориентироваться со следующим:
У меня есть следующая договоренность, Вы запись продукта в woocommerce
wordpress
у которого есть в свою очередь три изменения: 1837, 1838 и 1839.
Array
(
[0] => stdClass Object
(
[variations] => Array
(
[0] => 1837
[1] => 1838
[2] => 1839
)
)
)
Я нуждаюсь в том, чтобы смочь пробегать договоренность всех продуктов, которую Вы возвращаете мне api
woocommerce
чтобы мочь потом изменять цену, у которой есть каждое изменение.
Я понимаю, что сначала я должен пробегать все продукты с:
$woocommerce->get('products'):
Потом пробегать все изменения каждого продукта с:
$woocommerce->get('products/<id-variacion>/variations')
и в конце концов реализовывать update
цены на каждое изменение с:
$data = [
'regular_price' => '10.00'
];
$woocommerce->put('products/<id-producto>/variations/<id-variacion>', $data)
моментами я это имею, но script медлит с тем, чтобы быть выполненным много и только это 10 продуктов.
$productos = $woocommerce->get('products', ['per_page' => 99]) ;
foreach ($productos as $key=>$value) {
echo 'nombre producto: '.$value->name;
echo 'id producto: '.$value->id;
$variaciones = $woocommerce->get('products/'.$value->id.'/variations',['per_page' => 99]);
foreach ($variaciones as $clave=>$valor) {
print_r($valor->attributes);
echo 'id variacion: '.$valor->id;
echo 'sku variacion: '.$valor->sku;
echo 'precio: '.$valor->price;
$data = [
'regular_price' => '10.00'
];
$woocommerce->put('products/'.$value->id.'/variations/'.$valor->id.'', $data);
}
}
Спасибо заранее.
Я думаю, что уже logrГ© она soluciГіn, есть ли способ mГЎs оптимальная или не попали в чем-то agradecerГ - во многий в нее correcciГіn или ее orientaciГіn.
<?php
set_time_limit(0);
require __DIR__ . '/vendor/autoload.php';
use Automattic\WooCommerce\Client;
$woocommerce = new Client(
'url',
'ck_0000000000000000',
'cs_0000000000000000',
[
'version' => 'wc/v3',
]
);
$sap = file_get_contents("sap.json");
$sap_array = json_decode($sap, true);
print_r($sap_array);
$productos = $woocommerce->get('products', ['per_page' => 99]) ;
//$variaciones = $woocommerce->get('products/10/variations');
//print_r($variaciones);
//print_r($productos);
foreach ($productos as $key=>$value) {
$variaciones = $woocommerce->get('products/'.$value->id.'/variations',['per_page' => 99]);
echo '<h1>nombre producto: '.$value->name.'</h1>';
echo '<h2>id producto: '.$value->id.'</h2>';
foreach ($variaciones as $clave=>$valor) {
echo '<h3> Atributos:</h3>';
print_r($valor->attributes);
echo '<h3> id variacion: '.$valor->id.'</h3>';
echo '<h3> sku variacion: '.$valor->sku.'</h3>';
echo '<h3> precio: '.$valor->price.'</h3>';
foreach ($sap_array as $sapkey=>$sapvalue) {
if ($sapvalue['id_justime'] == $valor->sku) {
echo '<h3> sku sap: '.$sapvalue['id_justime'].'</h3>';
echo '<h3> precio sap usd: '.$sapvalue['price_usd'].'</h3>';
echo '<h3> precio sap cpl: '.$sapvalue['price_clp'].'</h3>';
$data = [
'update' => [
[
'id' => $valor->id,
'regular_price' => $sapvalue['price_clp']
]
],
];
$woocommerce->post('products/'.$value->id.'/variations/batch', $data);
}
}
}
}
BГЎsicamente то, что я делаю, состоит в том, чтобы пробегать всю договоренность продукта, я извлекаю id продукта, чтобы потом это использовать в update цен на нее variaciГіn.
неудобный Гєnico, который у меня есть сейчас, состоит в том, что рукописный шрифт продолжается много в том, чтобы работать.