1

私はかなり初心者のプログラマーですが、私がやろうとしていることと、これまでに行ったことは次のとおりです。

私が欲しいもの:

製品のバリエーションの選択から構築された最終的な SKU をカートに入れようとしています。

たとえば、最初の商品が「Shovel」で、その SKU が「SHO」の場合、カートのバリエーションの選択 SKU 番号が末尾に追加されます。

バリアントの 1 つが次の場合:

ハンドルの色 -- 緑のハンドル (SKU1 の SKU の場合) -- 黄色のハンドル (SKU2 の SKU の場合)

最終的な SKU は、SHO - 緑が選択された場合は SKU1、SHO - 黄色が選択された場合は SKU2 になります)

これにより、カートに渡すセッション変数が作成され、カートにこの変数が表示され、それを電子メール通知または後で必要なものに渡すことができます。

私がやったこと:

私は、custom_sku 列を、カートのバリアント データに追加しました。また、このフィールドを管理者テーブル フォルダー (/administrator/components/com_virtuemart/tables) の customs.php ファイルに追加しました。

このフィールドはデータベースに更新され、カート バリアント オプションを追加するたびに、customfield_id の行の「custom_sku」列に SKU が追加されます。

スクリーンショット: http://awesomescreenshot.com/02e1sfsef9

また、customfields.php (administrator/components/com_virtuemart/models) の関数 getProductCustomsFieldCart を変更して、これをオプションのドロップダウン値に追加しました。

値は次のようになります:「バリアント値 - $1.00 - SKU1」

行き詰まっていること: この SKU 値、またはオプションの値をカートに渡し、これを注文の残りの部分に使用できるようにする必要があります。

これはおそらく次のようなセッション変数で行う必要があります: sessionSKUselect = "20" ここで、20 はカスタム フィールド ID であるため、カートのクエリでこれを使用できます。

これは、機能する限り、配列内のセッション変数に出力することもできます。

現在、次のようなフォームを介して渡される変数があります: "customPrice[0][1]" (数字は、選択リストとそのバリアント グループ (選択リスト) に関連しています)

customPrice[0][1] には customfield ID の値があります (データベース値の単なる数字です。最終的な SKU を照会するには、この値を配列にするか、カートでこの配列を使用できるようにする必要があります。番号。

誰かが私が何をする必要があるか知っていますか? ありがとう!

4

1 に答える 1

0

カートのバリアントを利用する方法を知っています。それぞれに価格を割り当てることができます。また、各バリアント オプションにカスタム SKU (アイテム番号) を割り当てることができるようにしました。変数は同じデータベース テーブルにあります。

関数 calculateModificators を使用して変数を取得する方法を見つけました

カートページで選択したオプションの値が必要でしたが、この機能によりそれらが利用可能になります。上記の関数に独自の小さなコードを追加したので、SKU を出力できるようになりましたが、配列で表示する必要があります。

これがコードです。追加でコメントを使用している場所に注意しました。

    $query = 'SELECT  C.* , field.*
                    FROM `#__virtuemart_customs` AS C
                    LEFT JOIN `#__virtuemart_product_customfields` AS field ON C.`virtuemart_custom_id` = field.`virtuemart_custom_id`
                    WHERE field.`virtuemart_customfield_id`=' . $selected;
                $this->_db->setQuery($query);
                $productCustomsPrice = $this->_db->loadObject();
                $productCustomsSKU = $this->_db->loadObject(); // My Addition
                echo $productCustomsSKU->custom_sku. ' + '; // My Addition

したがって、私の 2 つの SKU 番号がこれである場合、選択したオプション (SKU3、SKU1) の順序で

SKU3SKU1 のような出力が得られます

この値を取得して、最終的に次のようにする必要があります。

  • SKU3 + SKU1

これには、文字列の先頭に + が必要で、末尾に + は必要ありません。最終的にこれを値にする必要があるため、値は次のようになります。

$value = " + SKU3 + SKU1" そして、上記の配列から得られるすべての値に対してこれを行います。

于 2013-10-07T05:13:50.870 に答える