Magento - Страница продукта 404 с правильными данными продукта - PullRequest
0 голосов
/ 09 января 2020

У меня странная проблема с импортом данных из Magento, и мне было интересно, сталкивался ли кто-нибудь с этим и, возможно, нашел решение, помогающее диагностировать проблему.

Я использовал инструмент переноса данных Magento, чтобы перенести данные из экземпляра Magento 1 в существующий экземпляр Magento 2. Экземпляр Magento 2 уже имел некоторые данные, так что это не была бесплатная sh копия всего, я делал это поэтапно, сначала только заказы, затем только клиенты, и, наконец, продукты и категории. Я проигнорировал блоки и страницы CMS, поскольку их нужно было сохранить, а также тему и некоторые другие параметры и проблемы (поэтому я только запустил миграцию: данные).

Мой файл конфигурации для переноса данных выглядит следующим образом :

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
        xs:noNamespaceSchemaLocation="urn:magento:module:Magento_DataMigrationTool:etc/config.xsd">
    <steps mode="data">
        <step title="Data Integrity Step">
            <integrity>Migration\Step\DataIntegrity\Integrity</integrity>
        </step>
        <step title="EAV Step">
            <integrity>Migration\Step\Eav\Integrity</integrity>
            <data>Migration\Step\Eav\Data</data>
            <volume>Migration\Step\Eav\Volume</volume>
        </step>
        <step title="Map Step">
            <integrity>Migration\Step\Map\Integrity</integrity>
            <data>Migration\Step\Map\Data</data>
            <volume>Migration\Step\Map\Volume</volume>
        </step>
        <step title="Url Rewrite Step">
            <integrity>Migration\Step\UrlRewrite\Version191to2000</integrity>
            <data>Migration\Step\UrlRewrite\Version191to2000</data>
            <volume>Migration\Step\UrlRewrite\Version191to2000</volume>
        </step>
        <step title="ConfigurablePrices step">
            <integrity>Migration\Step\ConfigurablePrices\Integrity</integrity>
            <data>Migration\Step\ConfigurablePrices\Data</data>
            <volume>Migration\Step\ConfigurablePrices\Volume</volume>
        </step>
        <step title="Inventory Step">
            <integrity>Migration\Step\Inventory\Integrity</integrity>
            <data>Migration\Step\Inventory\Data</data>
            <volume>Migration\Step\Inventory\Volume</volume>
        </step>
        <step title="PostProcessing Step">
            <data>Migration\Step\PostProcessing\Data</data>
        </step>
    </steps>
    <steps mode="delta">
        <step title="Map Step">
            <delta>Migration\Step\Map\Delta</delta>
            <volume>Migration\Step\Map\Volume</volume>
        </step>
        <step title="ConfigurablePrices step">
            <delta>Migration\Step\ConfigurablePrices\Delta</delta>
            <volume>Migration\Step\ConfigurablePrices\Volume</volume>
        </step>
        <step title="Url Rewrite Step">
            <delta>Migration\Step\UrlRewrite\Version191to2000Delta</delta>
            <volume>Migration\Step\UrlRewrite\Version191to2000</volume>
        </step>
        <step title="Inventory Step">
            <delta>Migration\Step\Inventory\Delta</delta>
            <volume>Migration\Step\Inventory\Volume</volume>
        </step>
    </steps>
    <source>...</source>
    <destination>...</destination>
    <options>...</options>
</config>

Данные о товарах и категориях благополучно скопированы, и я вижу их все в базе данных, а также в администраторе. URL переписывает и работает правильно. Однако на некоторых (но не на ВСЕХ) страницах продукта отображаются практически все данные о продукте, кроме названия, но заголовок страницы 404, а также макет 404 и содержимое 404 под всеми данными продукта (см. Изображение) product 404 issue with product data.

Итак, в отличие от большинства проблем, когда страницы продукта 404ing, я знаю, что это не проблема перезаписи URL (как то же самое происходит, если я использую абсолютные пути Magento вместо URL переписать пути). У меня такое уже было в другом тесте импорта данных, и когда я посмотрел в БД, были продукты, назначенные старым наборам атрибутов, которых больше не было, поэтому я удалил их, переиндексировал и очистил кеш, и это исправило это.

Я просмотрел и подтвердил, что все наборы атрибутов, присвоенные продуктам, верны. Я переиндексировал, очистил кеш несколько раз. Это исправило несколько продуктов, но не большинство из них. Я полагаю, что это происходит из-за неправильных / поврежденных данных в БД, относящихся к продуктам, но я не знаю, как диагностировать, где и где искать. Я не могу все стереть и переустановить, так как есть данные, которые нам нужно сохранить.

Кто-нибудь сталкивался с этой проблемой раньше и, возможно, нашел решение или хороший способ выяснить, какие плохие данные портят это?

1 Ответ

0 голосов
/ 10 января 2020

Для всех, кто может столкнуться с этой проблемой, я понял проблему. При переносе данных я перенес категории, продукты и перезаписи URL. Перезаписи URL были перенесены с правильными путями запроса, но их идентификаторы были другими, поэтому каким-то образом они сломали путь Magento, и все страницы были 404.

Когда я вошел в продукт, изменил ключ URL на что-то другое , а затем изменил его обратно, он регенерировал правильную перезапись URL-адреса, связанную правильно в Magento, и страница работала без 404. переписывает. Вы должны вручную отбросить все переписанные и обновленные URL-адреса и повторно сохранить продукты, чтобы правильно восстановить их. Интересно, что я сделал это в другом проекте, где переписанные URL-адреса были скопированы правильно и работали без проблем. В ходе этой миграции я проверил, что таблица url_rewrite была чистой и все значения были импортированы, поэтому есть вероятность проблем с исходным содержимым url_rewrite в Magento 1 в этом конкретном проекте, которые вызвали эту проблему.

...