我一直在尝试在 Magento2 中设置一个基本模块,尽管做了所有理想的更改,但它仍然抛出 404。下面是与该模块相关的代码。我的供应商名称是Chirag,模块名称是HelloWorld。
\n\n/var/www/html/magento2/app/code/Chirag/HelloWorld/etc/module.xml
\n\n<?xml version="1.0"?>\n<!--\n/**\n * Copyright \xc2\xa9 2015 Magento. All rights reserved.\n * See COPYING.txt for license details.\n */\n-->\n<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">\n <module name="Chirag_HelloWorld" schema_version="0.0.1" setup_version="0.0.1">\n </module>\n</config>\nRun Code Online (Sandbox Code Playgroud)\n\n/var/www/html/magento2/app/code/Chirag/HelloWorld/etc/frontend/route.xml
\n\n<?xml version="1.0"?>\n<!--\n/**\n * Copyright \xc2\xa9 2015 Magento. All rights reserved.\n * See COPYING.txt for license details.\n */\n-->\n<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/App/etc/routes.xsd">\n <router id="standard">\n <route id="helloworld" frontName="helloworld">\n <module name="Chirag_HelloWorld" />\n </route>\n </router>\n</config>\nRun Code Online (Sandbox Code Playgroud)\n\n/var/www/html/magento2/app/code/Chirag/HelloWorld/Controller/Index/Index.php
\n\n<?php\n/**\n *\n * Copyright \xc2\xa9 2015 Magento. All rights reserved.\n …Run Code Online (Sandbox Code Playgroud) 我有一条路线可以构建有效负载并将其提交到其他站点,
像这样
[
...
'hash' => 'MD5_HASH_FOR_THIS_PAYLOAD'
]
Run Code Online (Sandbox Code Playgroud)
但问题是当我访问此路由时,magento 第二次缓存数据,magento 发送旧有效负载的请求,
execute我在控制器的方法中尝试了以下代码
<?php
$cacheManager = $objectManager->get('\Magento\Framework\App\Cache\Manager');
$types = array('full_page');
$cacheManager->flush($types);
Run Code Online (Sandbox Code Playgroud)
但对我没有用。
我没有此页面的 xml 布局,只有一个由控制器创建的块
$block = $this->_view->getLayout()->createBlock('Vendor\Module\Block\MyBlock');
$block->setCacheable(false);
Run Code Online (Sandbox Code Playgroud)
有人可以帮我如何从 FPC 中排除这条路线吗?
我需要使用我的自定义模块访问magento2管理登录页面。如何将login.phtml覆盖到我的自定义模板文件(如custom-login.phtml文件)中。
请检查下面的编码并给我一些解决方案,
检查布局文件view/adminhtml/layout/adminhtml_auth_login.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="admin.login">
<arguments>
<argument name="template" xsi:type="string">Namespace_Modulename::admin/login.phtml</argument>
</arguments>
</referenceBlock>
Run Code Online (Sandbox Code Playgroud)
在我的自定义模块中添加该 xml 文件并将 login.phtml 放入我的自定义模块中。文件路径为view/adminhtml/templates/admin/login.phtml。
提前致谢
简而言之,我只想在结账时将目录价格规则应用于产品。我知道 Magento 1 的一些来源提供了很多解决方案,一个例子是这个博客https://jutesenthil.wordpress.com/2015/09/28/get-catalog-rule-by-product-id-in- magento/但试图在 Magento 2 中获得相同的结果似乎不起作用。我的代码片段如下。
/**
* @param $productId
* @param $customerGroupId
* @return mixed
*/
public function getCatalogPriceRuleFromProduct($productId, $customerGroupId)
{
/**
* @var \Magento\Catalog\Model\ProductFactory
*/
$product = $this->_objectManager->create('\Magento\Catalog\Model\ProductFactory')->create()->load($productId);
$storeId = $product->getStoreId();
$store = $this->_store_manager->getStore($storeId);
$websiteId = $store->getWebsiteId();
/**
* @var \Magento\Framework\Stdlib\DateTime\DateTime
*/
$date = $this->_objectManager->create('\Magento\Framework\Stdlib\DateTime\DateTime');
$dateTs = $date->gmtDate();
/**
* @var \Magento\CatalogRule\Model\Rule
*/
$resource = $this->_objectManager->create('\Magento\CatalogRule\Model\Rule');
// $resource = $this->_objectManager->create('\Magento\CatalogRule\Model\RuleFactory');
$rules = $resource->getRulesFromProduct($dateTs, $websiteId, $customerGroupId, $productId);
/*$rules = $resource->getCollection()
->addFieldToFilter('from_time', $dateTs)
->addFieldToFilter('to_time', $dateTs)
->addFieldToFilter('product_id', …Run Code Online (Sandbox Code Playgroud) 我想更改侧边栏中应用优惠券的位置而不是选项卡部分。我已经在结账页面添加了一个自定义选项卡,该选项卡已基本完成。现在我只需要侧边栏中的“应用折扣代码”部分。
我当前的 checkout_index_index.xml 看起来像这样
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<!-- added custom step -->
<referenceBlock name="checkout.root">
<arguments>
<argument name="jsLayout" xsi:type="array">
<item name="components" xsi:type="array">
<item name="checkout" xsi:type="array">
<item name="children" xsi:type="array">
<item name="steps" xsi:type="array">
<item name="children" xsi:type="array">
<!-- The new step you add -->
<item name="my-new-step" xsi:type="array">
<item name="component" xsi:type="string">Magento_Checkout/js/view/my-step-view</item>
<!--To display step content before shipping step "sortOrder" value should be < 1-->
<!--To display step content between shipping step and payment step 1 < "sortOrder" < 2 -->
<!--To display step …Run Code Online (Sandbox Code Playgroud) 关于 Magento 2,是否可以在 Minicart (DropdownDialog) 打开时禁用浏览器中的滚动(仅适用于浏览器的滚动条)?
截屏:
<div class="block block-minicart empty"
data-role="dropdownDialog"
data-mage-init='{"dropdownDialog":{
"appendTo":"[data-block=minicart]",
"triggerTarget":".showcart",
"timeout": "2000",
"closeOnMouseLeave": false,
"closeOnEscape": true,
"triggerClass":"active",
"parentClass":"active",
"buttons":[]}}'>
<div id="minicart-content-wrapper" data-bind="scope: 'minicart_content'">
<!-- ko template: getTemplate() --><!-- /ko -->
</div>
<?php echo $block->getChildHtml('minicart.addons'); ?>
</div>
Run Code Online (Sandbox Code Playgroud) 我在 Magento 2.3 中遇到可销售数量问题
导入产品后,进入目录,没有产品有可销售数量。我不知道为什么。
如果我输入编辑产品并且不更改任何内容并保存它,则该产品将显示“可销售数量”字段。为什么?如果我只是保存,我不会改变任何东西?
我很沮丧。
我使用包含这些字段的 .csv 文件导入产品。
sku: VAL-LIGA-12
attribute_set_code: Default
product_type: simple
product_online: 1
qty: 100
is_in_stock: 1
Run Code Online (Sandbox Code Playgroud)
我感谢您在“可销售数量”字段中导入产品时提供的任何帮助。
我附上一张屏幕截图。
问候。
我将 magento 1.9 迁移到 2.3
在给出setup:upgrade命令时,我收到以下错误
注意:未定义索引:core_website位于/vendor/magento/framework/Setup/Declaration/Schema/Db/SchemaBuilder.php第152行
你能帮我解决这个问题吗?
我们有一个 Magento 2 站点(PHP 7.2.30、Apache/2.4.43),并且我们正在使用使用重定向集成的支付网关。当客户选择使用他们付款时,他们将被带到支付提供商页面,在那里他们输入信用卡详细信息,付款后,支付提供商使用 POST 方法将客户发送回以下网址
https://mymagentosite.com/checkout/cart/
然而,Magento 然后将用户 302 重定向到主页
我们已经测试过,我们可以直接访问上面的 url,但是当我们尝试将任何数据发布到该 url 时,它只会重定向到主页。
我们尝试了使用不同的 Magento 安装(所有版本 2)的相同场景。对于某些网站来说,它可以工作,但对于某些网站来说,它不起作用。
有什么想法吗?以下是我们在“网络”选项卡中可以看到的内容。
Request URL: https://mymagentosite.com/checkout/cart/
Request Method: POST
Status Code: 302
Remote Address: xx.xx.xx.xxx:443
Referrer Policy: no-referrer-when-downgrade
access-control-allow-headers: authorization, origin, user-token, x-requested-with, content-type
access-control-allow-methods: PUT, GET, POST, DELETE, OPTIONS
access-control-allow-origin: *
cache-control: max-age=0, must-revalidate, no-cache, no-store
content-encoding: gzip
content-security-policy: upgrade-insecure-requests
content-type: text/html; charset=UTF-8
date: Thu, 09 Jul 2020 11:35:55 GMT
expires: Tue, 09 Jul 2019 11:35:56 GMT
gd-server: Agrii
location: https://mymagentosite.com/ …Run Code Online (Sandbox Code Playgroud) 升级到 magento 2.4.4 后,我无法访问后端区域;
访问输入正确并且没有显示错误(如果我输入错误的密码,则会显示错误),
它将我重定向到domain.test/backend/admin/dashboard/index/key/ ..etc,但前端保留在登录表单上。
我检查了安全和不安全的 url 是否正确,cookie 域设置为app.domain.test
我已经设置并清除了缓存