Shopify’s Mobile Buy SDK makes it simple to sell physical products inside your mobile app. With a few lines of code, you can connect your app with the Shopify platform and let your users buy your products using Apple Pay or their credit card.
MIT License
452
stars
198
forks
source link
Getting Product Metafield and Usage of [HasMetafieldsIdentifier!]! #1196
final class ProductViewModel: ProductModel {
typealias ModelType = Storefront.ProductEdge
let model: ModelType
let cursor: String
let id: String
let title: String
let handle: String
let summary: String
let unformattedSummary: String
let price: String
let images: PageableArray<ImageViewModel>
let variants: PageableArray<VarientViewModel>
let metaField1: String
// ----------------------------------
// MARK: - Init -
//
required init(from model: ModelType) {
self.model = model
self.cursor = model.cursor
let variants = model.node.variants.edges.viewModels.sorted {
$0.price < $1.price
}
let lowestPrice = variants.first?.price
self.id = model.node.id.rawValue
self.title = model.node.title
.replacingOccurrences(of: "-", with: " ")
.capitalized
self.handle = model.node.handle
self.summary = model.node.descriptionHtml
self.unformattedSummary = model.node.description
self.price = lowestPrice == nil ? "No price" : Currency.stringFrom(lowestPrice!)
self.images = PageableArray(
with: model.node.images.edges,
pageInfo: model.node.images.pageInfo
)
self.variants = PageableArray(
with: model.node.variants.edges,
pageInfo: model.node.variants.pageInfo
)
self.metaField1 = model.node.aliasedMetafield(alias: "myAlias")?.value ?? "" // Attemping to get that metafield I assigned an alias. I tried assign the key as the alias, however it didn't work
}
}
Error Message from xcode
Buy/GraphQL.swift:193: Fatal error: field metafield__myAlias wasn't queried
2023-02-05 22:35:40.172892+0200 travSIM[48928:4746891] Buy/GraphQL.swift:193: Fatal error: field metafield__myAlias wasn't queried
Working GraphQL query
query nodes($ids: [ID!]!) {
nodes(ids: $ids) {
... on Collection {
id
products(first: 50) {
edges {
node {
id
title
metafield(namespace: "custom", key: "myKey") {
value
}
}
}
}
}
}
}
I'm learning from the documentation that there's a more efficient manner of getting all my metafields through the use of [HasMetafieldsIdentifier!]!, unfortunetly I'm failing to find a way of using it.
Hi,
I'm trying to get my product metafields using the following code:
Creating my Product Object
Error Message from xcode
Working GraphQL query
I'm learning from the documentation that there's a more efficient manner of getting all my metafields through the use of [HasMetafieldsIdentifier!]!, unfortunetly I'm failing to find a way of using it.
Any guidance would be apprecited, thanx!