Вы всегда покупаете вариант в Shopify.
Сам заказ сохраняет запись с идентификатором варианта в качестве контрольной точки.
Таким образом, краткий ответ: NO - вы не можете добавить товар через SKU.
Для вас второй вопрос:
есть ли способ узнать идентификатор варианта на основе SKU?
Да, но это действительно зависит от того, как вы реализуете часть SKU.
Если вы находитесь на странице продукта и у вас есть SKU, вы можете получить вариант_идентификатора, если отфильтровываете варианты.
Но если вы не находитесь на странице продукта и у вас есть, например, 500+ продуктов, то самый быстрый способ будет использовать GraphQL следующим образом:
{
productVariants(first: 1, query: "sku:SOMESKU"){
edges {
node {
id
}
}
}
}
Где он вернет такой результат, как:
{
"data": {
"productVariants": {
"edges": [
{
"node": {
"id": "gid://shopify/ProductVariant/14726421905460"
}
}
]
}
},
"extensions": {
"cost": {
"requestedQueryCost": 3,
"actualQueryCost": 3,
"throttleStatus": {
"maximumAvailable": 1000,
"currentlyAvailable": 997,
"restoreRate": 50
}
}
}
}
И вы передадите возвращенный идентификатор варианта в корзину.