标签: magento2

自定义模块在 Magento2 中不起作用

我一直在尝试在 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>\n
Run 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>\n
Run 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)

magento magento2

1
推荐指数
1
解决办法
6373
查看次数

禁用 Magento 2 中特定控制器的全页缓存

我有一条路线可以构建有效负载并将其提交到其他站点,

像这样

[
  ...
  '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 中排除这条路线吗?

php magento magento2

1
推荐指数
1
解决办法
9167
查看次数

我需要覆盖 magento2 中的管理员登录页面

我需要使用我的自定义模块访问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 magento2

1
推荐指数
1
解决办法
2237
查看次数

如何在 Magento2 中以编程方式获取目录价格规则

简而言之,我只想在结账时将目录价格规则应用于产品。我知道 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)

rules catalog discount magento2 price

1
推荐指数
1
解决办法
1万
查看次数

如何将应用优惠券移至 Magento 2 结账页面的侧栏?

我想更改侧边栏中应用优惠券的位置而不是选项卡部分。我已经在结账页面添加了一个自定义选项卡,该选项卡已基本完成。现在我只需要侧边栏中的“应用折扣代码”部分。

在此输入图像描述

我当前的 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)

checkout magento2

1
推荐指数
1
解决办法
5038
查看次数

Magento 2 在 Minicart (DropdownDialog) 打开时禁用浏览器滚动?

关于 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)

php jquery magento magento2

1
推荐指数
1
解决办法
2149
查看次数

Magento 2.3 中的可销售数量不显示

我在 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)

我感谢您在“可销售数量”字段中导入产品时提供的任何帮助。

我附上一张屏幕截图。

问候。

截图后端

php magento2

1
推荐指数
1
解决办法
3780
查看次数

未定义索引:magento 2 中的 core_website

我将 magento 1.9 迁移到 2.3

在给出setup:upgrade命令时,我收到以下错误

注意:未定义索引:core_website位于/vendor/magento/framework/Setup/Declaration/Schema/Db/SchemaBuilder.php第152行

你能帮我解决这个问题吗?

magento-1.9 magento2

1
推荐指数
1
解决办法
4344
查看次数

Magento 2 请求方法:POST 状态代码:302

我们有一个 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)

apache magento2

1
推荐指数
1
解决办法
3769
查看次数

Magento 升级到 2.4.4 后我无法登录后端区域

升级到 magento 2.4.4 后,我无法访问后端区域;

访问输入正确并且没有显示错误(如果我输入错误的密码,则会显示错误),
它将我重定向到domain.test/backend/admin/dashboard/index/key/ ..etc,但前端保留在登录表单上。

我检查了安全和不安全的 url 是否正确,cookie 域设置为app.domain.test
我已经设置并清除了缓存

upgrade backend magento magento2 magento2.4

1
推荐指数
1
解决办法
1969
查看次数