如何获得订单商品图片

时间:2018-12-11 00:29:05

标签: shopware

我正在创建一个自定义插件,如果客户输入订单号邮政编码,它将显示订单信息。我的问题是,当某篇文章具有变体形式时,它会多次输出同一篇文章,我想这是因为我正在对 s_articles_img (从(已订购商品,如果是变体商品),则多次存储相同值,在这种情况下,是 articleID

我拥有的leftjoin:

color

我用本地商店的安装程序和演示数据进行了测试,其中有一篇名为 Variantenartikel 的文章,该文章是尺寸和颜色各不相同的T恤。因此, s_article_img 表的衬衫,shirt_red和Shirt_blue的 articleID (5)的值是其三倍。

所以我的问题是:我怎么只能得到我需要的?我试图找到表之间的关系,但是看不到哪里。我检查了 s_order_details表,s_media 等。但是这些表之间没有任何关系。

我想念什么吗?

这是我完整的查询生成器:

->leftJoin('a', 's_articles_img', 'f', 'f.articleID = e.articleID')

我不是数据库查询方面的专家,因此,如果这不是很准确,我深表歉意。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用此功能获取特定版本的封面图片:https://github.com/shopware/shopware/blob/512cc0ff59c431bbf0d1e968ec0b435e38a576ab/engine/Shopware/Core/sArticles.php#L1758

类似这样的东西:

$article = Shopware()->Modules()->Articles()->sGetArticleById($position['articleID']);
$article = Shopware()->Modules()->Articles()->sGetConfiguratorImage($article);

当您只需要封面图像时,此功能将执行以下操作:https://github.com/shopware/shopware/blob/512cc0ff59c431bbf0d1e968ec0b435e38a576ab/engine/Shopware/Core/sArticles.php#L1265

图像/选项关系保存在s_article_img_mapping_rules中。当图像具有映射时,它将保存在s_article_img_mappings中。从文章到图片应该是很繁琐的SQL语句:

s_article_details.id-> s_article_configurator_option_relations.option_id-> s_article_img_mapping_rules.mapping_id-> s_article_img_mappings.image_id-> s_article_img.id