構成可能な製品の在庫通知メール


8

最近、ある店舗で問題が発生し、在庫通知の電子メールが送信されていないことに気づきました。シンプルな製品の電子メールはすべて問題ありませんが、構成可能な製品に関しては、ここに私の問題があります。

現在、顧客は在庫通知の電子メールにサインアップできます。cronジョブは正常に実行され、システムは論理的にそれらを実際に在庫にあるときにのみ送信し、0に設定しません。ただし、構成可能製品は常に0に設定され、この構成可能に属する単純な製品は在庫の変更を行います。つまり、今起こっていることは、すべてのサイズが在庫切れの場合(つまり、情報を受け取りたいサイズを選択することさえできない場合)にのみ、製品を購読できることです。 、構成可能(購読している製品)がまだ0であるため、通知を受け取りません。

私がこの問題に遭遇した最初の人ではないと確信しているので、誰かがそれを回避したり解決策を見つけたりできるのかどうか疑問に思いましたか?

回答:


1

コードを2か所で調整する必要があるようです。最初に、コードが各製品について、顧客がそれをサブスクライブできるかどうかをチェックします。次に、コード(私が想定しているcronジョブ)で、製品の在庫変更をチェックします。

最初の例では、子商品のいずれかが在庫切れの場合にサブスクリプションを許可できます。

    $allowSubscriptionForProduct = false;
    if ($product->getData('type_id') == 'configurable') {
        $childProductIds = Mage::getModel('catalog/product_type_configurable')
            ->getChildrenIds($product->getId())
        foreach ($childProductIds[0] as $childProductId) {
            $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($childProductId);
            if ($stock->getData('is_in_stock') == 1) {
                $allowSubscriptionForProduct = true;
                break;
            }
        }
    }
    if ($allowSubscriptionForProduct === true) {
        // change a product attribute to let customers subscribe to this product. 
    }

注意:$ childProductIdsは奇妙な構造をしています。IDの配列が必要ですが、getChildrenIds()はその配列を別の配列でラップします。したがって、foreachループの[0]です。

2番目のインスタンスでは、子製品から構成可能な親製品に移動する必要があります。

    foreach ($simpleProductThatWasOutOfStock as $outOfStockSimpleProduct) {
        $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($outOfStockSimpleProduct->getId());
        if ($stock->getData('is_in_stock') == 1) {
            $configurableProductIds = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($outOfStockSimpleProduct->getId())
            foreach ($configurableProductIds as $configurableProductId) {
                // use the code that schedules/sends the email notifications 
            }
        }
    }

使用している実際のコードがなければ、より正確にすることは困難です。これで少なくともあなたが正しい軌道に乗ることを願っています。

これらのエントリも役立つ場合があります。在庫状況を確認するには:

https://stackoverflow.com/a/2703800

https://stackoverflow.com/a/31612963

子製品から構成可能な親への移行:

https://stackoverflow.com/a/1706297

https://magento.stackexchange.com/a/30245


0

単純な製品ではなく、メイン製品に基づいて構成可能な製品作業などの機能を提供するカスタムコードまたは拡張機能を使用する必要がある場合があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.