Marketplaces / Coupang Technical Scope

Coupang Technical Scope

The purpose of this document is to give good understanding of how Product and Order flow work via Coupang API.

We already have the authorization part so the API key can be generated from here - https://developers.coupang.com/hc/ko/articles/360033980613-OPENAPI-Key-%EB%B0%9C%EA%B8%89%EB%B0%9B%EA%B8%B0

1. Products Flow

For product creation we will need the taxonomy.

Calls which will be used in the product flow:

Create Product

https://developers.coupang.com/hc/ko/articles/360033877853-%EC%83%81%ED%92%88-%EC%83%9D%EC%84%B1

End Point [POST] - https://api-gateway.coupang.com/v2/providers/seller_api/apis/api/v1/marketplace/seller-products

REQUEST PARAMETERS:

Name Required Type Description Comments
displayCategoryCode O Number Exposure category code
You can check the category category code by downloading category list API or category information excel. Item.Account Primary Category ID
sellerProductName O String Product Name

Trade name used for order Maximum length: 100 characters | Item.Account Title | | vendorId | | | | O | String | Merchant ID Unique code issued to your business by Coupang. Can check after logging in Wing | Provided from Coupang | | saleStartedAt | | | | O | String | Sale start date format "yyyy-MM-dd'T'HH: mm: ss" | Hardcoded value NOW() | | saleEndedAt | | | | O | String | Sale end date "yyyy-MM-dd'T'HH: mm: ss" format, selectable as long as * 2099 | Hardcoded value 2099-12-31'T'HH: mm: ss | | displayProductName | | | | | String | Product Name Trade name exposed on actual Kupang sales page. It is recommended to enter the same as [brand] + [generalProductName]. Registration is possible even without input. If not entered, [brand] + [generalProductName] may be exposed or [sellerProductName] may be exposed.   Maximum length: 150 characters | Item.Account Title error if more than 150 chars | | brand | | | | O | String | brand Enter the brand name in Korean / English standard name without spaces and special characters | Item_Account.ItemSpecifics | | generalProductName | | | | | String | product name Attribute exposed Product name that does not contain any information (size, color, etc.). Model name can be added | N/A | | productGroup | | | | | String | Product group This is a name that indicates the type of product and can be entered referring to the lowest name in the exposure category. If duplicated with [generalProductName], no input required | N/A | | deliveryMethod | | | | O | Stringn.net/wiki/spaces/~16347122/pages/edit-v2/724893701 | Shipping method Parameter NameStatus SEQUENCIAL Normal delivery (sequential delivery) COLD_FRESH Fresh frozen MAKE_ORDER custom order AGENT_BUY Purchasing agent VENDOR_DIRECT Install Shipping or Seller Direct For fresh food, please select the fresh frozen type instead of the regular delivery. | ShippingMethod.ShippingName | | deliveryCompanyCode | | | | O | String | Courier Code Courier Code Shortcut | ShippingMethod.ShippingService | | deliveryChargeType | | | | O | String | Shipping cost type • Parameter NameStatus FREE FREE Shipping NOT_FREE Paid Shipping CHARGE_RECEIVED Shipping CONDITIONAL_FREE Conditional Free Shipping FREE_DELIVERY_OVER_9800 Free shipping over 9,800 won ● Set the return shipping fee (one-way) [deliveryChargeOnReturn] and return shipping cost (one-way) [returnCharge] when setting free shipping ● Set the default delivery charge (deliveryCharge) and return shipping cost (one-way) when setting paid shipping ● When setting conditional free shipping Basic shipping cost and return shipping cost (one-way) Amount Setting ● When you set up deferred delivery, the category can be set up for deferred delivery, and it has been shared with the Merchant Call Center for seller guidance. ※ When using [CONDITIONAL_FREE], you can set your desired conditional free shipping amount separately. | ShippingTemplate.ChargeType (new) | | deliveryCharge | | | | O | Number | Default shipping fee Enter one-way shipping amount for paid or conditional free shipping | ShippingMethod.ShippingServiceCost | | freeShipOverAmount | | | | O | Number | Condition amount for free shipping ● Example: If you want to set up conditional free shipping for more than 10,000 won, set [deliveryChargeType] to 'CONDITIONAL_FREE' and enter 10000 in [freeShipOverAmount]. ※ Can be entered in units of 100 won or more ※ Enter 0 for free shipping | ShippingTemplate.freeShipOverAmount (new) | | deliveryChargeOnReturn | | | | O | Number | First Return Shipping Free shipping costs paid by the consumer at the time of return | ShippingTemplate.ReturnShippingFee | | remoteAreaDeliverable | | | | O | String | Whether the mountains are shipping Parameter Name Status Y Mountain shipping N Do not ship between islands | ShippingTemplate.AreaDeliverable (new) | | unionDeliveryType | | | | O | String | Bundle delivery Parameter NameStatus UNION_DELIVERY Bundle can be shipped NOT_UNION_DELIVERY Bundle not available ※ Bundled shipping conditions Factory information required input (Only products with the same shipping information can be bundled) No postpay | ShippingTemplate.BundleDelivery (new) | | returnCenterCode | | | | O | String | Return Center Code After creating the return paper, input the extracted return center code. ● Create return paper can be created through Wing or return paper creation API. ● If return paper creation is not possible, enter return information directly by entering "NO_RETURN_CENTERCODE". ※ You can use the automatic return service (Goodsflow) only if you have a contracted courier service. ※ For overseas shipments, please enter the courier code with the domestic return address to create a return center code.  • Overseas Shipping Return Guide (Click) | ShippingTemplate.CenterCode(new) | | returnChargeName | | | | O | String | Return Name Register and confirm the return location via Coupang Wing or Return tracking API 'Enter the value exposed as shippingPlaceName when returning a query' | ShippingTemplate.ReturnName (new) | | companyContactNumber | | | | O | String | Return Address Confirmation of return location after registration via Coupang Wing or Return tracking API | ShippingTemplate.ContactNumber (new) | | returnZipCode | | | | O | String | Return Post code Confirmation of return location after registration via Coupang Wing or return destination API | ShippingTemplate.ZipCode(new) | | returnAddress | | | | O | String | Return Address Confirmation of return location after registration via Coupang Wing or return destination API | ShippingTemplate.Address(new) | | returnAddressDetail | | | | O | String | Return Address Details Confirmation of return location after registration via Coupang Wing or return destination API | ShippingTemplate.AddressDetail(new) | | returnCharge | | | | O | Number | Return shipping fee One way shipping on return | ShippingTemplate.Charge(new) | | afterServiceInformation | | | | O | String | A / S Guide | ?? | | afterServiceContactNumber | | | | O | String | A / S phone number | ?? | | outboundShippingPlaceCode | | | | O | Number | Shipping address code Mandatory if you choose Bundle Shipping; can be viewed via the Factory Tracking API | ShippingTemplate.Shipping Address Code (new) | | vendorUserId | | | | O | String | Real User ID (Kupang Wing ID) User ID belonging to Vendor | Provided from Coupang. Account.vendorUserId | | requested | | | | O | Boolean | Request for automatic approval The items registration, select whether you want to automatically proceed with the marketing authorization request ● false: (should proceed to sell request from the products approved the request API or the wing when you want to sell) stores only create content and sell requests before the state ● true: save And request sales approvals automatically | Account.AutomaticApproval | | items | | | | O | List | Company Product Option List Up to 200 options can be registered | Here is the variant information | | | itemName | | | O | String | Company Product Option Name This is not an option name that is exposed on the entry site so that it is not duplicated for each item, and can be changed according to a purchase option. Maximum length: 150 characters | Item_account.Title | | | originalPrice | | | O | Number | Discount rate standard price (list price) The amount before discount for displaying the discount rate (%), and it is exposed as 'Kupanga' when it is entered as the selling price. After the approval is completed, the discount rate can be modified through the [Change Option Discount Rate] API. | The percent of discount ?? | | | salePrice | | | O | Number | Sale Price Enter the sales price. When registering a product for the first time, the selling price is available only before the product approval request.After the approval is completed, the selling price can be changed through the [Change price by option] API. | Item_account.SalePrice | | | maximumBuyCount | | | O | Number | Quantity available for sale Enter the quantity of stock available for sale. When registering a product for the first time, the sales quantity can be made only before the product approval request, and after the approval is completed, the inventory can be modified through the [Change quantity per option] API. | item_account.Quantity | | | maximumBuyForPerson | | | O | Number | Max purchase quantity per person Maximum quantity available per person. Enter "0" if there is no limit (e.g. maximum purchase quantity 100 per person, maximum purchase quantity period 3, meaning up to 100 purchases per person per day) | item_account_coupang.MaxBuyPerPerson | | | maximumBuyForPersonPeriod | | | O | Number | Max Purchase Quantity Period The frequency at which the product can be purchased per person. Enter "1" if there is no limit (e.g. maximum purchase quantity 100 per person, maximum purchase quantity period 3, meaning up to 100 purchases per person per day) | item_account_coupang.MaxBuyPerPersonPeriod | | | outboundShippingTimeDay | | | O | Number | Standard ship date (day) Enter the expected delivery date in days for delivery after D-Day. (If you are going to ship next day (D + 1), enter "1") | item_account.DispatchTimeMax or ShippingTempalte.DispatchTimeMax | | | unitCount | | | O | Number | Unit quantity If you enter the quantity included in the product, it is calculated as (Sales price ÷ Unit quantity) and exposed as (Price # 1,000 per unit). Enter 0 for products that do not require a price | item_account_coupang.unitCount (how many we have in a box price per each) | | | adultOnly | | | O | String | 19 years old or older Parameter NameStatus ADULT_ONLY 19 years old or older EVERYONE All ages available (default) | item_account_coupang.AgeGroup | | | taxType | | | O | String | Taxation Parameter NameStatus TAX Taxation (default) FREE Tax exemption | item_account_coupang.taxType | | | parallelImported | | | O | String | Parallel import Parameter NameStatus PARALLEL_IMPORTED Parallel import NOT_PARALLEL_IMPORTED No parallel imports (default) | ?? | | | overseasPurchased | | | O | String | Overseas Purchasing Agency Parameter NameStatus OVERSEAS_PURCHASED Purchasing agent NOT_OVERSEAS_PURCHASED Not a purchase agent (default) | item_account_coupang.overseasPurchased | | | pccNeeded | | | O | Boolean | PCC (Personal Customs Clearance) Mandatory / Not Required PCC (Personal Customs Clearance Number) Mandatory / Non-Requirement for Overseas Purchasing Products Available. | item_account_coupang.overseasPurchasedPCCnum | | | externalVendorSku | | | | String | Merchant Commodity Code The company's unique item code value can be set arbitrarily, and the input value is included in the order inquiry API response. | item.SKU | | | barcode | | | | String | barcode Valid standard product code attached to the product | item.EAN or item.Barcode | | | emptyBarcode | | | | Boolean | No barcode True if no barcode | item_account_coupang.EmptyBarcode | | | emptyBarcodeReason | | | | String | Reason for no barcode Maximum length: 100 characters limit | item_account_coupang.emptyBarcodeReason | | | modelNo | | | | String | Model number | ?? | | | extraProperties | | | | | Company Product Options Additional Information Key: Value can be repeatedly input as needed. | ?? | | | | Key | | | String | Value | | | | certifications | | | | List | Product Certification Information Product certification information | item_account.ItemSpecifics | | | | certificationType | | | String | Authentication Information Type Type that can be registered can be obtained through category meta information inquiry API. If the category is not subject to certification: NOT_REQUIRED | certificationType1..2..3 | | | | certificationCode | | | String | Product Certification Information Code Code issued by the certification body | certificationCode1…2…3 | | | searchTags | | | | List | search word Repeated input as necessary. ["Query1", "query2"] You can enter up to 40 search terms, up to 20 characters per query,! @ # $% ^ & *-+ ;: '. Other special characters cannot be entered | item_account_coupang.SearchTags | | | images | | | O | List | Image List Repeated input as needed | item.MainImage, item.MoreImageURLs or item_account_coupang.MainImage, item_account_coupang.MoreImages | | | | imageOrder | | O | Number | Image display order 0,1,2 ... | 0,1,2 | | | | imageType | | O | String | Image type Representative image type register a square image of 3MB or less as JPG, PNG (Minimum 500 x 500px, up to 5000 X 5000px) ● Required REPRESENTATION: squares represent the image, DETAIL Other Images (can register up to 9) USED_PRODUCT: Used Status image (up to 4 can be registered) | default value. | | | | cdnPath | | O | String | Coupang CDN Route Manually entered if uploaded to Coupang CDN, one or more of vendorPath and cdnPath Required Maximum length: 150 characters | item_account_coupang.ImageLinks | | | | vendorPath | | O | String | Business Image Path Image path used by the vendor, if the path starts with http: //, it will be automatically downloaded and added to the Coupang CDN, at least one of vendorPath and cdnPath Required maximum length: 150 characters | item.MainImage, item.MoreImageURLs or item_account_coupang.MainImage, item_account_coupang.MoreImages | | | notices | | | O | List | Product Information List Through the category meta information inquiry API or the entire category list Excel file, necessary notice information items can be checked and selected. | | | | | noticeCategoryName | | O | String | Product Information Enter one of the product notification information categories by category | item_account_coupang.noticeName | | | | noticeCategoryDetailName | | O | String | Product Information Information | item_account_coupang.NoticeDetailName | | | | content | | O | String | Contents | item_account_coupang.NoticeContent | | | attributes | | | O | List | Option list (property) Object that inputs a list of options defined by category. You can repeatedly input as many purchase options as you want. If all the values ​​of the attribute exposed are duplicated, one or more registrations are required. Registrations that you do not want to enter are removed from the attributes list or sent by entering attributeValueName as "". | Item_account.ItemSpecifics | | | | attributeTypeName | | O | String | Option type name Category meta information inquiry API or full category list download It is possible to check and select option type name according to category through Excel file. | Item_account.ItemSpecifics | | | | attributeValueName | | O | String | Option value Enter the Value corresponding to the option type name [attributeTypeName] with the unit (Example: "200ml") Maximum 20 character limit | Item_account.ItemSpecifics | | | contents | | | O | List | Content List Repeated input as needed | item_account.Description (if html tags) | | | | contentsType | | O | String | Content type Parameter NameStatus IMAGE image IMAGE_NO_SPACE Image (no spaces) TEXT text IMAGE_TEXT Image-text TEXT_IMAGE Text-image IMAGE_IMAGE Image-image TEXT_TEXT Text-text TITLE title HTML HTML | item_account.Description (if html tags) | | | | contentDetails | | O | List | Detailed Content List | item_account.Description (if html tags) | | | | | content | O | String | Contents | item_account.Description (if html tags)item_account.Description (if html tags) | | | | | detailType | O | String | Detail type Parameter NameStatus IMAGE image TEXT text | | | | offerCondition | | | | String | Product Status OfferCondition cannot be changed after the product is created. The following values ​​can be selected according to the exposure category code. Parameter Name NEW New items REFURBISHED Reaper USED_BEST Used (best) USED_GOOD Used (upper) USED_NORMAL Used (medium) | Item.Condition | | | offerDescription | | | | String | Used product details Describe the condition of the second-hand goods, and only if the 700-character offerCondition is entered as used | item_account_coupang.ConditionDetailes | | requiredDocuments | | | | | List | Enter required documents Required documents can be entered under 5MB (PDF, HWP, DOC, DOCX, TXT, PNG, JPG, JPEG) | N/A | | | templateName | | | | String | Required Document Template Name Available in category meta information query API | N/A ?? | | | documentPath | | | | String | Documents required by Kupang CDN One of documentPath or vendorDocumentPath Required Maximum length: 150 characters | N/A | | | vendorDocumentPath | | | | String | Required Document Bender Path Document path, if the path starts with http: //, it is automatically downloaded and added to the Coupang CDN. One of documentPath or vendorDocumentPath Required Maximum length: 150 characters | N/A | | extraInfoMessage | | | | | String | Customization Message If you selected "Custom" as your shipping method, enter a message to inform the customer. | ShippingTemplate.AdditionalShippingInfo | | manufacture | | | | O | String | manufacturer If you cannot enter the exact manufacturer, you can enter the same as [brand]. | Item_account.IS (Brand) |

SAMPLE REQUEST:

{
  "displayCategoryCode": 56137,
  "sellerProductName": "test_클렌징오일_관리용_상품명",
  "vendorId": "A00012345",
  "saleStartedAt": "2017-11-30T00:00:00",
  "saleEndedAt": "2099-01-01T23:59:59",
  "displayProductName": "해피바스 솝베리 클렌징 오일",
  "brand": "해피바스",
  "generalProductName": "솝베리 클렌징 오일",
  "productGroup": "클렌징 오일",
  "deliveryMethod": "SEQUENCIAL",
  "deliveryCompanyCode": "KDEXP",
  "deliveryChargeType": "FREE",
  "deliveryCharge": 0,
  "freeShipOverAmount": 0,
  "deliveryChargeOnReturn": 2500,
  "remoteAreaDeliverable": "N",
  "unionDeliveryType": "UNION_DELIVERY",
  "returnCenterCode": "1000274592",
  "returnChargeName": "반품지_1",
  "companyContactNumber": "02-1234-678",
  "returnZipCode": "135-090",
  "returnAddress": "서울특별시 강남구 삼성동",
  "returnAddressDetail": "333",
  "returnCharge": 2500,
  "returnChargeVendor": "N",
  "afterServiceInformation": "A/S안내 1544-1255",
  "afterServiceContactNumber": "1544-1255",
  "outboundShippingPlaceCode": "74010",
  "vendorUserId": "wing_loginId_123",
  "requested": true,
  "items": [
    {
      "itemName": "200ml_1개",
      "originalPrice": 13000,
      "salePrice": 10000,
      "maximumBuyCount": "100",
      "maximumBuyForPerson": "0",
      "outboundShippingTimeDay": "1",
      "maximumBuyForPersonPeriod": "1",
      "unitCount": 1,
      "adultOnly": "EVERYONE",
      "taxType": "TAX",
      "parallelImported": "NOT_PARALLEL_IMPORTED",
      "overseasPurchased": "NOT_OVERSEAS_PURCHASED",
      "pccNeeded": "false",
      "externalVendorSku": "0001",
      "barcode": "",
      "emptyBarcode": true,
      "emptyBarcodeReason": "상품확인불가_바코드없음사유",
      "modelNo": "171717",
      "extraProperties": {
        "coupangSalePrice": 5000,
        "onlineSalePriceForBooks": 10000,
        "transactionType": "manufacturer",
        "businessType": "Beauty"
      },
      "certifications": [
        {
          "certificationType": "NOT_REQUIRED",
          "certificationCode": ""
        }
      ],
      "searchTags": [
        "검색어1",
        "검색어2"
      ],
      "images": [
        {
          "imageOrder": 0,
          "imageType": "REPRESENTATION",
          "vendorPath": "http://image11.coupangcdn.com/image/product/image/vendoritem/2018/06/25/3719529368/27a6b898-ff3b-4a27-b1e4-330a90c25e9c.jpg"
        },
        {
          "imageOrder": 1,
          "imageType": "DETAIL",
          "vendorPath": "http://image11.coupangcdn.com/image/product/image/vendoritem/2017/02/21/3000169918/34b79649-d625-4f49-a260-b78bf7a573a8.jpg"
        },
        {
          "imageOrder": 2,
          "imageType": "DETAIL",
          "vendorPath": "http://image11.coupangcdn.com/image/product/image/vendoritem/2018/06/28/3000169918/5716aa61-70bd-47cd-8f3d-f3d49e7f496d.jpg"
        }
      ],
      "notices": [
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "용량(중량)",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "제품 주요 사양",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "사용기한 또는 개봉 후 사용기간",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "사용방법",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "제조업자 및 제조판매업자",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "제조국",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "화장품법에 따라 기재, 표시하여야 하는 모든 성분",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "식품의약품안전처 심사 필 유무",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "사용할 때 주의사항",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "품질보증기준",
          "content": "제품 이상 시 공정거래위원회 고시 소비자분쟁해결기준에 의거 보상합니다."
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "소비자상담관련 전화번호",
          "content": "상세페이지 참조"
        }
      ],
      "attributes": [
        {
          "attributeTypeName": "수량",
          "attributeValueName": "1개"
        },
        {
          "attributeTypeName": "개당 용량",
          "attributeValueName": "200ml"
        }
      ],
      "contents": [
        {
          "contentsType": "TEXT",
          "contentDetails": [
            {
              "content": "<html><div></div><div><img src='http://image11.coupangcdn.com/image/product/content/vendorItem/2018/06/26/196713/738d905f-ed80-4fd8-ad21-ed87b195a19e.jpg' /><div></html>",
              "detailType": "TEXT"
            }
          ]
        }
      ],
      "offerCondition": "NEW",
      "offerDescription": ""
    },
    {
      "itemName": "200ml_2개",
      "originalPrice": 26000,
      "salePrice": 20000,
      "maximumBuyCount": "100",
      "maximumBuyForPerson": "0",
      "outboundShippingTimeDay": "2",
      "maximumBuyForPersonPeriod": "1",
      "unitCount": 1,
      "adultOnly": "EVERYONE",
      "taxType": "TAX",
      "parallelImported": "NOT_PARALLEL_IMPORTED",
      "overseasPurchased": "NOT_OVERSEAS_PURCHASED",
      "pccNeeded": "false",
      "externalVendorSku": "0001",
      "barcode": "",
      "emptyBarcode": true,
      "emptyBarcodeReason": "상품확인불가_바코드없음사유",
      "modelNo": "171717",
      "extraProperties": {
        "coupangSalePrice": 5000,
        "onlineSalePriceForBooks": 10000,
        "transactionType": "manufacturer",
        "businessType": "Beauty"
      },
      "certifications": [
        {
          "certificationType": "NOT_REQUIRED",
          "certificationCode": ""
        }
      ],
      "searchTags": [
        "검색어1",
        "검색어2"
      ],
      "images": [
        {
          "imageOrder": 0,
          "imageType": "REPRESENTATION",
          "vendorPath": "http://image11.coupangcdn.com/image/product/image/vendoritem/2018/06/26/3001519145/74100e2a-d1ad-4b50-9c78-840c12a3e10d.jpg"
        },
        {
          "imageOrder": 1,
          "imageType": "DETAIL",
          "vendorPath": "http://image11.coupangcdn.com/image/product/image/vendoritem/2017/02/21/3000169918/34b79649-d625-4f49-a260-b78bf7a573a8.jpg"
        },
        {
          "imageOrder": 2,
          "imageType": "DETAIL",
          "vendorPath": "http://image11.coupangcdn.com/image/product/image/vendoritem/2018/06/28/3000169918/5716aa61-70bd-47cd-8f3d-f3d49e7f496d.jpg"
        }
      ],
      "notices": [
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "용량(중량)",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "제품 주요 사양",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "사용기한 또는 개봉 후 사용기간",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "사용방법",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "제조업자 및 제조판매업자",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "제조국",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "화장품법에 따라 기재, 표시하여야 하는 모든 성분",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "식품의약품안전처 심사 필 유무",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "사용할 때 주의사항",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "품질보증기준",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "소비자상담관련 전화번호",
          "content": "상세페이지 참조"
        }
      ],
      "attributes": [
        {
          "attributeTypeName": "수량",
          "attributeValueName": "2개"
        },
        {
          "attributeTypeName": "개당 용량",
          "attributeValueName": "200ml"
        }
      ],
      "contents": [
        {
          "contentsType": "TEXT",
          "contentDetails": [
            {
              "content": "<html><div></div><div><img src='http://image11.coupangcdn.com/image/product/content/vendorItem/2018/06/26/196713/738d905f-ed80-4fd8-ad21-ed87b195a19e.jpg' /><div></html>",
              "detailType": "TEXT"
            }
          ]
        }
      ],
      "offerCondition": "NEW",
      "offerDescription": ""
    }
  ],
  "requiredDocuments": [
    {
      "templateName": "기타인증서류",
      "vendorDocumentPath": "http://image11.coupangcdn.com/image/product/content/vendorItem/2018/07/02/41579010/eebc0c30-8f35-4a51-8ffd-808953414dc1.jpg"
    }
  ],
  "extraInfoMessage": "",
  "manufacture": "아모레퍼시픽"
}

SAMPLE RESPONSE

{
  "code": "200",
  "message": "",
  "data": {
    "code": "SUCCESS",
    "message": "",
    "data": 427011919   (THIS IS THE SELLER PRODUCT ID which we save as channel item id)
  }
}

Error Messages:

Status Message
400 Required attribute for category does not exist. : Error that occurs when the item to be entered as mandatory among attribute values ​​is missing, it is necessary to check through category metadata information API and input required attribute value.
400 There is an error in the input. line: *** (e.g. 123): error correction on that line.
400 Please enter a valid return center code. : You need to enter the correct factory and return code using the Factory and Return Tracking API.
400 java.lang.NullPointerException: Need to check for typos in the requested JSON body.
400 The required commodity notice information (eg manufacturers and manufacturers) differs from that provided by the category [eg cosmetics]. : This is an error that occurs when there is a problem with the inputted notice information. It is necessary to check the category meta information and exactly match the entered notice information.
400 If the shipping type is more than 19800 free shipping, conditional free is 19800 won, the initial shipping fee is 0 won. If you set freeShipOverAmount: 19800, you need to make sure the deliveryChargeOnReturn value is zero.
400 Please check the [Courier Delivery Code]. : If you set the delivery between islands (remoteAreaDeliverable: "Y"), you can only enter the courier registered at the factory.
401 UNAUTHORIZATION: Invalid authentication information.

sellerProductID - This is our channelItemID which is returned in the response from product create in data node! The sellerProductID is used also to delete the products once its items are deactivated

vendorItemID - using the sellerProductID with call Product Enquiry here we will obraint our vendorItemIDs which are used for Stock Update, Price Update, Activate and Deactivate calls

Product Status Update

In order to check if a product was successfully created or rejected wi will have to do additional call to check the status and the reason if rejected. END POINT [GET] - https://api-gateway.coupang.com/v2/providers/seller_api/apis/api/v1/marketplace/seller-products/{sellerProductId}/histories Request Parameters

Request

Name Required Type Description
sellerProductId O Number Listed Product ID (sellerProductId)
nextToken Number Page

Token value to call the next page Enter nothing or '1' to call the 1st page | | maxPerPage | | | | | | Number | # of results per page Default value: 10 |

We will receive the sellerProductId our ChannelItemID once we successfully send the product for creation. Once we send the product we will have to leave it on status SENT then depends on the status we receive from the status update call we will do the following:

  • Under review - Remains on SENT with inactive and product_created
  • Temporarily saved - Remains on SENT with inactive and product_created
  • Awaiting approval - Remains on SENT with inactive and product_created
  • Approved - Not Needed with active and product_published
  • Partially approved - Not Needed with active and product_publishe
  • Approval denied - Error with error message and inactive and product_created
  • Product deleted - Not Needed with inactive and product_removed
  • 심사중 -Under review
  • 임시저장 - Temporarily saved
  • 승인대기중 - Awaiting Approval
  • 승인완료 - Approved
  • 부분승인완료 - Partially approved
  • 승인반려 - Approval Denied
  • 상품삭제 - Product Deleted

Edit Product

https://developers.coupang.com/hc/ko/articles/360034156073-%EC%83%81%ED%92%88-%EC%88%98%EC%A0%95

END Point [PUT] -

https://api-gateway.coupang.com/v2/providers/seller_api/apis/api/v1/marketplace/seller-products

Payload is the same as the product create call just the method is PUT Price and Quantity does not update with update product after product listed

Stock Update

https://developers.coupang.com/hc/ko/articles/360034156253-%EC%83%81%ED%92%88-%EC%95%84%EC%9D%B4%ED%85%9C%EB%B3%84-%EC%88%98%EB%9F%89-%EB%B3%80%EA%B2%BD

END Point [PUT] -

https://api-gateway.coupang.com/v2/providers/seller_api/apis/api/v1/marketplace/vendor-items/{vendorItemId}/quantities/{quantity}

Change the inventory quantity per product item. This function can be used after the approval of the sales request is completed and an option ID (vendorItemId) is issued.

Parameters:

vendorItemId Option ID Unique number given to the vendor item. quantity - Available stock

Price Update

https://developers.coupang.com/hc/ko/articles/360034156273-%EC%83%81%ED%92%88-%EC%95%84%EC%9D%B4%ED%85%9C%EB%B3%84-%EA%B0%80%EA%B2%A9-%EB%B3%80%EA%B2%BD

END Point [PUT] -

https://api-gateway.coupang.com/v2/providers/seller_api/apis/api/v1/marketplace/vendor-items/3572784698/prices/49000?forceSalePriceUpdate=true

Change the selling price for each product item.This function can be used when the approval ID is issued after the sales request is applied and a vendorItemId is issued.

With forceSalePriceUpdate = true, you can change the price without requesting a change rate limit.

Parameters: vendorItemId - Option ID Unique number given to the vendor item. price-price You can enter at least 10 won unit. (Cannot enter 1 unit)

forceSalePriceUpdate - Is the price change rate limited? false (default value) or true (no limit on price change) Limit the price ratio you can change from your existing price to avoid typing mistakes.  Added to forceSalePriceUpdate = true to handle price changes. To double check from where the price limit comes

Delete Product

https://developers.coupang.com/hc/ko/articles/360033644954-%EC%83%81%ED%92%88-%EC%82%AD%EC%A0%9C

END Point [DELETE] -

https://api-gateway.coupang.com/v2/providers/seller_api/apis/api/v1/marketplace/seller-products/{sellerProductId}

Delete the company's product.

A product can be deleted if it is not in the pending status and all options (items) included in the product are discontinued.

sellerProductId - Product ID Included in the URL sent. When the product is created, it can be checked through the registered product ID (data) product inquiry API.

Stop selling by product item

https://developers.coupang.com/hc/ko/articles/360034156313-%EC%83%81%ED%92%88-%EC%95%84%EC%9D%B4%ED%85%9C%EB%B3%84-%ED%8C%90%EB%A7%A4-%EC%A4%91%EC%A7%80

END Point [PUT] -

https://api-gateway.coupang.com/v2/providers/seller_api/apis/api/v1/marketplace/vendor-items/{vendorItemId}/sales/stop

Change the sales status for each product item to stop. This function can be used after the approval of the sales request is completed and an option ID (vendorItemId) is issued.

Parameters: vendorItemId - Option ID Unique number given to the vendor item.

Resume sale by product item

https://developers.coupang.com/hc/ko/articles/360033645154-%EC%83%81%ED%92%88-%EC%95%84%EC%9D%B4%ED%85%9C%EB%B3%84-%ED%8C%90%EB%A7%A4-%EC%9E%AC%EA%B0%9C

END Point [PUT] -

https://api-gateway.coupang.com/v2/providers/seller_api/apis/api/v1/marketplace/vendor-items/{vendorItemId}/sales/resume

Change the sales status for each product item to selling. This function can be used after the approval of the sales request is completed and an option ID (vendorItemId) is issued.

vendorItemId - Option ID Unique number given to the vendor item.

Product Enquiryhttps://developers.coupang.com/hc/ko/articles/360033644994-%EC%83%81%ED%92%88-%EC%A1%B0%ED%9A%8C

This will be our response reader where we can track when a product is created or not.

END Point [GET] -

https://api-gateway.coupang.com/v2/providers/seller_api/apis/api/v1/marketplace/seller-products/{sellerProductId}

Inquiry of registered product information by registered product ID (sellerProductId). You can check the option ID (vendorItemId) required when modifying product price / stock / sales status.  In addition, you can obtain product information that can be used when modifying products by viewing product information.

The response is the whole product information however the most inportant is the

vendorItemId Number Option ID The value is null when in temporary storage. The value is displayed when product approval is completed.

2. Orders Flow

We have 2 different groups here one for Getting Orders and Shipping then and one for Getting Returns, Sending Returns.

Get Orders API - https://developers.coupang.com/hc/ko/articles/360033919573-%EB%B0%9C%EC%A3%BC%EC%84%9C-%EB%AA%A9%EB%A1%9D-%EC%A1%B0%ED%9A%8C-%EC%9D%BC%EB%8B%A8%EC%9C%84-%ED%8E%98%EC%9D%B4%EC%A7%95-

GET / v2 / providers / openapi / apis / api / v4 / vendors / {vendorId} / ordersheets

Request Parameters

Path Segment Parameter

Name Required Type Description
vendorId O String Merchant ID

Unique code issued by Coupang to the company ) A00012345 |

Query String Parameter

Name Required Type Description
createdAtFrom O String Search start date

Enter the start date you want to search in yyyy-mm-dd format ex) 2018-07-01 | | createdAtTo | | | | O | String | Search end date Enter the end date you want to search in yyyy-mm-dd format ex) 2018-07-31 Up to 31 days can be viewed. | | status | | | | O | String | Order status Parameter NameStatusACCEPTPayment finishedINSTRUCTProduct preparationDEPARTUREDelivery orderDELIVERINGshippingFINAL_DELIVERYDelivery completedNONE_TRACKINGDirect delivery to the company (not applicable for delivery linkage), non-trackable | | nextToken | | | | | String | Token value for next page inquiry It is not necessary for the first page inquiry. Up to 50 pages are requested per page, so it is necessary to use [nextToken] to view the next page | | maxPerPage | | | | | Number | Maximum hit request value per page default = 50 | | searchType | | | | | String | search type for order sheets results If searchType = timeFrame, it is executed by order list search (all minutes). Otherwise, it is performed by order list search (daily paging). The searchType parameter is used only for v4 version. |

SAMPLE RESPONSE:

Response Message

Name Type Description Comment
code Number Server response code
message String Server response message
data Array Result list
If there is no result, an empty list is returned
shipmentBoxId Number Shipping number (bundled shipping number) Order Shipping ID field. (waiting for confirmation if one per order)
orderId Number Order Number Orders mp order id
orderedAt String Order Date
yyyy-MM-dd'T'HH: mm: ss orders order_created_time
in GMT
orderer Object Orderer
name String Orderer's name orders buyer name
email String Orderer email
Masked orders buyer email
safeNumber String Recipient's contact information (security number)
ordererNumber String Orderer's contact information (real phone number)
null
paidAt String Payment date
yyyy-MM-dd'T'HH: mm: ss
status String Order status
Parameter NameStatusACCEPTPayment finishedINSTRUCTProduct preparationDEPARTUREDelivery orderDELIVERINGshippingFINAL_DELIVERYDelivery completedNONE_TRACKINGDirect delivery to the company (not applicable for delivery linkage), non-trackable orders mp status
shippingPrice Number shipping fee orders shipping_cost
remotePrice Number Delivery cost between islands
remoteArea Boolean Island Mountain
parcelPrintMessage String Delivery message
optional
splitShipping Boolean Separate delivery
ableSplitShipping Boolean Separate delivery availability
receiver Object
name String Payee name orders shipping name
safeNumber String Recipient's contact information (security number)
receiverNumber String Contact information (real phone number)
null
addr1 String Recipient Ship To 1 orders shipping address
addr2 String Payee 2
postCode String Recipient Postal Code orders shipping Post Code
orderItems Array Items to deliver
vendorItemPackageId Number vendorItemPackageId
Unused / return 0 if none N/A
vendorItemPackageName String vendorItemPackageName
unused N/A
productId Number productId
optional / return 0 if none
vendorItemId Number vendorItemId
vendorItemName String vendorItemName order_item item_titiel
shippingCount Number shippingCount = Purchase quantity of item when ordering

holdCountForCancel = Quantity to be refunded due to cancellation cancelCount = Quantity confirmed to be canceled Orderable quantity = shippingCount-(holdCountForCancel + cancelCount) | order item Quantity | | | | salesPrice | | Number | Price of one item | order_item item_trans_price | | | | orderPrice | | Number | Payment price: salesPrice * shippingCount | orders order_subtotal (order total need to inrternali calculated) | | | | discountPrice | | Number | Total discounted price, discountPrice = instantCouponDiscount (instant discount coupon) + downloadableCoupon (download coupon) + DiscountcoupangDiscount (discount with Coupon support) | | | | | instantCouponDiscount | | Number | Instant Discount Coupon Instant discount coupon discount amount | | | | | downloadableCouponDiscount | | Number | Download coupon Download coupon discount amount | | | | | coupangDiscount | | Number | Discount Coupon Support Coupang support shopping cart / category coupon amount | | | | | externalVendorSkuCode | | String | external code optional | order item item_sku | | | | etcInfoHeader | | String | Individual items for each product optional | N/A | | | | etcInfoValue | | String | User's input value for individual input items by product optional The field exists but has no value. Please use etcInfoValues ​​below if necessary. | N/A | | | | etcInfoValues | | Array | List of user input values ​​for individual input items by product optional v4 version only | N/A | | | | sellerProductId | | Number | Company Product ID | | | | | sellerProductName | | String | Company name | | | | | sellerProductItemName | | String | Registration option name | | | | | firstSellerProductItemName | | String | First registration option name | | | | | cancelCount | | Number | Cancellation quantity | | | | | holdCountForCancel | | Number | Waiting for refund | | | | | estimatedShippingDate | | String | Scheduled delivery date when ordering (expected delivery delivery date) optional / yyyy-mm-dd | | | | | plannedShippingDate | | String | Actual delivery date (separate delivery) optional / yyyy-mm-dd | | | | | invoiceNumberUploadDate | | String | Waybill Number Upload Date optional / yyyy-MM-dd'T'HH: mm: ss | | | | | extraProperties | | Object | Company Product Option Additional Information optional / key: value type | | | | | pricingBadge | | Boolean | Lowest price availability true / false v4 version only | | | | | usedProduct | | Boolean | Used products true / false v4 version only | | | | | confirmDate | | String | Purchase Confirmation Date yyyy-MM-dd HH: mm: ss v4 version only | | | | | deliveryChargeTypeName | | String | Delivery cost classification Paid, free v4 version only | | | | | canceled | | Boolean | Order cancellation true / false | | | | overseaShippingInfoDto | | | Object | Overseas delivery information optional | | | | | personalCustomsClearanceCode | | String | optional | | | | | orderersSsn | | String | optional | | | | | ordererPhoneNumber | | String | | | | | deliveryCompanyName | | | String | Courier CJ Korea Express, Hanjin Express v4 version only | | | | invoiceNumber | | | String | waybill number v4 version only | | | | inTrasitDateTime | | | String | Delivery date (shipment date) yyyy-MM-dd HH: mm: ss v4 version only | | | | deliveredDate | | | String | Delivery completion date yyyy-MM-dd HH: mm: ss v4 version only | | | | refer | | | String | Payment location IPhone App, Android App, PC Web, Mobile Web v4 version only | | | nextToken | | | | String | Token value required to send the next page request Returns the empty value for the last page | used to go to the next page |

PAYLOAD:

{
  "code": 200,
  "message": "OK",
  "data": [
    {
      "shipmentBoxId": 448531493,
      "orderId": 22000009546234,
      "orderedAt": "2017-10-10T10:20:16",
      "orderer": {
        "name": "신*희",
        "email": "eu*****@na",
        "safeNumber": "0503-**-5464",
        "ordererNumber": null
      },
      "paidAt": "2017-10-10T10:20:16",
      "status": "FINAL_DELIVERY",
      "shippingPrice": 2500,
      "remotePrice": null,
      "remoteArea": false,
      "parcelPrintMessage": "문 앞",
      "splitShipping": false,
      "ableSplitShipping": false,
      "receiver": {
        "name": "신*희",
        "safeNumber": "0503-**-5464",
        "receiverNumber": null,
        "addr1": "경기 오산시 가수동 **아파트",
        "addr2": "109동 *호",
        "postCode": "447-700"
      },
      "orderItems": [
        {
          "vendorItemPackageId": 0,
          "vendorItemPackageName": "인디고뱅크키즈 기모 테잎배색 트레이닝 팬츠 IKTM17WG1",
          "productId": 31846051,
          "vendorItemId": 3242596358,
          "vendorItemName": "인디고뱅크키즈 기모 테잎배색 트레이닝 팬츠 IKTM17WG1, 07 DARK GREY, 160호",
          "shippingCount": 1,
          "salesPrice": 19000,
          "orderPrice": 19000,
          "discountPrice": 3000,
          "instantCouponDiscount": 2000,
          "downloadableCouponDiscount": 1000,
          "coupangDiscount": 0,
          "externalVendorSkuCode": "170816368810",
          "etcInfoHeader": null,
          "etcInfoValue": null,
          "etcInfoValues": [
            "추가메시지1",
            "추가메시지2"
          ],
          "sellerProductId": 80240831,
          "sellerProductName": "인디고뱅크키즈 A5 기모 배색츄키니 IKTM17WG1",
          "sellerProductItemName": "07 DARK GREY 160호",
          "firstSellerProductItemName": "07 DARK GREY/160호",
          "cancelCount": 0,
          "holdCountForCancel": 0,
          "estimatedShippingDate": "2017-10-16",
          "plannedShippingDate": "",
          "invoiceNumberUploadDate": "",
          "extraProperties": {},
          "pricingBadge": false,
          "usedProduct": false,
          "confirmDate": "2017-10-25 00:10:33",
          "deliveryChargeTypeName": "유료",
          "canceled": false
        }
      ],
      "overseaShippingInfoDto": {
        "personalCustomsClearanceCode": "",
        "ordererSsn": "",
        "ordererPhoneNumber": ""
      },
      "deliveryCompanyName": "CJ 대한통운",
      "invoiceNumber": "340010913442",
      "inTrasitDateTime": "2017-10-16 22:08:04",
      "deliveredDate": "2017-10-17 17:17:52",
      "refer": "안드로이드앱"
    },
    {
      "shipmentBoxId": 448537989,
      "orderId": 22000009546630,
      "orderedAt": "2017-10-10T10:35:04",
      "orderer": {
        "name": "김*숙",
        "email": "hs*****@na",
        "safeNumber": "0503-**-5013",
        "ordererNumber": null
      },
      "paidAt": "2017-10-10T10:35:04",
      "status": "FINAL_DELIVERY",
      "shippingPrice": 0,
      "remotePrice": null,
      "remoteArea": false,
      "parcelPrintMessage": "직접 받고 부재 시 문 앞",
      "splitShipping": false,
      "ableSplitShipping": false,
      "receiver": {
        "name": "김*숙",
        "safeNumber": "0502-344-6681",
        "receiverNumber": null,
        "addr1": "경기 광명시 하안1동 두산트레지움아파트",
        "addr2": "107동701호",
        "postCode": "423-747"
      },
      "orderItems": [
        {
          "vendorItemPackageId": 0,
          "vendorItemPackageName": "리틀브렌 후드달이 구스 경량 점퍼 LBJD17WG5",
          "productId": 34047877,
          "vendorItemId": 3261300431,
          "vendorItemName": "리틀브렌 후드달이 구스 경량 점퍼 LBJD17WG5, 04 MIDDLE MELANGE GR, 170호",
          "shippingCount": 1,
          "salesPrice": 27800,
          "orderPrice": 27800,
          "discountPrice": 2470,
          "instantCouponDiscount": 560,
          "downloadableCouponDiscount": 1910,
          "coupangDiscount": 0,
          "externalVendorSkuCode": "170824416510",
          "etcInfoHeader": null,
          "etcInfoValue": null,
          "etcInfoValues": [
            "추가메시지1",
            "추가메시지2"
          ],
          "sellerProductId": 87037167,
          "sellerProductName": "리틀브렌 후드달이 구스 경량 점퍼 LBJD17WG5",
          "sellerProductItemName": "04 MIDDLE MELANGE GR 170호",
          "firstSellerProductItemName": "04 MIDDLE MELANGE GR/170호",
          "cancelCount": 0,
          "holdCountForCancel": 0,
          "estimatedShippingDate": "2017-10-16",
          "plannedShippingDate": "",
          "invoiceNumberUploadDate": "",
          "extraProperties": {},
          "pricingBadge": false,
          "usedProduct": false,
          "confirmDate": "2017-10-25 02:10:27",
          "deliveryChargeTypeName": "무료",
          "canceled": false
        }
      ],
      "overseaShippingInfoDto": {
        "personalCustomsClearanceCode": "",
        "ordererSsn": "",
        "ordererPhoneNumber": ""
      },
      "deliveryCompanyName": "CJ 대한통운",
      "invoiceNumber": "340010912565",
      "inTrasitDateTime": "2017-10-16 22:08:04",
      "deliveredDate": "2017-10-17 20:42:23",
      "refer": "안드로이드앱"
    }
  ],
  "nextToken": "448537989"
}

The shipmentBoxID need to be stored on order_item level because when we are shipping the order we need to send the shipmentBoxId, orderID and vendorItemID thus we need to know which shipmentBoxId is for which vendorItemID. When we are getting the new order we need to be careful where we will store the shipmentBoxID and for which Item we will have to make sure the correct ShipmentBoxID is added for the correct vendorItemID

Accept Orders API

https://developers.coupang.com/hc/ko/articles/360033792994-%EC%83%81%ED%92%88%EC%A4%80%EB%B9%84%EC%A4%91-%EC%B2%98%EB%A6%AC

PATCH PUT

/ v2 / providers / openapi / apis / api / v4 / vendors / {vendorId} / ordersheets / acknowledgement

Example Endpoint

https://api-gateway.coupang.com/v2/providers/openapi/apis/api/v4/vendors/A00012345/ordersheets/acknowledgement

Request Parameters

Path Segment Parameter

Name Required Type Description
vendorId O String Merchant ID

Unique code issued by the company to Coupang Ex) A00012345 |

Body Parameter

Name Required Type Description
vendorId O String Merchant ID

Unique code issued by the company to Coupang Ex) A00012345 | | shipmentBoxIds | | | | | O | Array | List of bundled shipping numbers to be changed to product preparation status Request up to 50 requests |

Request Example

{
  "vendorId": "A00012345",
  "shipmentBoxIds": [
    1234719731,
    1234719732
  ]
}

Response Message

Name Type Description
code Number Server response code
message String Server response message
data OrderSheetResponse Ordersheet state change api call result object
responseKey Number Classification value for request
System metadata
responseCode Number Status code for the overall result of the request
CodeMessage-OneNone0All succeeded.OnePartial errors.99All Failed.
responseMessage String Status message for the total result of the request
responseList Array Result set for individual guns
shipmentBoxId Number Shipping number
succeed Boolean Success
resultCode String Result code
resultMessage String Result message
retryRequired Boolean Whether retry is possible

Response Example

{
  "code": "200",
  "message": "OK",
  "data": {
    "responseKey": -7326489997410940000,
    "responseCode": 1,
    "responseMessage": "apply instructStatus result - Partial errors.",
    "responseList": [
      {
        "shipmentBoxId": 102391542,
        "succeed": true,
        "resultCode": "OK",
        "retryRequired": false,
        "resultMessage": "request succeeded."
      },
      {
        "shipmentBoxId": 102391599,
        "succeed": false,
        "resultCode": "NOT_FOUND_SHIPMENT_BOX",
        "retryRequired": true,
        "resultMessage": "shipmentBoxId (102391599) is not found."
      }
    ]
  }
}

Ship Orders API

https://developers.coupang.com/hc/ko/articles/360033793014-%EC%86%A1%EC%9E%A5%EC%97%85%EB%A1%9C%EB%93%9C-%EC%B2%98%EB%A6%ACPOST

/ v2 / providers / openapi / apis / api / v4 / vendors / {vendorId} / orders / invoices

Example Endpoint

https://api-gateway.coupang.com/v2/providers/openapi/apis/api/v4/vendors/A00012345/orders/invoices

Request Parameters

Path Segment Parameter

Name Required Type Description
vendorId O String Merchant ID

Unique code issued by Coupang to the company ) A00012345 |

Body Parameter

Name Required Type Description
vendorId O String Merchant ID

A unique code issued by Coupang to the vendor.  Ex) A00012345 | | orderSheetInvoiceApplyDtos | | | | | O | Object | List of target information to change to delivery order status | | | shipmentBoxId | | | | | Number | Shipping number (= bundled shipping number) For separate delivery, the shipmentBoxId of the product that has already been sent is changed. (Orders can be checked through single item inquiry API with orderId) | | | orderId | | | | | Number | Order Number | | | deliveryCompanyCode | | | | | String | Courier code Go to courier code | | | invoiceNumber | | | | | String | invoice number Selected for separate delivery. If not, enter "" as a space. For separate delivery, enter either the invoice number or the expected delivery date.  In case of DIRECT, only random numbers can be entered, and shipping tracking is not supported. | | | vendorItemId | | | | | Number | Option Id Enter the option ID of the product you want to upload the invoice.  Separate delivery must be received in the vendorItemId unit of the corresponding shipmentBoxId. | | | splitShipping | | | | | String | Separate delivery ● false (total delivery) When  all products included in one order number are delivered with one invoice number  ● true (separate delivery) When  products included in one order number are separated and delivered with multiple invoice numbers • Separate delivery example (Click) | | | preSplitShipped | | | | | String | Is it being shipped separately? ● false When  separate delivery is not performed (== splitshipping is false) When the separate delivery is handled for the first time for  the order number ● true  If there is a product that has already been delivered separately | | | estimatedShippingDate | | | | | String | (Separate delivery) Scheduled to ship Optional input only for separate delivery in YYYY-MM-DD format.  If not input, enter "" space. For separate delivery, enter either invoice number or scheduled delivery date. |

Request Example

{
  "vendorId": "A00034612",
  "orderSheetInvoiceApplyDtos": [
    {
      "shipmentBoxId": 606920263,
      "orderId": 4000019469460,
      "vendorItemId": 3823839899,
      "deliveryCompanyCode": "KDEXP",
      "invoiceNumber": "20180731040123",
      "splitShipping": false,
      "preSplitShipped": false,
      "estimatedShippingDate": ""
    },
    {
      "shipmentBoxId": 606920263,
      "orderId": 4000019469460,
      "vendorItemId": 3834780191,
      "deliveryCompanyCode": "KDEXP",
      "invoiceNumber": "20180731040123",
      "splitShipping": false,
      "preSplitShipped": false,
      "estimatedShippingDate": ""
    }
  ]
}

If you enter a duplicate invoice number within 6 months, an invoice duplication error may occur.  If an incorrect waybill is entered to track the correct delivery flow or if the customer requests cancellation due to a failure to enter a waybill within the due date, the seller will be responsible for shipping costs incurred by this.

Processing during product preparation API

https://developers.coupang.com/hc/ko/articles/360033792994-%EC%83%81%ED%92%88%EC%A4%80%EB%B9%84%EC%A4%91-%EC%B2%98%EB%A6%AC

Change the order status from "Payment completed" to "Product ready". If there is a cancellation of an order requesting a status change, a partial error is returned.  PATCH PUT

/ v2 / providers / openapi / apis / api / v4 / vendors / {vendorId} / ordersheets / acknowledgement

Example Endpoint

https://api-gateway.coupang.com/v2/providers/openapi/apis/api/v4/vendors/A00012345/ordersheets/acknowledgement

Request Parameters

Path Segment Parameter

Name Required Type Description
vendorId O String Merchant ID

Unique code issued by the company to Coupang Ex) A00012345 |

Body Parameter

Name Required Type Description
vendorId O String Merchant ID

Unique code issued by the company to Coupang Ex) A00012345 | | shipmentBoxIds | | | | | O | Array | List of bundled shipping numbers to be changed to product preparation Request up to 50 requests |

Request Example

{
  "vendorId": "A00012345",
  "shipmentBoxIds": [
    1234719731,
    1234719732
  ]
}

Response Message

Name Type Description
code Number Server response code
message String Server response message
data OrderSheetResponse Ordersheet state change api call result object
responseKey Number Classification value for request
System metadata
responseCode Number Status code for the entire result of the request
CodeMessage-OneNone0All succeeded.OnePartial errors.99All Failed.
responseMessage String Status message about the total result of the request
responseList Array Result set for individual guns
shipmentBoxId Number Shipping number
succeed Boolean Success
resultCode String Result code
resultMessage String Result message
retryRequired Boolean Whether retry is possible

Response Example

{
  "code": "200",
  "message": "OK",
  "data": {
    "responseKey": -7326489997410940000,
    "responseCode": 1,
    "responseMessage": "apply instructStatus result - Partial errors.",
    "responseList": [
      {
        "shipmentBoxId": 102391542,
        "succeed": true,
        "resultCode": "OK",
        "retryRequired": false,
        "resultMessage": "request succeeded."
      },
      {
        "shipmentBoxId": 102391599,
        "succeed": false,
        "resultCode": "NOT_FOUND_SHIPMENT_BOX",
        "retryRequired": true,
        "resultMessage": "shipmentBoxId (102391599) is not found."
      }
    ]
  }
}

Cancel Orders API - https://developers.coupang.com/hc/ko/articles/360033843154-%EC%A3%BC%EB%AC%B8-%EC%83%81%ED%92%88-%EC%B7%A8%EC%86%8C-%EC%B2%98%EB%A6%AC

We are able to cancel the order when is on Ready for Shipping and Instruct status as displayed in the flow chart in the comments section.

Get Cancellations / Returns - https://developers.coupang.com/hc/ko/articles/360033792994-%EC%83%81%ED%92%88%EC%A4%80%EB%B9%84%EC%A4%91-%EC%B2%98%EB%A6%AC

3. Taxonomy Flow

The taxonomy is available for download via API as well it can be downloaded as a file directly from Coupang.

Get category list file -https://wing.coupang.com/excel/categories/download/file Get categories API - https://developers.coupang.com/hc/ko/articles/360033400814-%EC%B9%B4%ED%85%8C%EA%B3%A0%EB%A6%AC-%EB%AA%A9%EB%A1%9D%EC%A1%B0%ED%9A%8C Get attributes/values API - https://developers.coupang.com/hc/ko/articles/360034035713-%EC%B9%B4%ED%85%8C%EA%B3%A0%EB%A6%AC-%EB%A9%94%ED%83%80%EC%A0%95%EB%B3%B4-%EC%A1%B0%ED%9A%8C

Category List

GET - /v2/providers/seller_api/apis/api/v1/marketplace/meta/display-categories

Response Example:

{
  "code": "SUCCESS",
  "message": "",
  "data": {
    "displayItemCategoryCode": 0,
    "name": "ROOT",
    "status": "ACTIVE",
    "child": [
      {
        "displayItemCategoryCode": 69182,
        "name": "패션의류잡화",
        "status": "ACTIVE",
        "child": [
          {
            "displayItemCategoryCode": 69183,
            "name": "여성패션",
            "status": "ACTIVE",
            "child": [
              {
                "displayItemCategoryCode": 69184,
                "name": "여성의류",
                "status": "ACTIVE",
                "child": [
                  {
                    "displayItemCategoryCode": 79268,
                    "name": "티셔츠",
                    "status": "ACTIVE",
                    "child": [
                      {
                        "displayItemCategoryCode": 79383,
                        "name": "민소매/나시",
                        "status": "ACTIVE",
                        "child": [

                        ]
                      },
                      {
                        "displayItemCategoryCode": 79382,
                        "name": "반소매",
                        "status": "ACTIVE",
                        "child": [

                        ]
                      },
                      {
                        "displayItemCategoryCode": 79381,
                        "name": "긴소매",
                        "status": "ACTIVE",
                        "child": [

                        ]
                      }
                    ]
                  },
                  {
                    "displayItemCategoryCode": 69186,
                    "name": "맨투맨",
                    "status": "ACTIVE",
                    "child": [

                    ]
                  },
                  {
                    "displayItemCategoryCode": 79269,
                    "name": "후드티",
                    "status": "ACTIVE",
                    "child": [

                    ]
                  },
                  {
                    "displayItemCategoryCode": 69187,
                    "name": "블라우스",
                    "status": "ACTIVE",
                    "child": [

                    ]
                  },
                  {
                    "displayItemCategoryCode": 69188,
                    "name": "셔츠(남방)",
                    "status": "ACTIVE",
                    "child": [

                    ]
                  },

                  ...... 중략 ......

                  {
                    "displayItemCategoryCode": 86393,
                    "name": "양봉용품",
                    "status": "ACTIVE",
                    "child": [
                      {
                        "displayItemCategoryCode": 86389,
                        "name": "양봉의류",
                        "status": "ACTIVE",
                        "child": [

                        ]
                      },
                      {
                        "displayItemCategoryCode": 86390,
                        "name": "양봉모자/잡화",
                        "status": "ACTIVE",
                        "child": [

                        ]
                      },
                      {
                        "displayItemCategoryCode": 86391,
                        "name": "벌통",
                        "status": "ACTIVE",
                        "child": [

                        ]
                      },
                      {
                        "displayItemCategoryCode": 86392,
                        "name": "양봉용 자재",
                        "status": "ACTIVE",
                        "child": [

                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  }
}

"displayItemCategoryCode": marketplace_category.mp_name and marketplace_categoryhemi_name "name": marketplace_category.mp_id
"status": Status indicates which category is in use we will story only categories which are Active (In service) ”child”: if we have an empty child node like "child": [] this means this a leaf category and we set marketplace_category.is_leaf Note* we do not receive the marketplace_category.category_navigation_path how if you think you can trace all previous categories until you reach the leaf one it will be good to have it like 양봉용품->양봉용 자재->벌통marketplace_category.marketplace = coupang marketplace_category.parent_id - here we store the previous category displayItemCategoryCode one levev higher

Category Meta Information Search

GET - /v2/providers/seller_api/apis/api/v1/marketplace/meta/category-related-metas/display-category-codes/{displayCategoryCode}

I am not aware of any limits so we can call each category separately if it is easier to call all categories at once and store the data in an array and then add it to the database I don't mind have this approach. Examples Response:

{
  "code": "SUCCESS",
  "message": "",
  "data": {
    "isAllowSingleItem": true,
    "attributes": [
      {
        "attributeTypeName": "수량",
        "dataType": "NUMBER",
        "basicUnit": "개",
        "usableUnits": [
          "개",
          "개입",
          "매",
          "매입",
          "팩",
          "입",
          "장",
          "병",
          "인용",
          "인분",
          "box",
          "Ea",
          "포",
          "캔",
          "박스",
          "스틱",
          "권",
          "set",
          "세트",
          "조",
          "캡슐",
          "통",
          "정",
          "봉",
          "마리",
          "롤",
          "p",
          "구",
          "피스",
          "회",
          "회분",
          "단계",
          "번",
          "프렛",
          "음판",
          "건반",
          "쪽",
          "단",
          "칸",
          "종",
          "분류",
          "현",
          "선",
          "공",
          "자리",
          "폭",
          "rpm",
          "색",
          "대"
        ],
        "required": "OPTIONAL",
        "groupNumber": "NONE",
        "exposed": "EXPOSED"
      },
      {
        "attributeTypeName": "자동차거치용품 거치대고정",
        "dataType": "STRING",
        "basicUnit": "없음",
        "usableUnits": [],
        "required": "OPTIONAL",
        "groupNumber": "NONE",
        "exposed": "NONE"
      },
      {
        "attributeTypeName": "헤드 회전 가능여부",
        "dataType": "STRING",
        "basicUnit": "없음",
        "usableUnits": [],
        "required": "OPTIONAL",
        "groupNumber": "NONE",
        "exposed": "NONE"
      },
      {
        "attributeTypeName": "각도조절 가능여부",
        "dataType": "STRING",
        "basicUnit": "없음",
        "usableUnits": [],
        "required": "OPTIONAL",
        "groupNumber": "NONE",
        "exposed": "NONE"
      }
    ],
    "noticeCategories": [
      {
        "noticeCategoryName": "자동차용품(자동차부품/기타 자동차용품)",
        "noticeCategoryDetailNames": [
          {
            "noticeCategoryDetailName": "품명 및 모델명",
            "required": "MANDATORY"
          },
          {
            "noticeCategoryDetailName": "출시년월",
            "required": "MANDATORY"
          },
          {
            "noticeCategoryDetailName": "KC 인증 필 유무",
            "required": "MANDATORY"
          },
          {
            "noticeCategoryDetailName": "제조자(수입자)",
            "required": "MANDATORY"
          },
          {
            "noticeCategoryDetailName": "제조국",
            "required": "MANDATORY"
          },
          {
            "noticeCategoryDetailName": "크기",
            "required": "MANDATORY"
          },
          {
            "noticeCategoryDetailName": "적용차종",
            "required": "MANDATORY"
          },
          {
            "noticeCategoryDetailName": "품질보증기준",
            "required": "MANDATORY"
          },
          {
            "noticeCategoryDetailName": "A/S 책임자와 전화번호",
            "required": "MANDATORY"
          }
        ]
      },
      {
        "noticeCategoryName": "기타 재화",
        "noticeCategoryDetailNames": [
          {
            "noticeCategoryDetailName": "품명 및 모델명",
            "required": "MANDATORY"
          },
          {
            "noticeCategoryDetailName": "인증사항",
            "required": "MANDATORY"
          },
          {
            "noticeCategoryDetailName": "제조국(원산지)",
            "required": "MANDATORY"
          },
          {
            "noticeCategoryDetailName": "제조자(수입자)",
            "required": "MANDATORY"
          },
          {
            "noticeCategoryDetailName": "소비자상담 관련 전화번호",
            "required": "MANDATORY"
          }
        ]
      }
    ],
    "requiredDocumentNames": [
      {
        "templateName": "기타인증서류",
        "required": "OPTIONAL"
      },
      {
        "templateName": "수입신고필증(병행수입 선택시)",
        "required": "MANDATORY_PARALLEL_IMPORTED"
      },
      {
        "templateName": "인보이스영수증(해외구매대행 선택시)",
        "required": "MANDATORY_OVERSEAS_PURCHASED"
      }
    ],
    "certifications": [
      {
        "certificationType": "NOT_REQUIRED",
        "name": "인증대상아님",
        "dataType": "NONE",
        "required": "OPTIONAL"
      },
      {
        "certificationType": "PRESENTED_IN_DETAIL_PAGE",
        "name": "상세설명에 표시",
        "dataType": "NONE",
        "required": "OPTIONAL"
      },
      {
        "certificationType": "KC_KID_CERTIFICATION",
        "name": "KC인증 어린이제품 안전인증",
        "dataType": "CODE",
        "required": "RECOMMEND"
      },
      {
        "certificationType": "KC_KID_CONFIRM",
        "name": "KC인증 어린이제품 안전확인",
        "dataType": "CODE",
        "required": "OPTIONAL"
      },
      {
        "certificationType": "KC_KID_PROVIDER",
        "name": "KC인증 어린이제품 공급자적합성확인",
        "dataType": "NONE",
        "required": "OPTIONAL"
      },
      {
        "certificationType": "KC_ELECTRONICS_CERTIFICATION",
        "name": "KC인증 전기용품 안전인증",
        "dataType": "CODE",
        "required": "OPTIONAL"
      },
      {
        "certificationType": "KC_ELECTRONICS_CONFIRM",
        "name": "KC인증 전기용품 안전확인",
        "dataType": "CODE",
        "required": "OPTIONAL"
      },
      {
        "certificationType": "KC_ELECTRONICS_PROVIDER",
        "name": "KC인증 전기용품 공급자적합성확인",
        "dataType": "NONE",
        "required": "OPTIONAL"
      },
      {
        "certificationType": "KC_HOUSEHOLD_CERTIFICATION",
        "name": "KC인증 생활용품 안전인증",
        "dataType": "CODE",
        "required": "RECOMMEND"
      },
      {
        "certificationType": "KC_HOUSEHOLD_CONFIRM",
        "name": "KC인증 생활용품 자율안전확인",
        "dataType": "CODE",
        "required": "RECOMMEND"
      },
      {
        "certificationType": "KC_HOUSEHOLD_QUALITY",
        "name": "KC인증 생활용품 안전품질표시",
        "dataType": "NONE",
        "required": "RECOMMEND"
      },
      {
        "certificationType": "KC_HOUSEHOLD_PACKAGING",
        "name": "KC인증 생활용품 어린이보호포장",
        "dataType": "NONE",
        "required": "RECOMMEND"
      },
      {
        "certificationType": "COMMUNICATION_EQUIPMENT",
        "name": "방송통신기자재 적합성 평가 대상",
        "dataType": "CODE",
        "required": "RECOMMEND"
      }
    ],
    "allowedOfferConditions": [
      "NEW",
      "REFURBISHED",
      "USED_BEST",
      "USED_GOOD",
      "USED_NORMAL"
    ]
  }
}

Our foreign key is marketplace_category_property.mp_category_id = marketplace_category.mp_id and marketplace_category_property.id = marketplace_property_value.master_record_id

marketplace_category_property.hemi_name and marketplace_category_property.mp_name is attributeTypeName

marketplace_category_property.mp_code won't be use as we do not have ids provided.

marketplace_category_property.required if we have required : Optional then 0 else 1

marketplace_category_property.enumeration if we have usableUnits empty node then 0 else 1 and we store them in marketplace_property_value.hemi_value and marketplace_property_value.mp_value with marketplace_property_value.property_id won't be use a

So far so good we have the IS and the attributes with the values then we have the notices Here is the fun part they are something like additional specification for the products which are not send as attributes (our IS) but as notices which can be MANDATORY or OPTIONAL. We can advertise new flag in marketplace_category_property called notice if 1 then this indicates this is a notice and we will store the noticeCategoryName as marketplace_property.hemi_value and marketplace_property_value.mp_value and all noticeCategoryDetailName as marketplace_property_value.hemi_value and marketplace_property_value.mp_value but in marketplace_property_value we will have to advertise required flag. This way what we will have in the product is:

  "notices": [
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "용량(중량)",
          "content": "상세페이지 참조"
        },
        {
          "noticeCategoryName": "화장품",
          "noticeCategoryDetailName": "제품 주요 사양",
          "content": "상세페이지 참조"
        },

Our internal validation will check if for noticeCategoryName marketplace_property.hemi_value and marketplace_property_value.mp_value with marketplace_category_property.notice is correct and we have the noticeCategoryDetailName in marketplace_property_value.hemi_value and marketplace_property_value.mp_value if the value is there and if marketplace_property_value.required is 1. content this is a free text.

I am happy for discussions and different approaches for the taxonomy 🙂

Is this article helpful?
0 0 0