Как пробегать договоренность с API WooCommerce и PHP?

Вы были бы благодарны много за, кто смог ориентироваться со следующим:

У меня есть следующая договоренность, Вы запись продукта в 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);
}
}

Спасибо заранее.

2
задан 06.11.2019, 20:57
1 ответ

Я думаю, что уже 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, который у меня есть сейчас, состоит в том, что рукописный шрифт продолжается много в том, чтобы работать.

0
ответ дан 01.12.2019, 12:34

Теги

Похожие вопросы