구성 가능한 제품에 정확한 문제가 있습니다.
Magento는 '장바구니 항목 수정'페이지에서 구성 가능한 제품 옵션을 표시하며 옵션 목록은 구성 가능한 속성을 미리 선택하지 않고 생성된다는 사실을 알고 있습니다. 속성은
<script type="text/javascript">
var spConfig = new Product.Config(<?php echo $this->getJsonConfig() ?>);
</script>
에 의해 생성 된 데이터를 가져와 자바 스크립트에 의해 설정하지만, 그것은 단지 '편집 카트 항목'페이지에서 선택한 속성을 표시합니다. 수동으로 호출하면 현재 속성 선택이 표시되지 않습니다.
체크 아웃 모듈 중 일부는 내가 알고있는 것처럼 카트 오버뷰에서 선택된 속성을 표시합니다. Magento에서 해당 데이터를 가져올 수도 있습니다 (그러나 DB에서 직접 가져 왔는지 또는 좀 더 친숙한 방식으로되어 있는지 확실하지 않습니다). 그래서 여기에 사용자 지정 옵션을 변경 할 위치를 정확히
<?php
class MyCompany_Checkout_Model_Observer
extends Varien_Event_Observer
{
public function updateItemsSpecificOption($observer)
{
$event = $observer->getEvent();
$cart = $event->getCart();
$data = $event->getInfo();
foreach ($data as $itemId => $itemInfo) {
$item = $cart->getQuote()->getItemById($itemId);
if (!$item) {
continue;
}
$optionData = $this->_getSpecificOptionDataFromItem($item);
if(!$optionData) {
continue;
}
$params = clone $item->getBuyRequest();
$options = $params->getOptions() ? $params->getOptions() : array();
$updateItem = false;
if($shouldIRemoveOption) {
unset($options[$optionData['option_id']]);
$updateItem = true;
} elseif($shouldIAddOption) {
$options[$optionData['option_id']] = array($optionData['value_id']);
$updateItem = true;
}
if($updateItem) {
$params->setOptions($options);
$cart->updateItem($itemId, $params);
}
}
}
protected function _getSpecificOptionDataFromItem($item)
{
foreach($item->getProduct()->getOptions() as $option) {
if($this->_isMyNeededOption($option)) {
foreach($option->getValues() as $valueId => $value) {
if($this->_isMyNeededValue($value)) {
return array(
'option_id' => $option->getId(),
'value_id' => $valueId,
'price' => $value->getPrice()
);
}
}
}
}
return false;
}
}
내가 모르는
지금까지 시도한 코드를 붙여 넣을 수 있습니까? –