當使用以下代碼下訂單時,我目前正嘗試在產品中獲取自定義欄位“ emakers_custom_field_warehouse_name ”。
這是我的搜索請求:
$criteria = new Criteria();
$criteria->addFilter(new EqualsFilter('id', $orderId));
$criteria->addAssociations([
'deliveries.shippingOrderAddress.salutation',
'deliveries.shippingOrderAddress.country',
'orderCustomer.customer.group',
'lineItems.product.translations',
]);
$orderObject = $this->orderRepository->search($criteria), Context::createDefaultContext())->first();
這是我序列化 $orderObject->getLineItems->first()->getProduct() 時得到的: https://gist.github.com/Youmar0504/8b53632fbc1b43c11769711519a74a17
我已經嘗試過并給了我空的結果:
$orderObject->getLineItems->first()->getProduct()->getCustomFields()
TBH,我不知道還能嘗試什么。看起來(如果您在要點中搜索 customField 的名稱)它位于產品翻譯物體中。但是,如果我執行 $orderObject->getLineItems->first()->getProduct()->getProductTranslations(),我會收到一條錯誤訊息:“嘗試呼叫類“Shopware\Core\Content\”的名為“getProductTranslations”的未定義方法產品\產品物體“
還有什么我可以嘗試得到的嗎?
uj5u.com熱心網友回復:
發現這取決于語言。剛剛在標準中替換了: 'lineItems.product.translations'由'lineItems.product.default'現在我很容易通過執行以下操作獲得 customFields:
$orderObject->getLineItems->first()->getProduct()->getCustomFields()
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/390480.html
