0

私のウェブサイトはプライベート e コマース システムを使用しています。残念ながら、サポート チームは非常に役に立ちますが、私が必要とするコードなどの「カスタム コード」については特にサポートしていません。

「スプラッシュ」ページ (ユーザーが注文を完了する前にポップアップ表示される) を構成しようとしています。このページでは、T シャツを半額で購入する機会をユーザーに提供し、「カートに追加」して追加することができます。スプラッシュ ページ内からカートに移動します。

標準の製品ページからコードをコピーしようとしましたが、残念ながらボタンが正常に機能せず、代わりに「#」にリンクするだけです (以下のコードで確認できます)。

<form action="includes/cart/add_to_cart.inc.php" method="get" name="addcartform" id="addcartform" onsubmit="return false;">   
<!-- Important hidden inputs -->
<input type="hidden" id="js" name="js" value="false" />
<input type="hidden" id="product_id" name="product_id" value="{product:id}" />
<a id="add_to_cart" style="display:none;" href="#" onclick="{product:add_to_cart_js}" class="generated_button" title="Add To Cart" >
<img src="images/icons/cart_add.png" align="absmiddle" />
<span> Add To Cart </span> </a>
<noscript>
<!-- non javascript -->
<input class="generated_button"  type="submit" value="Add To Cart" name="submit" id="cart_submit" />
</noscript>

コードを入れた後、リンクの「表示」を「インラインブロック」に変更し(表示されるように)、ユーザーにカートに追加してもらいたい製品のIDをここに入れてみました:

id="product_id" name="product_id" value="{product:id}"

残念ながら、これはどれも機能していません。必要なすべてのファイルに完全に (または簡単に) アクセスできないため、この問題を解決するための助けをいただければ幸いです!

前もって感謝します、ダン

更新:当社の e コマース システムのサポート チームから、このコードが送られてきましたが、使い方がよくわかりません。

JavaScript を介してさらに制御したい場合は、JavaScript で利用可能にするコアのカート オブジェクトを使用できます。(Private eCommerce System) 名前空間を介してアクセスできます。実際、(Private eCommerce System) サイトでコンソールを開いて (Private > eCommerce System) と入力し、Enter キーを押すと、どの部分のオブジェクトが返されますか?これまでのところ、Javascript で利用できるようにしたコア > システム (これも時間の経過とともに増加します)。(Private eCommerce System).Cart オブジェクトには、ここで使用できるサブ addItem() メソッド/関数があります。

商品 ID を渡してカートに追加できます (例: ID #52 の商品を追加する) Cart.addItem(52); または、次のようにこれらの完全なオプションを渡すことができます。

Cart.addItem({
productId: 52,
qty: 1,
options: {},
wishlistId: 0,
extraData: "Some detail i want to show to the user"
}, function () {
console.log('This is the callback for when its complete!');
});

したがって、ボタンまたはリンクを追加する場合、jQuery を使用して、そのボタンのクリック時にそのコードを実行するように設定できます。

jQuery(function ($) {
$('.some-button').on('click', function () {
    Cart.addItem(52);
    return false;
});
});
4

1 に答える 1

1

Javascript ボタンを置き換えて、スクリプトなしの入力フィールドに置き換えたらどうなるでしょうか?

<form action="includes/cart/add_to_cart.inc.php" method="get" name="addcartform" id="addcartform" onsubmit="return false;">   
<!-- Important hidden inputs -->
<input type="hidden" id="js" name="js" value="false" />
<input type="hidden" id="product_id" name="product_id" value="{product:id}" />
<input class="generated_button"  type="submit" value="Add To Cart" name="submit" id="cart_submit" />
<img src="images/icons/cart_add.png" align="absmiddle" />
<span> Add To Cart </span>
</form>

フォームフィールドのスタイルを変更し、<span>「カートに追加」と表示されているものを正しく表示する必要がある場合があります...

アップデート:

サポート チームが提供した情報を考慮して、上記のフォームの代わりに、これを「スプラッシュ ページ」に入力してみてください。

<div>
<script>
function addTshirtToCart(){
    /* Swap out the 34 for the actual product ID of the tshirt you want to
       add to the basket */
    Cart.addItem(34);
    // You might also want some code here to close the "splash page"
    return false;
}
</script>
<a href="#" id="add_to_cart" onclick="return addTshirtToCart();">
    <img src="images/icons/cart_add.png" align="absmiddle" />
    <span> Add To Cart </span>
</a>
</div>

更新 2:

私の2番目の答えから既存のdivものを置き換え、それを私のために働くこれに置き換えました:

<form action="includes/cart/add_to_cart.inc.php" method="get" name="addcartform" id="addcartform" onsubmit="return false;">
    <input type="hidden" id="js" name="js" value="false">
    <input type="hidden" id="product_id" name="product_id" value="1618">

    <a id="add_to_cart" style="" href="#" onclick="update_cart_content(); return false;" class="generated_button" title="Add To Cart">
    <img src="images/icons/cart_add.png" align="absmiddle">
    <span> Add To Cart </span> </a>
    <noscript>
        <input class="generated_button" type="submit" value="Add To Cart" name="submit" id="cart_submit"/>
    </noscript>
</form>

更新 3

Tシャツをカートに追加するときにポップアップを閉じるには、これをa上記の要素に入れてみてください:

onclick="update_cart_content(); spashBox.close(); return false;"
于 2013-07-08T10:38:46.767 に答える