Как получить код SKU no для изменения после выбора атрибута продукта для элемента.Magento: номер SKU Изменения после атрибута продукта выбраны
ответ
Чтобы получить СК выбранного связанного продукта на настраиваемой странице продукта, пожалуйста, вставьте следующий код в приложении/дизайн/интерфейс /// шаблон/Каталог/продукт/вид/тип/опция/configurable.phtml в стороне сценарий:
spConfig.getIdOfSelectedProduct = function()
{
var existingProducts = new Object();
for(var i=this.settings.length-1;i>=0;i--)
{
var selected = this.settings[i].options[this.settings[i].selectedIndex];
if(selected.config)
{
for(var iproducts=0;iproducts<selected.config.products.length;iproducts++)
{
var usedAsKey = selected.config.products[iproducts]+"";
if(existingProducts[usedAsKey]==undefined)
{
existingProducts[usedAsKey]=1;
}
else
{
existingProducts[usedAsKey]=existingProducts[usedAsKey]+1;
}
}
}
}
for (var keyValue in existingProducts)
{
for (var keyValueInner in existingProducts)
{
if(Number(existingProducts[keyValueInner])<Number(existingProducts[keyValue]))
{
delete existingProducts[keyValueInner];
}
}
}
var sizeOfExistingProducts=0;
var currentSimpleProductId = "";
for (var keyValue in existingProducts)
{
currentSimpleProductId = keyValue;
sizeOfExistingProducts=sizeOfExistingProducts+1
}
if(sizeOfExistingProducts==1)
{
alert("Selected product is: "+currentSimpleProductId)
}
}
Теперь добавьте OnChange событие в раскрывающемся списке в той же странице:
OnChange = "spConfig.getIdOfSelectedProduct()"
Первый код будет предупреждать простой связанный идентификатор продукта. Вы можете использовать его в нижнем коде.
jQuery.ajax({
type: "POST",
url: "<?php echo $this->getBaseUrl()?><module_front_name>/<controller_name>/<action_name>/",
data:"id="+currentSimpleProductId,
success: function(msg)
{
alert(msg);
//var data = JSON.parse(msg);
//alert(data.id);
}
});
Теперь перейдите в файл контроллера, который вы использовали выше, и создать новое действие с именем действий и поставить ниже код в нем:
public function <action_name>Action()
{
$productId = $_REQUEST['id'];
/*$productId is your selected product id. do what ever you want to do here.*/
$product = Mage::getModel('catalog/product')->load($productId);
$productsku = $product->getSku();
$arraygroup = array("sku"=>$productsku);
echo json_encode($arraygroup);
}
Теперь вы можете использовать эту информацию в файле PHTML показать ску.
Пожалуйста, дайте мне знать, если что-то неясно.
Этот ответ неверен, и приведенный выше код не соответствует правилам кодирования Magento - например, используя getBaseUrl вместо getUrl, $ _REQUEST в контроллере. Не путайтесь с Magento Настраиваемые сценарии JS, если вам действительно не нужно! – Bery
Каков правильный путь? – blurryvision
- Перейти к Magento админ
- В каталоге> Управление attribues найти идентификатор и найти похожие на «Видимый по продукту Посмотреть страницу на передний конец»
- Это должно удалить SKU со страницы продукта
Найти конфигурируемый шаблон продукта и вставки, где вы хотели бы иметь свой SKU
echo $product->getSku()
Какой тип продукта это? Я имею в виду простой продукт с настраиваемыми опциями или настраиваемым продуктом? –
Для конфигурируемых продуктов. – blurryvision