[英]Magento - SOAP API, Mass Update Product Visibility
我不想使用进出口,我们有大量的产品(5,000)
基本上,我已经对模板做了一些繁重的配置,以便以非常批发的方式为我们的客户显示目录,如果您想在这里查看它(www.musclefinessewholesale.com),那么您将看不到任何除非您已登录,否则将无法注册,因为这仅是交易。 因此,基本上每个产品都有一个分组产品,然后将风味设置为与此产品相关的简单产品。
我知道这有时不是最好的方法,但可以说这符合要求。 问题是,当您单击主要类别(品牌)时会显示每个简单的产品,但我们只想显示分组的产品。
任何人都可以使用API解释如何在Magento中找到所有简单产品,然后将可见性分别更改为隐藏。 这样,它们只会显示为母版的一部分。
请参阅附件以了解格式:
但是,当用户搜索某个产品时,就会发生这种情况(这些是我们需要隐藏在MASS上的简单产品)
是否有想法如何编写API循环以遍历系统中的每个简单产品并将可见性设置为“不可见”?
试试这个,我知道这不是在使用SOAP-API,但是它直接挂在Magento中。
require_once($_SERVER['DOCUMENT_ROOT'] . '/app/Mage.php');
umask(0);
// Retrieve store-codes
$storelist = Mage::app()->getStores();
$storelang = array();
foreach ($storelist as $id => $s) {
$storelang[$id] = substr(Mage::getStoreConfig('general/locale/code', $id), 0, 2);
}
...
$storeId = Mage::app()->getStore()->getId();
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$pModel = Mage::getModel('catalog/product');
$products = $pModel->getCollection();
foreach ($products as $product) {
if ($product->isConfigurable()) {
$childProducts = Mage::getModel('catalog/product_type_configurable')
->getUsedProducts(null, $product);
foreach ($childProducts as $child) {
foreach ($storelang as $lang_key => $lang_value) {
$child->setStoreId(Mage::app()->getStore($lang_value)->getId());
// 1 = not visible individually
// 2 = catalog
// 3 = search
// 4 = catalog + search
$child->setVisibility(1);
try {
$child->save();
} catch (Exception $e) {
echo $e->getMessage();
}
}
}
}
如果您有任何疑问,请随时与我们联系。 我希望这有帮助。 祝一切顺利。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.