Вы здесь

Показ артикула товара в письме с заказом

0

Использую это решение http://xandeadx.ru/blog/drupal/692
Как туда добавить артикул товара? А еще лучше сделать названия товаров ссылками на сами страницы товаров.

Версия Drupal: 
7.x
Связанные проекты: 
Drupal Commerce
Вопрос задан 20.07.2016 - 16:03

Ответы

0
<?php
$commerce_order_wrapper = entity_metadata_wrapper('commerce_order', $commerce_order);
$line_item_types = commerce_product_line_item_types();
foreach ($commerce_order_wrapper->commerce_line_items as $line_item) {
  if (!in_array($line_item->type->value(), $line_item_types)) continue;
  echo format_string('- @title, @unit_amount @currency x @quantity', array(
    '@title'       => $line_item->commerce_product->title->value(),
    '@quantity'    => $line_item->quantity->value(),
    '@unit_amount' => $line_item->commerce_unit_price->amount_decimal->value(),
    '@currency'    => $line_item->commerce_unit_price->currency_code->value(),
  )) . "\n";

  // Добавляем артикул
  echo $line_item->commerce_product->sku->value();

}

Чтобы получить ссылку на товар нужно получить ноду, к которой привязан этот товар. Это можно сделать с помощью кода на странице https://drupalcommerce.org/questions/3176/how-get-node-id-product-displa...

$wrapper = entity_metadata_wrapper('commerce_product', $line_item->commerce_product);
$nodes = $wrapper->field_product_node->value();

Получаем ноды, которые привязаны к данному товару. Их может быть несколько. Дальше вывести ссылку - дело техники.

Код не проверял.

Ответ дан 21.07.2016 - 09:33
Аватар пользователя shu
shu
176

Добавил это
echo $line_item->commerce_product->sku->value();

В письме только один артикул. Как сделать чтобы у всех товаров в заказе показывались артикулы?

Комментарий оставлен 21.07.2016 - 15:06

Нужно добавить эту строку в цикл foreach { сюда строка }
Тогда должно заработать для всех.

Комментарий оставлен 22.07.2016 - 23:37