2 formatting
source | link

I am writing a cron job to update products, I cannot use SKU as that is magento only. For every product in magento I have an attribute 'auto_cool_number'auto_cool_number I need to update it by that value (which is varchar).

function _updateStocks($data){ $connection = _getConnection('core_write'); $sku = $data[0]; $newQty = $data[1]; $productId = _getIdFromSku($sku); $attributeId = _getAttributeId();

$sql            = "UPDATE " . _getTableName('cataloginventory_stock_item') . " csi,
                   " . _getTableName('cataloginventory_stock_status') . " css
                   SET
                   csi.qty = ?,
                   csi.is_in_stock = ?,
                   css.qty = ?,
                   css.stock_status = ?
                   WHERE
                   csi.product_id = ?
                   AND csi.product_id = css.product_id";
$isInStock      = $newQty > 0 ? 1 : 0;
$stockStatus    = $newQty > 0 ? 1 : 0;
$connection->query($sql, array($newQty, $isInStock, $newQty, $stockStatus, $productId)); }

function _updatePrices($data){ $connection = _getConnection('core_write'); $sku = $data[0]; $newPrice = $data[2]; $productId = _getIdFromSku($sku); $attributeId = _getAttributeId();

$sql = "UPDATE " . _getTableName('catalog_product_entity_decimal') . " cped
            SET  cped.value = ?
        WHERE  cped.attribute_id = ?
        AND cped.entity_id = ?";
$connection->query($sql, array($newPrice, $attributeId, $productId)); }
     function _updateStocks($data){
         $connection     = _getConnection('core_write');
         $sku            = $data[0];
         $newQty         = $data[1];
         $productId      = _getIdFromSku($sku);
         $attributeId    = _getAttributeId();

         $sql            = "UPDATE " . _getTableName('cataloginventory_stock_item') . " csi,
                            " . _getTableName('cataloginventory_stock_status') . " css
                            SET
                            csi.qty = ?,
                            csi.is_in_stock = ?,
                            css.qty = ?,
                            css.stock_status = ?
                            WHERE
                            csi.product_id = ?
                            AND csi.product_id = css.product_id";
         $isInStock      = $newQty > 0 ? 1 : 0;
         $stockStatus    = $newQty > 0 ? 1 : 0;
         $connection->query($sql, array($newQty, $isInStock, $newQty, $stockStatus, $productId)); }

     function _updatePrices($data){
         $connection     = _getConnection('core_write');
         $sku            = $data[0];
         $newPrice       = $data[2];
         $productId      = _getIdFromSku($sku);
         $attributeId    = _getAttributeId();

         $sql = "UPDATE " . _getTableName('catalog_product_entity_decimal') . " cped
                     SET  cped.value = ?
                 WHERE  cped.attribute_id = ?
                 AND cped.entity_id = ?";
         $connection->query($sql, array($newPrice, $attributeId, $productId)); }

~

I am writing a cron job to update products, I cannot use SKU as that is magento only. For every product in magento I have an attribute 'auto_cool_number' I need to update it by that value (which is varchar).

function _updateStocks($data){ $connection = _getConnection('core_write'); $sku = $data[0]; $newQty = $data[1]; $productId = _getIdFromSku($sku); $attributeId = _getAttributeId();

$sql            = "UPDATE " . _getTableName('cataloginventory_stock_item') . " csi,
                   " . _getTableName('cataloginventory_stock_status') . " css
                   SET
                   csi.qty = ?,
                   csi.is_in_stock = ?,
                   css.qty = ?,
                   css.stock_status = ?
                   WHERE
                   csi.product_id = ?
                   AND csi.product_id = css.product_id";
$isInStock      = $newQty > 0 ? 1 : 0;
$stockStatus    = $newQty > 0 ? 1 : 0;
$connection->query($sql, array($newQty, $isInStock, $newQty, $stockStatus, $productId)); }

function _updatePrices($data){ $connection = _getConnection('core_write'); $sku = $data[0]; $newPrice = $data[2]; $productId = _getIdFromSku($sku); $attributeId = _getAttributeId();

$sql = "UPDATE " . _getTableName('catalog_product_entity_decimal') . " cped
            SET  cped.value = ?
        WHERE  cped.attribute_id = ?
        AND cped.entity_id = ?";
$connection->query($sql, array($newPrice, $attributeId, $productId)); }

I am writing a cron job to update products, I cannot use SKU as that is magento only. For every product in magento I have an attribute auto_cool_number I need to update it by that value (which is varchar).

     function _updateStocks($data){
         $connection     = _getConnection('core_write');
         $sku            = $data[0];
         $newQty         = $data[1];
         $productId      = _getIdFromSku($sku);
         $attributeId    = _getAttributeId();

         $sql            = "UPDATE " . _getTableName('cataloginventory_stock_item') . " csi,
                            " . _getTableName('cataloginventory_stock_status') . " css
                            SET
                            csi.qty = ?,
                            csi.is_in_stock = ?,
                            css.qty = ?,
                            css.stock_status = ?
                            WHERE
                            csi.product_id = ?
                            AND csi.product_id = css.product_id";
         $isInStock      = $newQty > 0 ? 1 : 0;
         $stockStatus    = $newQty > 0 ? 1 : 0;
         $connection->query($sql, array($newQty, $isInStock, $newQty, $stockStatus, $productId)); }

     function _updatePrices($data){
         $connection     = _getConnection('core_write');
         $sku            = $data[0];
         $newPrice       = $data[2];
         $productId      = _getIdFromSku($sku);
         $attributeId    = _getAttributeId();

         $sql = "UPDATE " . _getTableName('catalog_product_entity_decimal') . " cped
                     SET  cped.value = ?
                 WHERE  cped.attribute_id = ?
                 AND cped.entity_id = ?";
         $connection->query($sql, array($newPrice, $attributeId, $productId)); }

~

1
source | link

update products based on attribute value

I am writing a cron job to update products, I cannot use SKU as that is magento only. For every product in magento I have an attribute 'auto_cool_number' I need to update it by that value (which is varchar).

I found this script on magepsycho which is awesome, it works great and updates my price and qty based on SKU, how can I modify the query to inner jOIN attribute values and update all products which share that attribute value.

function _updateStocks($data){ $connection = _getConnection('core_write'); $sku = $data[0]; $newQty = $data[1]; $productId = _getIdFromSku($sku); $attributeId = _getAttributeId();

$sql            = "UPDATE " . _getTableName('cataloginventory_stock_item') . " csi,
                   " . _getTableName('cataloginventory_stock_status') . " css
                   SET
                   csi.qty = ?,
                   csi.is_in_stock = ?,
                   css.qty = ?,
                   css.stock_status = ?
                   WHERE
                   csi.product_id = ?
                   AND csi.product_id = css.product_id";
$isInStock      = $newQty > 0 ? 1 : 0;
$stockStatus    = $newQty > 0 ? 1 : 0;
$connection->query($sql, array($newQty, $isInStock, $newQty, $stockStatus, $productId)); }

function _updatePrices($data){ $connection = _getConnection('core_write'); $sku = $data[0]; $newPrice = $data[2]; $productId = _getIdFromSku($sku); $attributeId = _getAttributeId();

$sql = "UPDATE " . _getTableName('catalog_product_entity_decimal') . " cped
            SET  cped.value = ?
        WHERE  cped.attribute_id = ?
        AND cped.entity_id = ?";
$connection->query($sql, array($newPrice, $attributeId, $productId)); }