Ir para conteúdo
Fórum Script Brasil

n3wspartan

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre n3wspartan

n3wspartan's Achievements

0

Reputação

  1. Sou novo ao PHP, então se estiver no lugar errado, me perdoem rs. Eu preciso puxar os preços da API de um serviço externo ($url) em JSON e atualizar os produtos cadastrados no Woocommerce. O script abaixo até funciona, mas é um pesadelo pra manter porque eu preciso listar cada produto e cada variação de produto. Seria possível iterar sobre todos os produtos e variações cadastradas com base em uma variável comum (tipo a SKU do produto)? <?php require __DIR__ . '/vendor/autoload.php'; use Automattic\WooCommerce\Client; use Automattic\WooCommerce\HttpClient\HttpClientException; $woocommerce = new Client( 'http://exemplo.com', 'ck_xxxxxxxxxxx', 'cs_xxxxxxxxxxx', [ 'wp_api' => true, 'version' => 'wc/v2', // 'query_string_auth' => true ] ); function parse_json( $file ) { $json = json_decode( file_get_contents( $file ), true ); if ( is_array( $json ) && !empty( $json ) ) : return $json; else : die( 'An error occurred while parsing ' . $file . ' file.' ); endif; } $url = 'https://username:password@apiservice.com/apis/v1.0/c1212kj1n1n1b112'; $json = parse_json($url); //Atualiza o preço de produtos simples. Produto #586: $data = [ 'update' => [ [ 'id' => 586, 'regular_price' => $json['name' == 'Product 1']['regular_price'] ] ] ]; print_r($woocommerce->post('products/batch', $data)); // Atualiza variações de produtos. Produto #588: $data = [ 'update' => [ [ 'id' => 589, 'regular_price' => $json['product_variation[0]']['regular_price'] ], [ 'id' => 590, 'regular_price' => $json['product_variation[1]']['regular_price'] ], [ 'id' => 591, 'regular_price' => $json['product_variation[2]']['regular_price'] ], ] ]; print_r($woocommerce->post('products/588/variations/batch', $data)); ?> Esse aqui é o formato dos dados da API que eu uso pra pegar os preços: [ { "product_id": "100", "type": "simple", "parent_product_id": "", "name": "Product 1", "description": "Descrição", "regular_price": "26.78", "manage_stock": "1", "stock": "5", "weight": "0", "attribute_name": "", "attribute_value": "", "has_variations": "", "image": "site.com/imagem1.png", "sku": "10010" }, { "product_id": "200", "type": "variable", "parent_product_id": "", "name": "Product 2", "description": "Descrição", "regular_price": "0", "manage_stock": "0", "stock": "0", "weight": "0", "attribute_name": "Cor", "attribute_value": "", "has_variations": "1", "image": "site.com/imagem2.png", "sku": "11010" }, { "product_id": "", "type": "product_variation", "parent_product_id": "200", "name": "", "description": "A short description", "regular_price": "3.70", "manage_stock": "1", "stock": "100", "weight": "0", "attribute_name": "Cor", "attribute_value": "Vermelho", "has_variations": "", "image": "", "sku": "11011" }, Será que tenho salvação?
×
×
  • Criar Novo...