2

私はSugarCRMとMagentoを統合しています。私の要件は、SugarCRMのリンクをクリックすると、Magento管理パネルの注文作成にリダイレクトされることです。さらに、Magentoにリダイレクトしても、ログインを要求されないはずです。

どうやってやるの?

4

2 に答える 2

4

シュガーへのシームレスなログインは非常に簡単です。以下は、Sugarログインをバイパスするリンクを作成する例です。Magentoにログインすると、Sugarにログインして、Sugarセッション変数をサーバーセッション変数またはグローバル変数に格納できます。これがSugarCRMURLのフォーマットです

'http:// localhost:8080 / XXX / index.php?module = Accounts&action = DetailView&record = 927e722c-0d8a-e6b1-c590-4c9bb6c4e34b $ MSID

  1. http:// localhost:8080 / XXX / index.php -URL
  2. module = Accounts(リンクするモジュール名
  3. action = DetailView(DetailViewまたはEditViewのいずれかに移動できます)
  4. record = 927e722c-0d8a-e6b1-c590-4c9bb6c4e34b(シュガーIDレコード番号)
  5. MSID = 3979359348(シームレスログイン後に取得されたセッション変数)

この情報をリンクに追加するには、Magentoを拡張する必要があります。MSIDをセッション変数に格納する場合は、いつでも$_SESSION['MSID']をURLに追加できます。

$user_name="admin";
$user_password="admin";


$soapClient = new SoapClient(NULL,
array(
"location" => 'http://localhost:8080/XXX/soap.php',
"uri" => 'http://localhost:8080/XXX',
)
);

try {
    $info = $soapClient->login(
    array(
    'user_name' => $user_name,
    'password'  => md5($user_password),
    )
    );
}
catch (SoapFault $fault) {
    die("Sorry, the service returned the following ERROR: ".$fault->faultcode."-".$fault->faultstring.".");
}

$session = $info->id;

$canlogin = $soapClient->seamless_login($session);
$MSID='';
if ($canlogin == 1)
$MSID =  "&MSID=" . $session;





//echo "Successful Login! Session ID {$session}<br>";

echo "<a href='http://localhost:8080/XXX/index.php?module=Accounts&action=DetailView&record=927e722c-0d8a-e6b1-c590-4c9bb6c4e34b$MSID'>Account Name</a>";

カズ

于 2011-02-05T15:26:56.027 に答える
0

私はこれまでSugarCRMを特に使用したことはありませんが、これらのソリューションの一般的な要点は、2つのユーザーデータベースの同期を維持することです(同じユーザー名とパスワード)。次に、ユーザーが一方のシステムにログインしたら、もう一方のシステムに同時にログインするように要求を送信します。

于 2011-02-05T15:05:32.897 に答える