context->link->getProductLink($product, null, null, null, $id_lang, $id_shop); $all_links[] = $base_link; // Get links for combinations if they exist if ($product->hasAttributes()) { $combinations = $product->getAttributesResume($id_lang); if ($combinations) { foreach ($combinations as $combination) { $combo_link = $this->context->link->getProductLink( $product, null, null, null, $id_lang, $id_shop, $combination['id_product_attribute'], false, false, true // Add attribute anchor ); $all_links[] = $combo_link; } } } } } } // Remove duplicates that might occur in complex shop setups and output JSON echo json_encode(array_values(array_unique($all_links)), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); exit; } }