ubercart ledgersmb

makgab képe

Üdv!

Egyelőre elméleti szinten érdeklődöm, hogy megvalósítható-e a következő.
Pontosabban biztos meg lehet, csak kérdés merre érdemes elindulni.

Törzsadatokat kellene szinkronizálni:
(vevők, cikkek, árak, darabszámok)
vevők: webáruházban új regisztráltakat átvinni a ledgersmb-be
cikkek: a webáruházban szereplő cikkek darabszámát, árát a ledgersmb-ből átvenni.

CSV-ben elképzelhető az "adatátvitel"? Vagy tud valaki más variációt?

(A dolog cron-ból mehetne majd.)

Drupal verzió: 
Fórum: 
makgab képe

Első körben a http://drupal.org/project/node_export lehetőséget nézem.

0
0
makgab képe

Asszem cron-nal csak pl. egy SQL scripttel tudom kinyerni.

0
0
makgab képe

A megoldás a cron-bol bootstrap script lesz azt hiszem.

0
0
makgab képe

Usert scriptből szépen hozzá tudok adni a Drupal-hoz a user_save() fv-el?

<?php
user_save($account, $array = array(), $category = 'account')
?>
 
$account :   $user->uid, ha meg van adva, akkor létező módosítása, ha nincs megadva, akkor új user.
$array :       user adatok array('name' => 'My name');
//$category : (optional) The category for storing profile information in.

Nem írnék közvetlen az adatbázisba. :)

0
0
makgab képe

müxik. :)

0
0
makgab képe

Az ubercart-ból is lehet függvényeket hívni, mint a user_save() v. user_delete()?
Tehát pl. script-ből meghívható az uc_product_insert() v. uc_product_update() függvény?

<?php
function uc_product_insert($node) {
  if (!isset($node->unique_hash)) {
    $node->unique_hash = md5($node->vid . $node->nid . $node->model . $node->list_price . $node->cost . $node->sell_price . $node->weight . $node->weight_units . $node->dim_length . $node->dim_width . $node->dim_height . $node->length_units . $node->pkg_qty . $node->default_qty . $node->shippable . time());
  }
  db_query("INSERT INTO {uc_products} (vid, nid, model, list_price, cost, sell_price, weight, weight_units, length, width, height, length_units, pkg_qty, default_qty, unique_hash, ordering, shippable) VALUES (%d, %d, '%s', %f, %f, %f, %f, '%s', %f, %f, %f, '%s', %d, %d, '%s', %d, %d)",
    $node->vid, $node->nid, $node->model, $node->list_price, $node->cost, $node->sell_price, $node->weight, $node->weight_units, $node->dim_length, $node->dim_width, $node->dim_height, $node->length_units, $node->pkg_qty, $node->default_qty, $node->unique_hash, $node->ordering, $node->shippable
  );
}
?>

Megfelelően paraméterezve persze.

0
0
dj képe

Lehet.

0
0

Üdv!
Dudás József

makgab képe

Az uc_product_insert(), uc_product_update() csak az {uc_products}-ba szúrja be (módosítja) a megfelelő rekordot (terméket).
A {node} táblába nem fog beszúrni egy tartalmat, de abba is kellene, nem?
Meg kellene hívni egy "node" beszúrás függvényt is? Vagy rosszul gondolom?

0
0
makgab képe

Találtam egy segítséget itt.

<?php
  //...
  $form_id = 'uc_product_form';
  $form_state = array();
  $form_state['values']['type'] = 'product';
  $form_state['values']['title'] = 'Masodik Termek';
  $node = new stdClass();
  drupal_execute($form_id, $form_state, $node);
  $node->type = 'product';
  $node->title = 'Masodik Termek';
  $node->body ='Masodik Termek. bla bla bla...';
  $node->uid = 1;
  $node->language = 'hu';
  $node->status = 1;
  $node->promote = 1;
  $node->model = 'Masodik Termek';
  $node->cost = 10;
  $node->list_price = 100;
  $node->sell_price = 100;
  $node->weight = 1.0;
  node_save($node); 
  //...
?>
0
0
makgab képe

A node_save()-el sikerül elmenteni a terméket UC-ba. Módosítani viszont nem enged:

<?php
if ( $node_test = node_load( array( 'title' => $new_node['description'] ) ) )
       $node_nid = $node_test->nid;
...
if ( isset( $node_nid ) ) $node->nid = $node_nid;
...
node_save( $node );
?>

A $node_nid változó működik is, jó benne az érték.

Drupal doksi szerint: ha a $node->nid meg van adva, akkor nem beszúr, hanem módosítja a node-ot. Nekem nem módosít semmit, pedig jó a $node->nid értéke.
Merre keresgéljem a hibát?

0
0
makgab képe

Ez nem kell a módosításnál:

<?php
$node = new stdClass();
?y
0
0