Рекомендации на основе заказов других покупателей - где хранятся
Доброго дня! есть сайт, там накопилась статистика по продажам и неплохо работают рекомендации ( те, что автоматические, на основе заказов др. клиентов). Есть еще один сайт, новый, с частично тойже номенклатурой. Подскажите - не могу найти, в какой таблице СУБД хранятся связки товаров и в каком формате. Если просто хранятся ИДы "родителя" и"наследника", то перенести их на др сайт не проблема... Заранее спасибо!
1 ответ
Рекомендации на основе заказов строятся с использованием данных таблицы shop_order_items. Чтобы её портировать в другой магазин надо проявить смекалку т.к. придется виртуализировать номера заказов, исключить влияние price и quantity на total_sale новых товаров и привести в соответствие sku_id и product_id.
Идеально было бы вытащить данные, разобрать их и трансформировать в массив данных типа cross_selling таблицы shop_product_related. Это выглядит вполне реализуемо.
Со временем можно начать отключать ручной выбор и переводить на авто при нарастании базы заказов для построения новых товарных связей. Данный перевод можно даже автоматизировать и, скажем при наличии 5 актуальных кроссов переключать в таблице товаров ключ cross_selling на автоматический режим. Это даже можно превратить в идею для плагина. Хотя там едва ли наберется много кода, а вот крон скорее всего придется задействовать. В качестве идеи для плагина может быть визуализация представления связей на основе заказов на вкладке редактора товара. Данный инструмент в SS давно требует улучшения и пересмотра ибо он аццки топорный.
Если упрощенно, то выбираются все товары из заказов, в которых встречается определенный sku_id (product_id для связки тоже нужен), затем из заказов вынимаются товары, сортируются по частоте использования, проверяют на тип соответствующий витрине, на наличие в базе и т.п.
Из отобранной кучи выбирается кол-во разрешенное к выводу по условию $product->crossSelling(n,true|false) в шаблоне.
Они не хранятся в виде готовых связей подобно product_related товарам в одноименной таблице для ручных cross_selling и upselling. Однако, как уже намекал ранее, такие связи можно легко организовать на основе данных этой таблицы.