Tôi có các sản phẩm nhóm có 3 hộp kiểm được chọn làm mặc định. Tôi muốn thêm một sản phẩm bó từ danh sách danh mục trang (list.phtml
) mà không cần phải chỉ định các tùy chọn. Tôi có thể làm cái này như thế nào?Thêm sản phẩm bó vào giỏ hàng mà không cần phải chỉ định các tùy chọn
Trả lời
Dự án của tôi chỉ cần hiển thị một dòng cho một sản phẩm gói, các tùy chọn ẩn được chọn mặc định và được mua khi mua gói. Sản phẩm có thể mua được từ chế độ xem danh mục.
Bundle cấu hình: giá trị
- Bundle với giá cả năng động
- Tùy chọn được cấu hình để được yêu cầu, giá trị mặc định và nút radio mặc định chọn
tôi đã đi vào mẫu tùy chỉnh loại quan điểm của tôi và đã thêm các mục sau:
<form action="<?php echo Mage::$this->helper('checkout/cart')->getAddUrl($product); ?>" method="post" id="product_addtocart_form_<?php echo $product->getId()?>">
<?php
// If we have a bundle:
if ($_product->getTypeId() == 'bundle'){
$selectionCollection = $_product->getTypeInstance(true)->getSelectionsCollection(
$_product->getTypeInstance(true)->getOptionsIds($_product), $_product
);
foreach($selectionCollection as $option) {
echo '<input type="hidden" name="bundle_option[' . $option->option_id . ']" value="' . $option->selection_id . '" />';
echo '<input type="hidden" name="bundle_option_qty[' . $option->option_id . ']" value="1" />';
}//end: foreach $selectionCollection
} // end: if $_product == bundle
?>
<input type="text" name="qty" class="qty" maxlength="4" value="1" />
<button type="button" onclick="this.form.submit()" />
</form>
Tác vụ trên es một biểu mẫu bổ sung, lấy các gói phụ nếu chúng ta có một gói và mặc định tất cả các tùy chọn. Làm việc như một sự quyến rũ!
Điều này đã được đăng một thời gian trở lại nhưng muốn cho bạn biết nó đã rất hữu ích cảm ơn! –
Đồng ý! Cảm ơn! –
Điều này không hiệu quả đối với tôi. Magento 1.7.0.0. Khi tôi mua một sản phẩm đi kèm theo cách này, nút chỉ liên kết một tùy chọn gồm bốn tùy chọn. Dường như làm việc nhưng nếu bạn nhìn vào thứ tự và cổ phiếu của các tùy chọn chỉ có một thay đổi. –
Ok, cuối cùng tôi đã làm việc theo cách tôi nghĩ.
Wgenie đưa tôi đi đúng hướng.
tôi sử dụng mã này thay vì Wgenie và nó không chỉ bổ sung thêm các mục vào giỏ hàng nhưng kiểm soát cổ phiếu của các tùy chọn bó và cho thấy không có sẵn nếu một lựa chọn là hết hàng:
<?php if ($_item->getTypeId() == 'bundle') : ?>
<form action="<?php echo Mage::helper('checkout/cart')->getAddUrl($_item); ?>" method="post" id="product_addtocart_form_<?php echo $_item->getId()?>">
<?php $selectionCollection = $_item->getTypeInstance(true)->getSelectionsCollection(
$_item->getTypeInstance(true)->getOptionsIds($_item), $_item
); ?>
<?php $saleable = true; ?>
<?php foreach($selectionCollection as $option) : ?>
<input type="hidden" name="bundle_option[<?php echo $option->option_id; ?>][]" value="<?php echo $option->selection_id; ?>" />
<input type="hidden" name="bundle_option_qty[<?php echo $option->option_id; ?>][]" value="1" />
<?php
//Stock control for each bundle option
$opt_product = Mage::getModel('catalog/product')->load($option->product_id);
$stocklevel = (int)Mage::getModel('cataloginventory/stock_item')
->loadByProduct($opt_product)->getQty();
if($stocklevel<=0)
$saleable = false;
?>
<?php endforeach; ?>
<?php if($saleable): ?>
<button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button" onclick="this.form.submit()"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
<?php else: ?>
<p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
<?php endif; ?>
</form><?php else : ?>
<button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button" onclick="setLocation('<?php echo $this->getAddToCartUrl($_item) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button><?php endif; ?>
Btw, Magento 1.7.0.0 –
Có giải pháp này tốt hơn. –
tôi đã để làm điều tương tự trong trang web Magento 1.7. Tôi đã có thể thêm sản phẩm đi kèm vào giỏ hàng từ danh sách sản phẩm mà không cần chuyển hướng đến trang sản phẩm.
/app/design/frontend/your_package/your_theme/template/catalog/product/list.phtml
Thay lần xuất hiện của
<button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
với
<?php
$productAddUrl = $this->helper('checkout/cart')->getAddUrl($_product);
if ($_product->getTypeId() == 'bundle'):
$bundleOptions = '?';
$selectionCollection = $_product->getTypeInstance(true)->getSelectionsCollection($_product->getTypeInstance(true)->getOptionsIds($_product), $_product);
foreach($selectionCollection as $option):
$bundleOptions .= '&bundle_option[' . $option->option_id . ']=' . $option->selection_id;
$bundleOptions .= '&bundle_option_qty[' . $option->option_id . ']=1';
endforeach;
$productAddUrl .= $bundleOptions;
endif;
?>
<button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $productAddUrl ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
Giải pháp của Joras hoạt động, nhưng nó có thể tạo e nhiều mục trong báo giá, mỗi mục chứa cùng một gói (với các lựa chọn giống hệt nhau). Lý do là khi so sánh một gói mới được thêm với các mục báo giá, Magento (được thử nghiệm trên 1.9.2.2) tạo một chuỗi bundel_identity được tạo thành từ
[product_id] _ [option_id_1] _ [option_qty _] _ [option_id_2] _ [option_qty_2] ...
Chuỗi này phụ thuộc vào thứ tự của các tham số được gửi. Để thực hiện theo thứ tự được chỉ định trong cài đặt sản phẩm, hãy sử dụng:
$typeInstance = $product->getTypeInstance(true)
->setStoreFilter($product->getStoreId(), $product);
$optionCollection = $typeInstance->getOptionsCollection($product);
foreach ($optionCollection as $option) {
// build your query string here....
}
Ngoài ra, cũng khá khó để làm điều đó bên trong mẫu.Tùy chọn tốt hơn imo
override Mage_Catalog_Block_Product_List::getAddToCartUrl($product, $additional = array())
- 1. Prestashop: Thêm sản phẩm vào giỏ hàng mới
- 2. Cách đặt các tùy chọn được chọn mặc định trong trang chi tiết sản phẩm Magento
- 3. WooCommerce: Thêm sản phẩm vào giỏ hàng với ghi đè giá?
- 4. Magento thay đổi tùy Lựa chọn giá trị trước khi thêm nó vào giỏ hàng
- 5. Magento - nhận các mặt hàng giỏ hàng cho một id sản phẩm nhất định
- 6. Tùy chọn thêm vào giỏ hàng của Magento không hoạt động
- 7. Cập nhật giỏ hàng Woocommerce sau khi thêm sản phẩm (jQuery)
- 8. Đường ray cho nhiều loại sản phẩm giỏ mua hàng
- 9. Lấy sản phẩm đơn giản từ cấu hình trong giỏ
- 10. Magento- Cách tùy chỉnh giỏ hàng
- 11. Bộ sưu tập sản phẩm Magento Chỉ nhận sản phẩm từ các danh mục nhất định
- 12. Drupal/Ubercart Kiểm tra xem một sản phẩm nhất định có trong giỏ hàng khi thanh toán
- 13. Thêm hàng mới vào GridView mà không cần DataBind
- 14. Cách tạo thư tùy chỉnh trong Magento khi người dùng thêm mục vào giỏ hàng?
- 15. Thêm giỏ hàng Ruby on Rails
- 16. Xcode - thay đổi nhận dạng bó nhưng không phải tên sản phẩm
- 17. Cách lý tưởng để lưu trữ thông tin sản phẩm trong giỏ hàng trong asp.net
- 18. Giỏ hàng Node.js
- 19. Magento Checkout chuyển hướng đến trang “Giỏ hàng trống” và xóa giỏ hàng trong IE7 & IE8
- 20. So sánh sản phẩm Thanh bên không hiển thị sản phẩm
- 21. Magento: Lấy số lượng trong giỏ cho một sản phẩm nhất định
- 22. Thêm vào DOM mà không cần jQuery
- 23. Cách thêm sản phẩm vào danh sách mà không tải tất cả cơ sở dữ liệu?
- 24. Mở rộng Giỏ hàng Magento
- 25. ios: Thiết kế giỏ hàng trong Ứng dụng iPhone
- 26. Magento, thêm lập trình danh mục vào các sản phẩm trong kịch bản với SQL
- 27. Sử dụng thư viện tĩnh và các sản phẩm bó từ Xcode 4 tiểu dự án
- 28. Lập trình thêm các sản phẩm bó trong Magento, sử dụng SKU/ID của các mục đơn giản
- 29. giá trị sản phẩm Set mặc định khi thêm sản phẩm mới trong Magento 1,7
- 30. Paypal Thêm vào giỏ hàng nút - làm thế nào để tạo ra với Java?
Bạn có may mắn với điều này không? Tôi thực sự cần để có thể làm điều này và như xa như tôi có thể thấy đây là một lỗi Magento .. –