Tôi đang cố gắng tạo ra một sản phẩm có thể định cấu hình được gọi là "Kudos Configurable" với các tùy chọn cho người dùng chọn từ nhỏ màu xanh lá cây, lớn màu xanh lá cây, cam nhỏ và cam lớn.
Tôi đã đến giai đoạn mà một sản phẩm có thể định cấu hình đã được tạo thông qua API bằng cách sử dụng JSON sau đây trong yêu cầu PUT tới / rest / V1 / sản phẩm / KudosConfig.
{
"product":{
"sku":"KudosConfig",
"name":"Kudos Configurable",
"price":30.00,
"status":4,
"type_id":"configurable",
"attribute_set_id":4,
"weight":1,
"extension_attributes":{
"stock_item":{
"qty":10,
"is_in_stock":true
}
}
}
}
Các sản phẩm con đã được tạo bằng API sử dụng JSON sau đây cho mỗi 4 mục với các thuộc tính cho kích thước và màu được đặt thông qua cùng một phương thức.
{
"product":{
"sku":"KudosConfigGreenSmall ",
"name":"Kudos Configurable Green Small",
"price":30.00,
"status":0,
"type_id":"virtual",
"visibility":1,
"attribute_set_id":4,
"weight":1,
"extension_attributes":{
"stock_item":{
"qty":10,
"is_in_stock":true
}
},
"custom_attributes":[
{
"attribute_code":"kudos_colour",
"value":"328"
},
{
"attribute_code":"kudos_size",
"value":"330"
}
]
}
}
Điều này đang hoạt động tốt và các sản phẩm được tạo ra với các thuộc tính được đặt chính xác.
Tôi đã nghĩ rằng giai đoạn cuối cùng là sử dụng dịch vụ có thể cấu hình sản phẩm ProducttLinkManloymentV1 để liên kết các sản phẩm con nhưng sử dụng yêu cầu POST đến / rest / V1 / configureable-Products / KudosConfig / child với JSON sau đây trả về lỗi yêu cầu xấu HTTP 400.
{
"childSku":"KudosConfigGreenSmall"
}
Tôi đang nghĩ có thể có một cái gì đó khác mà tôi cần phải làm trên sản phẩm mẹ nhưng tôi đang vật lộn để tìm ra cái gì. Trong danh mục dịch vụ ProducttRep repositoryV1, bạn có thể thêm vào một mảng configureable_product_options, tôi đã thử chơi với điều này nhưng chỉ nhận được lỗi yêu cầu xấu.
Bất kỳ ai cũng có thể làm sáng tỏ điều này sẽ được đánh giá rất cao, đã dành quá nhiều thời gian cho việc này.
BIÊN TẬP:
Bây giờ đã thử thêm configureable_product_options vào yêu cầu PUT của sản phẩm có thể định cấu hình, giờ đây nó trông như thế này.
{
"product":{
"sku":"KudosConfig",
"name":"Kudos Configurable",
"price":30.00,
"status":4,
"type_id":"configurable",
"attribute_set_id":4,
"weight":1,
"extension_attributes":{
"stock_item":{
"qty":10,
"is_in_stock":true
},
"configurable_product_options":[
{
"attribute__id":"kudos_colour",
"label":"Colour",
"values":[
{
"value_index":340
},
{
"value_index":341
}
]
},
{
"attribute__id":"kudos_size",
"label":"Size",
"values":[
{
"value_index":343
},
{
"value_index":342
}
]
}
]
}
}
}
Khi tôi thử điều này, tôi nhận được phản hồi 400 với thông báo:
Đã xảy ra lỗi trong khi lưu tùy chọn.
Không đặc biệt hữu ích ...
Một chút nhanh chóng của Googling cho thấy đây là vấn đề https://github.com/magento/magento2/issues/5580 .
Bước tiếp theo là xem khách hàng có hài lòng khi thực hiện hack trên tệp configureable.php không.
EDIT: Hiện tại đã thử thay đổi tệp configureable.php nhưng dường như không tạo ra sự khác biệt, vẫn nhận được cùng một lỗi nên lại bị vấp.