我正在编写我的第一个 Shopware 6 插件并遵循此指南
\n但插件的导航条目不会显示。(URL:admin#/sw/settings/index)菜单如下所示:\n但它应该看起来像这样:
我的插件处于活动状态(在后端检查),表已创建,所以我猜它已加载。
\n我将教程中的 config.xml 文件复制到我的插件中并对其进行了验证(只是为了确定)。
\n<?xml version="1.0" encoding="UTF-8"?>\n<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/shopware/platform/master/src/Core/System/SystemConfig/Schema/config.xsd">\n<card>\n <title>Basic Configuration</title>\n <title lang="de-DE">Grundeinstellungen</title>\n\n <input-field>\n <name>email</name>\n <copyable>true</copyable>\n <label>eMail address</label>\n <label lang="de-DE">E-Mailadresse</label>\n <placeholder>you@example.com</placeholder>\n <placeholder lang="de-DE">du@beispiel.de</placeholder>\n <helpText>Please fill in your personal eMail address</helpText>\n <helpText lang="de-DE">Bitte trage deine pers\xc3\xb6nliche E-Mailadresse ein</helpText>\n </input-field>\n\n <input-field type="single-select">\n <name>mailMethod</name>\n <options>\n <option>\n <id>smtp</id>\n <name>English smtp</name>\n <name lang="de-DE">German smtp</name>\n </option>\n <option>\n <id>pop3</id>\n <name>English pop3</name>\n <name lang="de-DE">German pop3</name>\n </option>\n </options>\n <defaultValue>smtp</defaultValue>\n <label>Mail method</label>\n <label lang="de-DE">Versand-Protokoll</label>\n </input-field>\n</card>\n\n<card>\n <title>Advanced Configuration</title>\n <title lang="de-DE">Erweiterte …
Run Code Online (Sandbox Code Playgroud) 是否有命令仅构建指定插件的管理部分?现在我正在构建整个管理系统来为插件构建公共资源,这当然需要更多时间。由于每个插件都有自己的资源,难道不应该这样做吗?
有人以前使用过嵌套 lineItems 吗?我在文档中找到了参考资料,并且还偶然发现了一些测试,其中 lineItem 是 LineItemCollection:
public function testCartWithNestedLineItemHasChildren(): void
{
$cart = new Cart('test', 'test');
$cart->add(
(new LineItem('nested', 'nested'))
->setChildren(
new LineItemCollection([
(new LineItem('A', 'test'))->setGood(true),
(new LineItem('B', 'test'))->setGood(true),
])
)
);
$cart->add(
(new LineItem('flat', 'flat'))->setGood(true)
);
static::assertCount(4, $cart->getLineItems()->getFlat());
static::assertCount(2, $cart->getLineItems());
}
Run Code Online (Sandbox Code Playgroud)
这个功能得到很好的支持吗?例如,不可能通过管理“创建订单”界面创建嵌套的 lineItem,而且我也没有找到通过店面创建嵌套项目的方法。此功能的预期用例是什么?
如何获取销售渠道的配置值?
我正在这样做:
$this->systemConfigService->get('pluginName.config.enable')
Run Code Online (Sandbox Code Playgroud)
但此调用仅返回所有销售渠道配置值。
如何获取特定销售渠道的配置值?
我想要产品列表页面(如产品详细信息页面)上产品评论的总计数,如何在列表页面上获取该计数?
@Storefront/storefront/base.html.twig
在块内定义了base_header
和。base_navigation
我想base_navigation
实现base_header
这样的标记:
<header>
<div class="header-main">
<!-- base_header_inner -->
</div>
<div class="nav-main">
<!-- base_navigation_inner -->
</div>
</header>
Run Code Online (Sandbox Code Playgroud)
我已经尝试过以下操作:
{% sw_extends '@Storefront/storefront/base.html.twig' %}
{% block base_header %}
<header>
<div class="header-main">
{% block base_header_inner %}
{{ parent() }}
{% endblock %}
</div>
{% block base_navigation %}
{{ parent() }}
{% endblock %}
</header>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
但它并没有移动它,而是简单地在标题中创建一个新的导航,但保留原始的导航。
我已经在这个问题上坚持了足够长的时间了,基本上我想尝试使用 Shopware 6 作为 PWA。
为了安装商店软件,我使用Valet和 Git。
但我永远无法以正确的方式使用 install Shopware6,因为我总是遇到相同的错误:
这就是我安装 Shopware6 的方式:
克隆 git repo -->https://github.com/shopware/product;
光盘/制作;-composer install(安装依赖项)
./bin/console system:setup - 在此步骤中,我被要求输入一些数据:
应用环境[dev]://dev;
安装 Shopware 6 后,我将访问生产/公共来创建代客链接(虚拟主机)。
valet link production.test
Run Code Online (Sandbox Code Playgroud)
我在http://product.test上访问我的虚拟主机
此时我总是收到上述错误:无法找到请求匹配的销售渠道:http://product.test/”。请确保域名映射正确。
当覆盖不同插件中的模板时,加载顺序很重要并且取决于插件安装日期。
我相信在最近的 Shopware 版本中可以以更好的方式解决这个问题。
这是如何运作的?
您好,我在尝试使用以下代码创建大量产品评论时遇到内存泄漏:
echo "Start: " . memory_get_usage();
foreach ($reviews['items'] as $review) {
$newReview = $this->handleReviewData($review, $languages, $salesChannels, $context);
if ($newReview) {
$reviewsToImport[] = $newReview;
}
echo "End: " . memory_get_usage();
}
$this->productReviewRepository->create($reviewsToImport, $context);
Run Code Online (Sandbox Code Playgroud)
我正在$this->productReviewRepository
inside上运行多个查询$this->handleReviewData
。所以我猜测以某种方式造成了泄漏,但我找不到 or ->flush()
(->clear($entity)
因为它不是 Symfony)。有任何想法吗?
它为每次迭代添加+-1000000 bytes
( 1mb
) 内存。
处理评论数据函数:
public function handleReviewData($review, $languages, $salesChannels, $context): ?array
{
$reviewLocaleCode = $review['questionnaire']['locale'];
$productSku = $review['product']['sku'];
$salesChannels = $salesChannels->filter(static function ($salesChannel) use ($review) {
/* @var $salesChannel TrustApiEntity */
return $salesChannel->getChannelId() …
Run Code Online (Sandbox Code Playgroud) 如果我有两个销售渠道(商店 a 和商店 b),具有不同的域、名称和邮件地址,但语言相同,我该如何正确设置?
现在,我们在结账标题中有相同的邮件地址,因为这是在片段中给出的。(标题.支持信息)
甚至b店结帐时的名字也是a店给出的。但在代码片段中,它被设置为 %shop% (checkout.finishHeader),我希望该名称可以从销售渠道配置中获取
shopware6 ×10
shopware ×5
dns ×1
e-commerce ×1
entity ×1
mapping ×1
memory ×1
memory-leaks ×1
php ×1
repository ×1
twig ×1
valet ×1