Magento делится корзиной между сайтами - PullRequest
1 голос
/ 21 февраля 2012

У меня есть магазин Magento, которому нужны разные цены для каждого сайта, что ограничивает меня использованием разных websites для каждого, так как stores или views не позволят мне устанавливать разные цены для одних и тех же предметов.

Однако мне нужно иметь возможность позволить покупателю сменить магазин и оставить свою текущую корзину у себя. Это будет включать обновление цен до тех, которые указаны в новом website.

Я установил Share Customer Accounts на Global и Catalog Price Scope на Website.

У меня также есть начальный чейнджер:

<?php $websites=Mage::app()->getWebsites();?>
<?php if(count($websites)>1): ?>
<fieldset class="store-switcher">
    <label for="select-store"><?php echo $this->__('Select Store') ?>:</label>
    <select id="select-store" onchange="location.href=this.value">
    <?php foreach ($websites as $website): ?>
        <?php $_selected = ($website->getCode() == Mage::app()->getWebsite()->getCode()) ? ' selected="selected"' : '' ?>
        <option value="<?php echo $website->getDefaultStore()->getBaseUrl()?>"<?php echo $_selected ?>><?php echo $this->htmlEscape($website->getName()) ?></option>
    <?php endforeach; ?>
    </select>
</fieldset>
<?php endif; ?>

Это достижимо? Или это обратно на чертежную доску?

Информация: Magento ver. 1.6.2.0

Также: сайты, между которыми я хочу поделиться корзиной, находятся в одном домене и имеют одинаковое значение frontend cookie. (я полагаю, это SID).

Ответы [ 2 ]

0 голосов
/ 23 марта 2012

Насколько я могу судить, невозможно делить тележки между сайтами по дизайну. Хотя по магазинам на сайте работает нормально.

0 голосов
/ 22 февраля 2012

Это старое исправление для совместного использования содержимого корзины (1.3 или 1.4), которое я использовал, и может больше не действовать для 1.6, но дать ему шанс.

Отредактируйте следующий шаблон для вашей темы: template / page / switch / stores.phtml

Добавить в stores.phtml

$sessionID = Mage::getModel('core/session')->getSessionId();

Вставьте новое значение опции, которое я включил ниже, в существующее значение опции

<option value="<?php if(strpos($_group->getHomeUrl(),"?")===false){ echo $_group->getHomeUrl()."?SID=".$sessionID; }else{ if(strpos($_group->getHomeUrl(),"&SID=")===false){ echo $_group->getHomeUrl()."&SID=".$sessionID; }else{ echo $_group->getHomeUrl();}} ?>" <?php echo $_selected ?>><?php echo $this->htmlEscape($_group->getName()) ?></option>

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

You are in store A.  <a href="<?php echo Mage::app()->getStore('yoursecondstorecode')->getUrl() ?>">Goto Store B</a>.
...