WPML

WPML Multilingual & Multicurrency for WooCommerce는 WordPress REST API와 호환됩니다. 이제 REST API를 사용하여 번역된 WooCommerce 콘텐츠를 생성, 읽기, 업데이트 및 삭제할 수 있습니다.


이 문서는 이러한 기능을 활용하여 플러그인, 사이트 및 애플리케이션에서 다국어 WooCommerce 환경을 제공하려는 개발자를 대상으로 합니다.

요구 사항


WPML Multilingual & Multicurrency for WooCommerce와 함께 REST API를 사용하려면 다음이 필요합니다.

클라이언트 라이브러리 설정


앞서 언급했듯이 WooCommerce REST PHP 클라이언트 라이브러리가 필요합니다. 이 라이브러리는 WooCommerce REST API와 더 직관적으로 상호 작용할 수 있게 해주는 PHP 래퍼입니다. 다른 클라이언트 라이브러리도 사용할 수 있습니다.

애플리케이션 내에 라이브러리를 설정하려면 몇 가지 단계가 필요합니다.

    1. 다음 Composer 명령을 사용하여 사이트 서버에 라이브러리 파일을 다운로드합니다.
composer require automattic/woocommerce
    1. require 함수를 사용하여 PHP 코드의 시작 부분에 라이브러리 자동 로드 파일인 autoload.php를 포함합니다.
WCML REST API - 자동 로드 파일 포함
require __DIR__ . '/vendor/autoload.php';

use Automattic\WooCommerce\Client;

$woocommerce = new Client(

   'http://example.com',

   'ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',

   'cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',

   [

       'wp_api' => true,

       'version' => 'wc/v3',

   ]

);
  • Consumer KeyConsumer Secret 값을 생성합니다. 이를 수행하려면 WooCommerce설정으로 이동하여 API 탭을 클릭하세요. 거기서 Keys/Apps 하위 탭을 클릭하고 Add Key를 클릭합니다. 나타나는 양식에 Description, User 및 사용자에게 부여할 Permissions를 입력하고 Generate API Key를 클릭하세요.
  • 생성된 Consumer KeyConsumer Secret 값을 PHP 코드에 추가합니다.
  •  'ck_61f94473aab0445da506e095e664f5d65b153f45'; 'cs_7e60f84b6c87554d249b1ad797d6201566c1009e'; 
    1. 라이브러리 사용을 위한 옵션을 구성합니다. 공식 페이지에서 모든 옵션에 대한 설명을 확인할 수 있습니다.

    REST API 사용


    이제 PHP 코드에 라이브러리를 설정했으므로 코드가 수행할 다양한 작업 개발을 시작할 수 있습니다. 다음 목록은 REST API 및 WPML Multilingual & Multicurrency for WooCommerce를 사용하여 수행할 수 있는 모든 주요 작업을 보여줍니다.

    주문 보기


    요청에 lang 매개변수를 추가하면 지정된 언어로 주문 내용을 반환할 수 있습니다. 유일한 조건은 상품이 해당 언어로 번역되어 있어야 한다는 것입니다. 이를 활용하면 사이트의 기본 언어로 주문을 확인할 수 있습니다.

    예시: 프랑스어로 접수된 주문만 가져오기.

    $orders = $woocommerce->get('orders', array( 'per_page' => 25, 'lang' => 'fr' ) );

    관련 WooCommerce 문서: 모든 주문 나열

    단일 주문 보기


    요청에 lang 매개변수를 제공하면, 주문이 다른 언어로 접수된 경우 존재하는 모든 항목이 지정된 언어의 번역으로 표시됩니다.

    예시: 110번 주문의 내용을 영어로 보기.

    $order = $woocommerce->get('orders/110', array( 'lang' => 'en' ) );

    관련 WooCommerce 문서: 주문 검색

    상품 가져오기


    lang 매개변수를 추가하면 지정된 언어로 상품을 가져올 수 있습니다. 모든 언어의 모든 상품을 가져오려면 lang 매개변수를 all로 설정해야 합니다.

    예시: 스페인어 상품만 가져오기.

    $products = $woocommerce->get('products', array( 'per_page' => 25, 'lang' => 'es' ) );

    관련 WooCommerce 문서: 모든 상품 나열

    단일 상품 보기


    반환된 데이터에는 언어 및 번역 정보가 포함됩니다. 또한 보조 통화로 사용자 정의 가격이 설정되어 있고 다중 통화 모드가 활성화 및 구성된 경우 해당 가격도 포함됩니다.

    예시:

    $product = $woocommerce->get('products/99');

    이 예시의 결과는 다음과 유사합니다.

    단일 상품 보기
    => stdClass Object
            (
                [title] => An English product
                [id] => 28
                [created_at] => 2015-06-08T08:56:49Z
                [updated_at] => 2015-06-08T08:56:49Z
                [type] => simple
                [status] => publish
                [downloadable] =>
                [virtual] =>
                [permalink] => http://example.com/shop/a-simple-english-product
                [sku] =>
                [price] => 100.00
                [regular_price] => 100.00
                [sale_price] =>
                [price_html] => $100.00
                …
                [variations] => Array
                    (
                    )
      
                [parent] => Array
                    (
                    )
      
                [translations] => stdClass Object
                    (
                        [bg] => 31
                        [es] => 30
                    )
      
               [lang] => en
            )

    관련 WooCommerce 문서: 상품 검색

    상품 택소노미 용어 가져오기(상품 카테고리, 태그, 속성, 배송 클래스)


    lang 매개변수를 추가하면 지정된 언어로 상품 택소노미 용어를 가져올 수 있습니다. 모든 언어의 모든 용어를 가져오려면 lang 매개변수를 all로 설정해야 합니다.

    예시: 모든 언어의 카테고리 가져오기.

    $categories= $woocommerce->get('products/categories', array( 'per_page' => 10, 'lang' => 'all' ) );

    관련 WooCommerce 문서: 모든 상품 카테고리 나열

    판매 보고서


    currency 매개변수를 추가하면 지정된 통화로 보고서를 가져올 수 있습니다.
    판매 보고서
    $query = [ 'period' => 'year', 'currency' => 'EUR' ];
    $woocommerce->get( 'reports/sales', $query );

    관련 WooCommerce 문서: 판매 보고서 검색

    베스트셀러 보고서


    lang 매개변수를 추가하면 지정된 언어로 보고서를 가져올 수 있습니다.
    베스트셀러
    $query = [ 'lang' => 'fr' ];
    $woocommerce->get( 'reports/top_sellers', $query );

    관련 WooCommerce 문서: 베스트셀러 보고서 검색

    상품 합계 보고서


    lang 매개변수를 추가하면 지정된 언어로 보고서를 가져올 수 있습니다.
    상품 합계
    $query = [ 'lang' => 'fr' ];
    $woocommerce->get( 'reports/products/totals', $query );

    관련 WooCommerce 문서: 상품 합계 검색

    상품 생성


    상품을 생성할 때 세 가지 매개변수가 지원됩니다.
    • lang – 상품에 대해 해당 lang 값이 설정됩니다. 생략하면 사이트의 기본 언어가 사용됩니다.
    • translation_of(선택 사항) – translation_of 값으로 제공된 ID를 가진 기존 상품의 번역으로 상품이 생성됩니다. translation_of를 생략하면 상품이 새로운 번역 그룹(trid)의 일부로 생성됩니다.
    • custom_prices – 보조 통화로 사용자 정의 가격을 설정할 수 있습니다.

    예시:
    상품 생성
    $data    = [
    	'name'              => 'English Test Post',
    	'type'              => 'simple',
    	'regular_price'     => '10.00',
    	'description'       => 'This is a Simple English Test Post',
    	'short_description' => 'This is a Simple English Test Post',
    	'categories'        => [ [ 'id' => 10 ], [ 'id' => 12 ] ],
    	'images'            => [
    		[ 'src' => 'https://example.com/image-1.png', 'position' => 0 ],
    		[ 'src' => 'https://example.com/image-2.png', 'position' => 1 ]
    	],
    	'lang'              => 'en',
    	'custom_prices'     => [
    		'EUR' => [ 'regular_price' => 1999, 'sale_price' => 1500 ],
    		'USD' => [ 'regular_price' => 2100, 'sale_price' => 2099 ]
    	]
    ];
    $product = $woocommerce->post( 'products', $data );

    상품을 다른 글의 번역으로 추가하려면 translation_of 매개변수를 전달해야 합니다. 이전 호출로 생성된 글의 ID가 23인 경우, 번역을 추가하는 코드는 다음과 같습니다.

    다른 상품의 번역으로 상품 생성
    $data = [
    
    'name' => 'French Test Post',
    
    'type' => 'simple',
    
    'regular_price' => '10.00',
    
    'description' => 'This is a Simple French Test Post',
    
    'short_description' => 'This is a Simple French Test Post',
    
    'lang' => 'fr',
    
    'translation_of' => '23'
    
    ];
    
    $product = $woocommerce->post('products', $data);

    카테고리가 이미 번역되어 있고 WPML에서 번역에 택소노미 복사 옵션이 설정되어 있는 경우, 번역을 추가할 때 카테고리를 명시적으로 지정할 필요가 없습니다. 카테고리는 자동으로 추가됩니다.

    관련 WooCommerce 문서: 상품 생성

    옵션 상품

    로컬 속성을 사용하여 상품 옵션 생성


    상품 옵션을 생성할 때 세 가지 매개변수가 지원됩니다.
    • lang – 상품 옵션에 대해 해당 lang 값이 설정됩니다. 생략하면 사이트의 기본 언어가 사용됩니다.
    • translation_of(선택 사항) – translation_of 값으로 제공된 ID를 가진 기존 상품 옵션의 번역으로 상품 옵션이 생성됩니다. translation_of를 생략하면 상품 옵션이 새로운 번역 그룹(trid)의 일부로 생성됩니다.
    • custom_prices – 보조 통화로 사용자 정의 가격을 설정할 수 있습니다.

    예시:
    옵션 생성
    $data = [ 'lang'          => 'en',
              'regular_price' => '10',
              'attributes'    => [ [ 'name' => $local_attribute_name, 'option' => 'red' ] ]
    ];
    $woocommerce->post( 'products/{$variable_product_id}/variations', $data );

    상품 옵션을 다른 글의 번역으로 추가하려면 translation_of 매개변수를 전달해야 합니다. 이전 호출로 생성된 글의 ID가 25인 경우, 번역을 추가하는 코드는 다음과 같습니다.

    옵션 번역
    $data = [
    	'name'           => 'Translation of Variable Product',
    	'type'           => 'variable',
    	'description'    => 'Translate of Product Description',
    	'lang'           => 'fr',
    	'translation_of' => 25,
    	'attributes'     => [
    		[
    			'name'      => $local_attribute_name,
    			'visible'   => true,
    			'variation' => true,
    			'options'   => [
    				'$translation_of_red'
    			]
    		]
    	]
    ];
    $woocommerce->post('products', $data);

    관련 WooCommerce 문서: 상품 옵션 생성

    글로벌 속성을 사용하여 상품 옵션 생성


    먼저 글로벌 용어를 생성하고 번역해야 합니다. 그런 다음 아래 예시에 따라 옵션 상품을 생성할 수 있습니다.
    옵션 상품 생성
    $data = [
    	'name'           => 'Test Variable Product',
    	'type'           => 'variable',
    	'description'    => 'Test Variable Product for REST',
    	'lang'           => 'en',
    	'translation_of' => null,
    	'attributes'     => [
    		[
    			'id'   =>  $global_attribute_id,
    			'visible'   => true,
    			'variation' => true,
    			'options'   => [
    				'Red'
    			]
    		]
    	]
    ];
    $woocommerce->post('products', $data);

    그런 다음 상품 옵션을 생성해야 합니다. 원본 상품의 ID가 25인 경우 코드 예시는 다음과 같습니다.

    상품 옵션 생성
    $data = [
    	'create' => [
    		[
    			'lang'           => 'en',
    			'translation_of' => null,
    			'regular_price'  => '10',
    			'attributes'     => [
    				[
    					'id'     => $global_attribute_id,
    					'option' => 'blue-en' //we need to add here the attribute term slug
    				]
    			]
    		]
    $woocommerce->post( 'products/25/variations/batch', $data );

    이제 옵션 상품이 영어로 생성되었습니다. 이를 번역하려면 아래 예시를 따르세요.

    옵션 상품의 번역 생성
    $data = [
    	'name'           => 'FR Test Variable Product',
    	'type'           => 'variable',
    	'description'    => 'FR Test Variable Product for REST',
    	'lang'           => 'fr',
    	'translation_of' => 25,
    	'attributes'     => [
    		[
    			'id' => $global_attribute_id,
    			'visible'   => true,
    			'variation' => true,
    			'options'   => [
    				'red-fr' //slug of the attribute term translation
    			]
    		]
    	]
    ];
    $woocommerce->post('products', $data);

    관련 WooCommerce 문서: 상품 옵션 일괄 업데이트

    주문 생성


    lang 매개변수를 추가하면 지정된 주문에 대해 지정된 언어가 설정됩니다.

    여기에 인수로 제공된 언어와 다른 언어로 상품이 추가된 경우 자동으로 변환되지 않고 해당 언어로 추가되므로 유의하세요.

    예시:

    주문 생성
    $data = [
        'payment_details' => [
            'method_id' => 'bacs',
            'method_title' => 'Direct Bank Transfer',
            'paid' => true
        ],
        'billing_address' => [
            'first_name' => 'John',
            'last_name' => 'Doe',
            'address_1' => '969 Market',
            'address_2' => '',
            'city' => 'San Francisco',
            'state' => 'CA',
            'postcode' => '94103',
            'country' => 'US',
            'email' => 'john.doe@example.com',
            'phone' => '(555) 555-5555'
        ],
        'shipping_address' => [
            'first_name' => 'John',
            'last_name' => 'Doe',
            'address_1' => '969 Market',
            'address_2' => '',
            'city' => 'San Francisco',
            'state' => 'CA',
            'postcode' => '94103',
            'country' => 'US'
        ],
        'customer_id' => 2,
        'line_items' => [
            [
                'product_id' => 58,
                'quantity' => 2
            ],
        ],
        'shipping_lines' => [
            [
                'method_id' => 'flat_rate',
                'method_title' => 'Flat Rate',
                'total' => 10
            ]
        ],
        'lang' => 'el'
        'currency' => 'usd'
    ];
    $order = $woocommerce->post('orders', $data );

    관련 WooCommerce 문서: 주문 생성

    택소노미 용어 생성(상품 카테고리, 태그, 속성, 배송 클래스)

    REST API를 사용하여 속성 용어(예: 파란색)는 번역할 수 있지만 속성 이름(예: 색상)은 번역할 수 없습니다. 속성 이름을 번역하려면 WPML → 택소노미 번역으로 이동하여 드롭다운 메뉴에서 속성을 선택한 다음 택소노미 레이블 및 슬러그 번역 섹션 아래에 번역을 추가하세요.

    용어를 생성할 때 두 가지 매개변수가 지원됩니다.
    • lang – 용어에 대해 해당 lang 값이 설정됩니다. 생략하면 사이트의 기본 언어가 사용됩니다.
    • translation_of(선택 사항) – translation_of 값으로 제공된 id를 가진 기존 용어의 번역으로 용어가 생성됩니다. translation_of를 생략하면 용어가 새로운 번역 그룹(trid)의 일부로 생성됩니다.

    예시: 보조 언어로 카테고리 생성.
    카테고리 생성
    $category = [ 'name' => 'Product Category ES', 'translation_of' => $original_category_id, 'lang' => 'es' ];
    $woocommerce->post( 'products/categories', $product_category );

    관련 WooCommerce 문서: 상품 카테고리 생성

    예시: 보조 언어로 글로벌 속성 용어 번역

    글로벌 속성 용어 번역
    $attribute_term = [ 'name' => 'Black ES', 'translation_of' => $original_attribute_term_id, 'lang' => 'es' ];
    $woocommerce->post( 'products/attributes/{$attribute_id}/terms', $attribute_term );

    관련 WooCommerce 문서: 속성 용어 생성

    작성자: Amir · 마지막 업데이트: 2026년 7월 1일