ユーザーをopencartの請求ページにハイパーリンクすることで、メールからユーザーをリダイレクトしたい すでにカートにアップロードされている製品の価値を維持する..ショッピング カートで製品を作成し、ユーザーを請求ページにリダイレクトすることを考えましたが、その製品の請求ページを使用すると、外部リンクから使用すると COOKIE の値が期限切れになります。
商品をカートに入れたままで、顧客を請求ページに直接誘導する方法はありますか? (私は1つの製品しか持っていません。)
チェックアウト コントローラーの小さな変更を考えることができます。
ニュースレターに次のようなリンクがあるとします。
http://your.eshop.com/index.php?route=checkout/checkout&add_product=1&product_id=10&pieces=1
次に、ファイルの先頭catalog/controller/checkout/checkout.php
(行の前)がif ((!$this->cart->hasProducts() ...
あるかどうかを確認する必要がありif(isset($this->request->get['add_product']) && $this->request->get['add_product'])
、ある場合は実行します$this->cart->add($this->request->get['product_id'], $this->request->get['pieces']);
コード全体は次のようになります。
public function index() {
if(isset($this->request->get['add_product']) && $this->request->get['add_product']) {
$this->cart->add($this->request->get['product_id'], $this->request->get['pieces']);
} // END OF MODIFICATION, the next code is already in checkout.php controller
// Validate cart has products and has stock.
if ((!$this->cart->hasProducts() && empty($this->session->data['vouchers'])) || (!$this->cart->hasStock() && !$this->config->get('config_stock_checkout'))) {
$this->redirect($this->url->link('checkout/cart'));
}
ユーザーに複数の製品を購入させたい場合、リンクは次のようになります
http://your.eshop.com/index.php?route=checkout/checkout&add_product=1&product_id[]=10&pieces[]=1&product_id[]=45&pieces[]=2&product_id[]=37&pieces[]=1
コードは次のようになります。
if(isset($this->request->get['add_product']) && $this->request->get['add_product']) {
foreach($this->request->get['product_id'] as $i => $product_id) {
$this->cart->add($product_id, $this->request->get['pieces'][$i]);
}
} // END OF MODIFICATION
このコードは何をしますか? リンクをクリックしてブラウザで開いた直後に、コードは目的の製品をカートに追加し、通常どおり続行するため、プロセスはユーザーが製品の詳細ページに移動する場合とまったく同じになります。 「購入」ボタンをクリックし、eショップのどこかにある「チェックアウト」リンクをクリックします。