SEO страниц вариаций

Всем привет.
В разработке стратегии продвижения магазина столкнулись с проблемой оптимизации страниц с вариациями товаров типа https://site.ru/category/tovar/**?combination=**237_574_238_576
То есть всех страниц с get-параметром ?combination=. К сожалению, отказаться от вариаций в пользу полноценных товаров невозможно из-за специфики сферы.
Расскажите, пожалуйста, кто сталкивался или есть какие-то модули, чтобы:

  1. Сделать уникальные метаданные для этих страниц.
  2. Принудительно изменить URL для страниц именно с параметром ?combination=.

Ваша проблема, судя по всему, будет решена с выходом новых вариаций, выполненных в виде отдельных, но связанных товаров. Там и URL отдельные и метатеги-тайтлы-описания могут быть.

1 лайк

Огромное спасибо!

Вариации как один товар фактически имеют собственные URL - это видно при экспорте товаров, но на витрине и в карте сайта почему-то продолжают отображаться через параметры.
Можно им сделать собственные SEO URL?

2 лайка

Да, кстати и если в базе посмотреть таблицу cscart_seo_names, то там видно что вариации каждая со своим SEO именем

4 лайка

Сюда же хочу добавить - такая же проблема в MVP - там товары продавцов имеют вместо уникализированного ЧПУ URL параметры в конце ссылки “?vendor_id=1”

3 лайка

Ну, прям некрасиво!

@imac, @ikoshkin будет какое-то решение для вариаций? Нужны SEO имена без параметров в URL для вариаций. И будет ли возможность менять SEO имена с добавлением редиректов у вариаций как для обычных товаров?

1 лайк

C этим вроде бы разобрался: дополнил схему - SEO стало возможным менять у вариаций.

1 лайк

С названиями и SEO ссылками вариаций так ничего и не изменилось?

А могли бы подсказать, что именно изменили в схеме? Хочу по аналогии расширить для товаров вендоров(там те же вариации, по сути).

Правка schemas/product_variations/product_types.php

добавил в my_changes schemas/product_variations/product_types.post.php
tab seo и field seo.

<?php
/***************************************************************************
 *                                                                          *
 *   (c) 2004 Vladimir V. Kalynyak, Alexey V. Vinokurov, Ilya M. Shalnev    *
 *                                                                          *
 * This  is  commercial  software,  only  users  who have purchased a valid *
 * license  and  accept  to the terms of the  License Agreement can install *
 * and use this program.                                                    *
 *                                                                          *
 ****************************************************************************
 * PLEASE READ THE FULL TEXT  OF THE SOFTWARE  LICENSE   AGREEMENT  IN  THE *
 * 'copyright.txt' FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE.            *
 ****************************************************************************/

use Tygh\Addons\ProductVariations\Product\Type\Type;
use Tygh\Addons\ProductVariations\ServiceProvider;

$schema = [
    Type::PRODUCT_TYPE_SIMPLE    => [
        'name' => __('product_variations.product_type.catalog_item'),
        'allow_generate_variations' => true,
    ],
    Type::PRODUCT_TYPE_VARIATION => [
        'name'          => __('product_variations.product_type.variation_of_catalog_item'),
        'tabs'          => ['detailed', 'images', 'shippings', 'qty_discounts', 'files', 'subscribers', 'variations', 'seo'],
        'fields'        => [
            'product_id',
            'product_type',
            'product_code',
            'list_price',
            'prices',
            'amount',
            'tax_ids',
            'subscribers',
            'files',
            'variation_code',
            'status',
            'timestamp',
            'shippings',
            'weight',
            'shipping_freight',
            'box_height',
            'box_length',
            'box_width',
            'min_items_in_box',
            'max_items_in_box',
            'min_qty',
            'max_qty',
            'qty_step',
            'list_qty_count',
            'availability',
            'avail_since',
            'free_shipping',
            'parent_product_id',
            'variation_features',
            'shipping_params',
            'seo', 
        ],
        'field_aliases' => [
            'detailed_id' => 'detailed_image',
            'image_id'    => 'detailed_image',
            'price'       => 'prices',
            'taxes'       => 'tax_ids',
            'main_pair'   => 'detailed_image',
        ],
        'allow_generate_variations' => true,
    ]
];

if (ServiceProvider::isAllowOwnImages()) {
    $schema[Type::PRODUCT_TYPE_VARIATION]['fields'][] = 'detailed_image';
    $schema[Type::PRODUCT_TYPE_VARIATION]['fields'][] = 'additional_images';
}

if (ServiceProvider::isAllowOwnFeatures()) {
    $schema[Type::PRODUCT_TYPE_VARIATION]['fields'][] = 'features';
    $schema[Type::PRODUCT_TYPE_VARIATION]['tabs'][] = 'features';
}

return $schema;
1 лайк

Спасибо!

Кстати, странно… вот вроде как есть товар вендора дочерний. В таблице cscart_seo_names по этому товару, по его id находится имя. Но в каталоге и других местах(экспорте, фидах) ссылки в виде ссылки на головной товар + параметр. https://site.ru/kraftool-8-mm-bita-s-torcovoy-golovkoy-expert-26391-08/?vendor_id=1 Похоже, что где-то надо поправить функцию fn_url.

Для последователей с MVP с режимом Общие товары продавцов. Обнаружилось в /app/addons/master_products/func.php

Надо заменить строку
$url = strtr($url, ["product_id={$product_id}" => "product_id={$master_product_id}&vendor_id={$company_id}"]);
на
$url = strtr($url, ["product_id={$product_id}" => "product_id={$product_id}"]);

Тогда ссылки заменяются на SEO-имена. Теперь модуль SEO-имен от AB раскрывается - наконец правила наименований начали работать. А то раньше сгенерированные ссылки для вендоров нигде не использовались.