问题描述
在访问特定商店视图的Magento 2产品选项标题时,我需要一些帮助。
我已将产品选项:“ custom_code”(管理员名称)添加到产品中。 对于我的德语商店视图,它称为“ Konfigurationscode”。 对于我的英语商店视图,它称为“自定义代码”。
我已经构建了一个导出脚本,并且想要访问cosen订单商品的产品选项:
一些修修补补:
curl "http://my_host:my_port/my_table?select=id,lat,long&street_name=\"Reading\"&house_num=\"14\"
从我得到的数据中,我知道一个产品选项的ID为8,所以我选择了这个特定的产品选项:
{"details":"unexpected \"\\\"\" expecting \"not\" or operator (eq,gt,...)","message":"\"Failed to parse filter (\"Reading\")\" (line 1,column 1)"}
不幸的是,标题未在数据中列出
$order = $objectManager->create('Magento\Sales\Model\Order')->load('44');
$items = $order->getAllItems();
$items[0]->getProductOptions();
// ... option_id" => "8",
如何获取订购商品产品选项的标题?以及如何获得标题的管理员名称而不是德语或英语的管理员名称?我还没有找到办法。
感谢您的帮助!
解决方法
好吧,我找到了一个解决方案: 如建议的那样,我们应该使用Repository类:
$optionRepository = $objectManager-
>get('\Magento\Catalog\Model\Product\Option\Repository');
$option = $optionRepository->get('product-sku',"8");
$option->getData();
输出:
"default_title" => "custom_code","store_title" => "Konfigurationscode","title" => "Konfigurationscode",
从存储库中,我可以使用get()方法(https://github.com/magento/magento2/blob/6ce74b2127927f21f7d1efb7b7ef9318b602ce77/app/code/Magento/Catalog/Model/Product/Option.php)
注意:构造函数通过依赖项注入来使用存储库。我使用objectManager是因为我在一个脚本中运行了代码。