Отображать продавца на складе в верхней части страницы просмотра товара

magento.stackexchange https://magento.stackexchange.com/questions/109309

Вопрос

у нас есть сайт marketplace с несколькими поставщиками / продавцами.

мы показываем нескольких продавцов на странице просмотра товара.

первоначально один товар загружается продавцом "kidsdial4", затем тот же товар назначается другим продавцом "kidsdial6".

чем на странице просмотра товара, мы отображаем оба названия продавцов, например этот

вверху вы можете увидеть продавца kidsdial4:

enter image description here

внизу вы можете увидеть продавца kidsdial 6:

enter image description here

здесь seller kidsdial4 have "zero" stock [нет в наличии ] для этого товара.

У продавца kidsdial6 есть количество для этого товара.

итак, я хочу отобразить продавца kidsdial 6 сверху , kidsdial 4 должен отображаться снизу.

список продавцов.phtml

<?php $productid=Mage::registry('current_product')->getId(); ?>
<?php if(count($this->sellerNewProductList())!=0 || count($this->sellerUsedProductList())!=0): ?>
    <div class="wk_mp_design" id="seller-list" style="clear:both">
        <div class="block block-account">
            <div class="head block-title">
                <strong>
                    <span class="wk_new_tab list_active_tab" for="seller-list-new"><?php echo $this->__('Sold By')." ".count($this->sellerNewProductList())."" ." Sellers "; ?></span>
                    <!-- <span class="wk_tab_seperator"></span>
                    <span class="wk_used_tab" for="seller-list-used"><?php echo $this->__('Used')." (".count($this->sellerUsedProductList()).")";?></span> -->
                </strong>
            </div>
            <div class="seller-list" id="seller-list-new">
                <?php if(count($this->sellerNewProductList())==0): ?>
                    <div class="fieldset wk_mp_fieldset">
                        <div class="wk_emptymsg">
                            <?php echo $this->__('No New Product Available') ?>
                        </div>
                    </div>
                <?php else: ?>
                    <div class="title">
                        <span class="lable profile"><?php echo $this->__('Sellers');?></span>
                        <span class="lable comment"><?php echo $this->__('Delivered By');?></span>
                        <span class="lable price"><?php echo $this->__('Price');?></span>
                        <span class="lable addto"><?php echo $this->__('');?></span>
                    </div>
                    <?php foreach($this->sellerNewProductList() as $seller): ?>
                        <?php
                            $userlist=Mage::getModel('marketplace/userprofile')->getCollection();
                            $userlist->addFieldToFilter('mageuserid',array('eq'=>$seller->getSellerId()));
                            foreach($userlist as $user){
                                $profileurl=$user->getProfileurl();
                                $logo=$user->getLogopic();
                            }
                        ?>

полный код sellerlist.phtml` => http://pasted.co/13849662

wk_block.phtml

<?php
    $helper=Mage::helper('marketplace');
    $_product=Mage::registry('current_product');
    $productowner=Mage::getModel('marketplace/product')->isCustomerProduct($_product['entity_id']);
    if($productowner['userid']!=""){
        $captchenable = $percent = Mage::getStoreConfig('marketplace/marketplace_options/captcha');
        $rowsocial=Mage::getModel('marketplace/userprofile')->getPartnerProfileById($productowner['userid']);
?>

<div class="block wk-block block-viewed">
    <div class="block-title"><strong><span>
    <?php   if($rowsocial['shoptitle']!='')
            echo $rowsocial['shoptitle'];
        else
            echo  $rowsocial['profileurl']; ?>
    </span></strong></div>
    <div class="block-content">
        <div class="wk_blockdetail">   
            <ul class="partnerlinks">
                <li>
                    <a href="<?php echo  Mage::getUrl('marketplace/seller/collection').$rowsocial['profileurl'] ?>" title="<?php echo $helper->__('Visit Complete Collection') ?>" id="siteconnect"><?php echo $helper->__('View Collection') ?></a>
                </li>
                <li class="profile-view">
                    <a href="<?php echo  Mage::getUrl()."marketplace/seller/profile/".$rowsocial['profileurl'] ?>" title="<?php echo $helper->__('Visit Profile') ?>" id="profileconnect"><?php echo $helper->__('View Profile') ?></a>
                    <div class="wk-block-hover-div">
                        <div class="arrow"></div>
                        <?php echo $rowsocial['compdesi']; ?>
                    </div>
                </li>

                <?php echo $this->getChildHtml();?>

            </ul>
        </div>
    </div> 
</div>

полный код wk_block.phtml : http://pasted.co/0a221176

Sellerlist.php

app/code/local/Exam/Mpassignproduct/Block/Sellerlist.php

<?php

class Exam_Mpassignproduct_Block_Sellerlist extends Mage_Core_Block_Template
{
    public function _prepareLayout() {
        return parent::_prepareLayout();
    }

    public function sellerNewProductList() {
        $productid=Mage::registry('current_product')->getId();
        $collection=Mage::getModel('mpassignproduct/mpassignproduct')->getCollection()
                        ->addFieldToFilter('product_id',array('eq'=>$productid))
                        ->addFieldToFilter('qty',array('gt'=>0))
                        ->addFieldToFilter('flag',array('eq'=>'1'))
                        ->addFieldToFilter('product_condition', array('eq'=>'new'));
        $collection->setOrder("price",ASC);
        return $collection;
    }

    public function sellerUsedProductList() {
        $productid=Mage::registry('current_product')->getId();
        $collection = Mage::getModel('mpassignproduct/mpassignproduct')->getCollection()
                        ->addFieldToFilter('product_id',array('eq'=>$productid))
                        ->addFieldToFilter('qty',array('gt'=>0))
                        ->addFieldToFilter('product_condition',array('eq'=>'used'))
                        ->addFieldToFilter('flag',array('eq'=>'1'));
        $collection->setOrder("price",ASC);
        return $collection;
    }
}

я дам дополнительные 100 бонусных баллов, если получу ответ....

Это было полезно?

Решение

я уже ответ там, значит, тот же вопрос

public function sellerNewProductList() {
    $productid=Mage::registry('current_product')->getId();
    $collection=Mage::getModel('mpassignproduct/mpassignproduct')->getCollection()
                    ->addFieldToFilter('product_id',array('eq'=>$productid))
                    ->addFieldToFilter('qty',array('gt'=>0))
                    ->addFieldToFilter('flag',array('eq'=>'1'))
                    ->addFieldToFilter('product_condition', array('eq'=>'new'));
        $collection->getSelect()->order("price",ASC);
        return $collection;
    }


public function sellerUsedProductList() {
    $productid=Mage::registry('current_product')->getId();
    $collection = Mage::getModel('mpassignproduct/mpassignproduct')->getCollection()
                    ->addFieldToFilter('product_id',array('eq'=>$productid))
                    ->addFieldToFilter('qty',array('gt'=>0))
                    ->addFieldToFilter('product_condition',array('eq'=>'used'))
                    ->addFieldToFilter('flag',array('eq'=>'1'));
    $collection->getSelect()->order("price",ASC);
    return $collection;
}

чтобы проверить, что это сортировка, попробуйте запустить запрос echo $collection->getSelect();

Другие советы

Вы можете упорядочить позицию продавца в вашей коллекции, изменив обе свои коллекции продавца, как показано ниже.

Поскольку вы уже отфильтровали список продавцов по количеству, имеющему значение больше 0.

Заказывая цену и кол-во одновременно, вы получите продавца с меньшей ценой на первом месте, и если оба продавца имеют одинаковую цену, то это будет означать, что продавец, имеющий большее количество кол-во для этого конкретного товара, займет первое место.

Вы можете применить их к обеим своим коллекциям.

public function sellerUsedProductList() {
    $productid=Mage::registry('current_product')->getId();
    $collection = Mage::getModel('mpassignproduct/mpassignproduct')->getCollection()
                    ->addFieldToFilter('product_id',array('eq'=>$productid))
                    ->addFieldToFilter('qty',array('gt'=>0))
                    ->addFieldToFilter('product_condition',array('eq'=>'used'))
                    ->addFieldToFilter('flag',array('eq'=>'1'));
 //    $collection->setOrder("price",ASC); your order by commented
          $collection->getSelect()->order("price ASC")->order("qty DESC");
    return $collection;
}

Дайте мне знать, если у вас все еще возникнут какие-либо проблемы.

Я не смог написать код, но идея очень проста.Прежде всего, загрузите всех продавцов, у которых есть этот товар, создайте массив с "name"=>"stock", сначала закажите массив со значением высоты "stock", а затем выполните цикл по массиву, загрузив продавца по имени и используя его запас для покажи это.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top