Автоматически связанные товары Simpla
В Simpla cms есть замечательная функция - задать связанные товары к определенному продукту. И при заходе на страницу этого продукта, посетитель увидит заданные связанные (рекомендуемые) товары и сможет купить что-то дополнительно. Эта безусловно полезная функция призвана повышать конверсию и увеличивать продажи.
Но часто возникает ситуация, когда задавать каждому товару связанные товары очень трудоемко или просто неохота.... В этом случае на помощь придут автоматически сгенерированные связанные товары:) Которые будут подбираться ко всем товарам. Разберемся, как это сделать...
Идем на ftp, открываем файл view/ProductView.php и в районе 144 строки находим следующий код:
$this->design->assign('related_products', $related_products); }
И сразу после закрывающей скобки добавляем следующий код:
else { $products->categories = $this->categories->get_categories(array('product_id'=>$product->id)); $category = reset($products->categories); $related_products = array(); $after = false; $products = $this->products->get_products(array('category_id' => $category->id, 'limit' => 100, 'in_stock'=>1, 'visible'=>1)); foreach($products as $p) { if($after && count($related_products) < 6) $related_products[$p->id] = $p; elseif($p->id == $product->id) $after = true; } if(count($related_products) < 6) foreach($products as $p) if($p->id != $product->id && count($related_products) < 6) $related_products[$p->id] = $p; else break; $related_products_images = $this->products->get_images(array('product_id'=>array_keys($related_products))); foreach($related_products_images as $related_product_image) if(isset($related_products[$related_product_image->product_id])) $related_products[$related_product_image->product_id]->images[] = $related_product_image; $related_products_variants = $this->variants->get_variants(array('product_id'=>array_keys($related_products), 'instock'=>true)); foreach($related_products_variants as $related_product_variant) { if(isset($related_products[$related_product_variant->product_id])) { $related_product_variant->price *= (100-$discount)/100; $related_products[$related_product_variant->product_id]->variants[] = $related_product_variant; } } foreach($related_products as $r) { $r->image = &$r->images[0]; $r->variant = &$r->variants[0]; } $this->design->assign('related_products', $related_products); }
Код работает по следующему принципу: находит товар и берет 6 следующих за ним товаров из одной категории. Если достигнут конец списка, то оставшиеся товары берутся с начала списка. Обратите внимание, что в скрипте стоит ограничение на 100 товаров в одной категории - если у вас больше, увеличьте это значение. Выбирается 6 товаров - если вам нужно больше, также смените цифру на нужную.